firewalldを使ったファイアーウォールの設定
今回のコラムは、前回のfirewalldの設定状況確認を踏まえてその接続の許可の仕方を解説します。【連載コラム:Linuxを学ぼう(32)】
前回は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回:ファイアーウォールの設定を確認する
第28回:SELinuxの動作を確認する
第27回:SELinuxについて