Firewalldでよく使用するコマンドを一覧化します。
記事の目次
Firewalldの起動状態を確認する!
Firewalldの起動状態を確認します。Firewalldが起動していないと、「firewall-cmd」コマンドは使用できません。
$ sudo firewall-cmd --state running
Firewalldの起動と停止は、systemctlコマンドで行います。サービス名は、「firewalld.servcie」です。
$ sudo systemctl stop firewalld.service $ sudo systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: inactive (dead) since Thu 2022-04-07 12:46:27 JST; 10s ago ... $ sudo systemctl start firewalld $ sudo systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2022-04-07 12:46:52 JST; 3s ago ...
現在有効になっているゾーンを確認する!
デフォルトのゾーンは、「public」です。
$ firewall-cmd --get-default public
現在有効になっている設定を確認する!
「--list-all」オプションで、現在有効になっている設定を確認できます。
$ sudo firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: enp0s3 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
サービス名で通信許可設定を追加/削除する!
httpを追加する例です。コマンドではわかりませんが、NetfilterのINPUTチェーンに対して設定が追加されます。
$ sudo firewall-cmd --permanent --add-service=http success $ sudo firewall-cmd --reload success $ sudo firewall-cmd --list-services cockpit dhcpv6-client http ssh
--add-serviceで指定できる設定値は、以下で確認します。
$ firewall-cmd --get-services ...
httpを削除する例です。
$ sudo firewall-cmd --permanent --remove-service=http success $ sudo firewall-cmd --reload success $ sudo firewall-cmd --list-services cockpit dhcpv6-client ssh
ポート番号で通信許可設定を追加/削除する!
10021ポートを追加する例です。
$ sudo firewall-cmd --permanent --add-port=10021/tcp success $ sudo firewall-cmd --reload success $ sudo firewall-cmd --list-ports 10021/tcp
10021ポートを削除する例です。
$ sudo firewall-cmd --permanent --remove-port=10021/tcp success $ sudo firewall-cmd --reload success $ sudo firewall-cmd --list-ports
ICMPの通信許可設定を無効化/有効化する!
pingコマンドへの応答はデフォルトで有効です。pingコマンドの応答を無効化します。
$ sudo firewall-cmd --list-icmp-blocks $ sudo firewall-cmd --permanent --add-icmp-block=echo-request $ sudo firewall-cmd --reload success $ sudo firewall-cmd --list-icmp-blocks echo-request
pingコマンドへの応答の設定を有効化します。
$ sudo firewall-cmd --list-icmp-blocks echo-request $ sudo firewall-cmd --permanent --remove-icmp-block=echo-request success $ sudo firewall-cmd --reload success $ sudo firewall-cmd --list-icmp-blocks
Firewalld停止時に設定変更を行う!
Firewalld停止時に設定を行う場合は、firewalld-offline-cmdコマンドを使用します。Firewalldを起動すると、サーバへのアクセス自体が不可になってしまうような場合に重宝します。
$ sudo firewall-offline-cmd --list-all public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Firewalldで使用できるゾーンの情報を確認する!
Firewalldで使用できるゾーンは、「firewall-cmd --get-zones」コマンドで確認できます。
# firewall-cmd --get-zones block dmz drop external home internal nm-shared public trusted work
各ゾーンの設定は、「firewall-cmd --list-all-zones」コマンドで確認できます。
# firewall-cmd --list-all-zones block target: %%REJECT%% icmp-block-inversion: no interfaces: sources: services: ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: dmz target: default icmp-block-inversion: no interfaces: sources: services: ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: drop target: DROP icmp-block-inversion: no interfaces: sources: services: ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: external target: default icmp-block-inversion: no interfaces: sources: services: ssh ports: protocols: forward: no masquerade: yes forward-ports: source-ports: icmp-blocks: rich rules: home target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client mdns samba-client ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: internal target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client mdns samba-client ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: nm-shared target: ACCEPT icmp-block-inversion: no interfaces: sources: services: dhcp dns ssh ports: protocols: icmp ipv6-icmp forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule priority="32767" reject public (active) target: default icmp-block-inversion: no interfaces: enp0s3 sources: services: dhcpv6-client ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: trusted target: ACCEPT icmp-block-inversion: no interfaces: sources: services: ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: work target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
おわりに
Firewalldの設定は、firewalld-cmdコマンドで行います。Firewalld停止時は、firewall-offline-cmdコマンドを使用します。オプションは、基本的にfirewalld-cmdと同じです。
関連記事
関連書籍(Amazon)