Firewalld

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

firewalld は Red Hat によって開発されているファイアウォールデーモンです。デフォルトで nftables を使用します。プロジェクトのホームページより:

Firewalld は動的に管理されるファイアウォールを提供し、ネットワーク・ファイアウォールゾーンによってネットワーク接続やインターフェイスの信頼レベルを定義します。IPv4 と IPv6 のファイアウォールの設定、イーサネットブリッジ、IP セットをサポートします。実行時と永続的な設定オプションは分離されています。サービスやアプリケーションのインターフェイスを提供しファイアウォールのルールを直接追加することができます。

インストール

firewalld パッケージをインストールしてください。

使用方法

firewalld.service起動有効化してください。

コンソールユーティリティ firewall-cmd でファイアウォールのルールを制御できます。

firewalld が稼働中でない場合 firewall-offline-cmd ユーティリティを使うことで設定できます。firewall-cmd と構文は似ています。

GUI は firewalld パッケージに含まれている firewall-config で利用できます。

設定

firewall-cmd を使うことで実行時の設定を変更できます。

ノート: ほとんどのコマンドは実行時の設定のみ変更し、再起動すると設定は消失します。変更を永続化する方法は2つ存在します:
  • --permanent オプションを使う。この場合、実行時の設定は変更されません。ファイアウォールサービスを再起動したり --reload コマンドでルールをリロードしたときに反映されます。
  • 実行時の設定を変更してから#実行時の設定を永続的に変換に書かれているように設定を永続化する。

ゾーン

ゾーンは特定のインターフェイスに適用することができるルール集です。

現在のゾーンと割り当てられたインターフェイスを確認するには:

# firewall-cmd --get-active-zones

(ポートやサービスの追加・削除など) 一部のコマンドではゾーンを指定する必要があります。

--zone=zone_name パラメータを使って名前でゾーンを指定できます。

ゾーンを指定しなかった場合はデフォルトゾーンが使われます。

ゾーンの情報

全てのゾーンとその設定を確認するには:

# firewall-cmd --list-all-zones

あるいは特定のゾーンの情報だけ取得するには:

# firewall-cmd --info-zone=zone_name

インターフェイスのゾーンを変更

# firewall-cmd --zone=zone --change-interface=interface_name

zone はインターフェイスに割り当てたい新しいゾーンに置き換えてください。

デフォルトゾーン

新しいインターフェイスが接続されるとデフォルトゾーンが適用されます。以下のコマンドでデフォルトゾーンの名前を確認できます:

# firewall-cmd --get-default-zone

以下のコマンドでデフォルトゾーンを変更できます:

# firewall-cmd --set-default-zone=zone
ノート: 上記の変更は永続的です。

サービス

サービスは特定のデーモンに合わせて作成されたルールです。例えば ssh サービスは SSH に対応し、ゾーンに割り当てたときにポート 22 が開きます。

利用可能なサービスのリストを確認するには以下のコマンドを実行:

# firewall-cmd --get-services

特定のサービスの情報を確認するには:

# firewall-cmd --info-service service_name

ゾーンからサービスを追加・削除

ゾーンにサービスを追加するには:

# firewall-cmd --zone=zone_name --add-service service_name

サービスを削除するには:

# firewall-cmd --zone=zone_name --remove-service service_name

ポート

指定したゾーンのポートを直接開くことができます:

# firewall-cmd --zone=zone_name --add-port port_num/protocol

protocoltcp または udp に置き換えてください。

ポートを閉じるには --remove-port オプションで同じポート番号とプロトコルを指定してください。

ヒントとテクニック

ポートあるいはサービスのタイムアウト

--timeout=value オプションを使うことでサービスやポートの時間制限を追加することができます。値は何も付けないと秒数になり、mh を後ろに付けることで分や時間になります。例えば SSH サービスを3時間の制約で追加するには:

# firewall-cmd --add-service ssh --timeout=3h

実行時の設定を永続的に変換

一時的な設定を永続化するには (再起動しても設定が消えなくなります):

# firewall-cmd --runtime-to-permanent

サービスの詳細をチェック

デフォルトでサポートされているサービスの設定ファイルは /usr/lib/firewalld/services/ に存在し、ユーザーが作成したサービスファイルは /etc/firewalld/services/ に配置されます。

参照