コマンドライン ツール firewall-cmd ファイアウォールの一部です デフォルトでインストールされるアプリケーション。永続的および非永続的なランタイム変更を行うために使用できます。
firewalld のインストール
デフォルトでは、firewalld は「core」rpm グループに含まれていますが、インストールされていない場合は、yum を使用していつでもインストールできます。
# yum install -y firewalld
起動時にfirewalldを開始できるようにします:
# systemctl enable firewalld
今すぐ firewalld サービスを再起動してください。
# systemctl restart firewalld
firewall-cmd コマンドで利用可能なオプション
# firewall-cmd --help Usage: firewall-cmd [OPTIONS...] General Options -h, --help Prints a short help text and exists -V, --version Print the version string of firewalld -q, --quiet Do not print status messages Status Options --state Return and print firewalld state --reload Reload firewall and keep state information --complete-reload Reload firewall and lose state information --runtime-to-permanent Create permanent from runtime configuration
firewall-cmd コマンドは、General、Status、Permanent、Zone、IcmpType、Service、Adapt and Query Zones、Direct、Lockdown、Lockdown Whitelist、Panic などのオプションのカテゴリを提供します。詳細については、firewall-cmd の man ページを参照してください。
便利なファイアウォール コマンドの例
1.すべてのゾーンを一覧表示
次のコマンドを使用して、すべてのゾーンの情報を一覧表示します。部分的な出力のみが表示されます。
# firewall-cmd --list-all-zones work target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: drop target: DROP icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: .....
変更しない場合、Public がデフォルトのゾーン セットです。現在設定されているデフォルト ゾーンを確認するには、次のコマンドを使用します:
# firewall-cmd --get-default-zone public
2.システムで許可されているサービスとポートを一覧表示
システムで現在許可されているサービスを表示するには、以下のコマンドを使用してください。
# firewall-cmd --list-services dhcpv6-client ssh
システムで開いているポートを一覧表示するには:
# firewall-cmd --list-ports
通常、firewalld を有効にした直後は、ここにポートは表示されません。
3.サービスのすべての受信ポートを有効にするには
–add-service を使用して、サービスに必要なポートを開くこともできます オプション。公開ゾーンへの HTTP クライアントによるアクセスを許可するには:
# firewall-cmd --zone=public --add-service=http success
公開ゾーンで許可されているサービスを一覧表示するには:
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
このコマンドを使用すると、ランタイム構成のみが変更され、構成ファイルは更新されません。次のコマンド シーケンスは、firewalld サービスが再起動されると、ランタイム構成モードで行われた構成変更が失われることを示しています。
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
変更を永続的にするには、–permanent オプションを使用します。例:
# firewall-cmd --permanent --zone=public --add-service=http success
永続的な構成モードで行われた変更は、すぐには実装されません。例:
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
ただし、永続的な構成で行われた変更は、構成ファイルに書き込まれます。 firewalld サービスを再起動すると、構成ファイルが読み取られ、変更が実装されます。
例:
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
4.受信ポートでトラフィックを許可
以下のコマンドは、ポート 2222 をすぐに有効にしますが、再起動後は維持されません:
# firewall-cmd --add-port=[YOUR PORT]/tcp
たとえば、TCP ポート 2222 を開くには:
# firewall-cmd --add-port=2222/tcp
次のコマンドは永続的なルールを作成しますが、すぐには有効になりません:
# firewall-cmd --permanent --add-port=[YOUR PORT]/tcp
たとえば、TCP ポート 2222 を開くには:
# firewall-cmd --permanent --add-port=2222/tcp
開いているポートを一覧表示するには、次のコマンドを使用します:
# firewall-cmd –-list-ports 2222/tcp
5. firewalld サービスの開始と停止
firewalld サービスを開始/停止/ステータスするには、以下のコマンドを使用します:
# systemctl start firewalld.service # systemctl stop firewalld.service
firewalld サービスのステータスを確認するには:
# systemctl status firewalld.service