firewalldを使ったファイアーウォールの設定

今回のコラムは、前回のfirewalldの設定状況確認を踏まえてその接続の許可の仕方を解説します。【連載コラム:Linuxを学ぼう(32)】

最終更新日:2024年03月14日

前回はfirewalldの設定状態を確認しました。許可されたサービス以外は接続できない設定になっています。今回は、接続を許可する設定方法を解説します。


サービスの一覧を取得する

接続許可はポート番号や発信元IPアドレスなど細かく設定することもできますが、一番簡単なのはサービスによる指定です。定義されているサービスを確認します。

$ sudo firewall-cmd --get-services
RH-Satellite-6 RH-Satellite-6-capsule afp (略)

非常に沢山定義されているのが分かります。サービスは複数のパラメータの定義からなっています。

サービスの定義を確認する

今回はHTTPを許可する、ということで、まずはサービスの定義を確認してみましょう。--info-serviceオプションに確認したいサービスを値として与えることで定義の内容が確認できます。

$ sudo firewall-cmd --info-service=http
http
  ports: 80/tcp
  protocols:
  source-ports:
  modules:
  destination:
  includes:
  helpers:

ここでは、ポート番号80番への接続が定義されているのが分かります。自分で定義を作ったりして、設定を簡易化していくことも可能となっています。

接続を許可する

HTTPによる接続を許可するために、サービスを使って設定を変更してみましょう。設定には一時的に設定する方法と、システムの再起動後にも適用される永続的な方法があります。今回は後者の方法で設定するため、--permanentオプションを使用します。

$ sudo firewall-cmd --add-service=http --zone=public --permanent
$ sudo firewall-cmd --list-services
cockpit dhcpv6-client dns ssh
$ sudo firewall-cmd --reload
$ sudo firewall-cmd --list-services
cockpit dhcpv6-client dns http ssh

publicゾーンの設定に--add-serviceオプションでhttpサービスを追加します。--permanentオプションを使用した場合、即時に有効にはならないので、設定を--reloadオプションで読み込み直しする必要があります。

設定されたことを動作確認するため、Webサーバーを起動して接続ができることを確認してみてください。

今回は単純に接続先のポート番号を許可する方法を解説しましたが、より細かくパラメータを設定してアクセス制御を行ったり、2つのインターフェースの間でNAPTを行う「IPマスカレード機能」なども備えています。是非、設定方法を確認してみてください。


筆者紹介
宮原 徹 氏

宮原 徹 氏

株式会社びぎねっと

Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。

バックナンバー

第31回:firewalldを使ったファイアーウォールの設定の確認

第30回:ファイアーウォールの設定を確認する

第29回:Booleanを使ったSELinuxの制御

第28回:SELinuxの動作を確認する

第27回:SELinuxについて

ページトップへ