質問 :CentOS / RHEL 7 で firewalld (以前のバージョンの iptables) を開始または停止する方法は?
解決策:
iptables サービスは firewalld に置き換えられました コマンド iptables -L ノードに適用されている一連のルールがリストされます。
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere INPUT_direct all -- anywhere anywhere INPUT_ZONES_SOURCE all -- anywhere anywhere INPUT_ZONES all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination DOCKER-ISOLATION all -- anywhere anywhere DOCKER all -- anywhere anywhere ....
systemctl コマンドは、ノードで実行されているすべてのサービスを一覧表示します。サービス「iptables」を確認すると、出力が元に戻りません。サービス iptables は「firewalld」という名前に置き換えられます
# systemctl | grep -i iptables # systemctl | grep -i firewall firewalld.service loaded active running firewalld - dynamic firewall daemon
サービスのステータスを確認するには、以下のコマンドを使用できます:
# systemctl status firewalld firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled) Active: active (running) since Sun 2016-05-29 03:33:25 EDT; 3h 12min ago Main PID: 830 (firewalld) CGroup: /system.slice/firewalld.service └─830 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid May 29 03:33:25 geeklab systemd[1]: Started firewalld - dynamic firewall daemon.
以下のコマンドでサービスを停止し、ステータスを再確認できます:
# systemctl stop firewalld # systemctl status firewalld firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled) Active: inactive (dead) since Sun 2016-05-29 06:47:03 EDT; 17s ago Process: 830 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS) Main PID: 830 (code=exited, status=0/SUCCESS) May 29 03:33:25 geeklab systemd[1]: Started firewalld - dynamic firewall daemon. May 29 06:47:03 geeklab systemd[1]: Stopping firewalld - dynamic firewall daemon... May 29 06:47:03 geeklab systemd[1]: Stopped firewalld - dynamic firewall daemon.
次回の起動時にサービスを無効にするには (RHEL6 以前では chkconfig)、次のコマンドを実行できます。コマンドを実行すると、関連するファイル リンクが削除され、次回から参照されなくなります。
# systemctl status firewalld firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled) Active: inactive (dead) since Sun 2016-05-29 06:47:03 EDT; 2min 26s ago Process: 830 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS) Main PID: 830 (code=exited, status=0/SUCCESS) May 29 03:33:25 geeklab systemd[1]: Started firewalld - dynamic firewall daemon. May 29 06:47:03 geeklab systemd[1]: Stopping firewalld - dynamic firewall daemon... May 29 06:47:03 geeklab systemd[1]: Stopped firewalld - dynamic firewall daemon.
上記の出力に見られるように、firewalld サービスは有効モードになっています。これは、次の起動時に開始されることを意味します。次回起動時の起動を無効にするには、次のコマンドを使用します:
# systemctl disable firewalld rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' rm '/etc/systemd/system/basic.target.wants/firewalld.service'
ステータスを再度確認して、サービスが無効モードであることを確認してください。
# systemctl disable firewalld rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' rm '/etc/systemd/system/basic.target.wants/firewalld.service' [root@geeklab ~]# systemctl status firewalld firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled) Active: inactive (dead) May 29 03:33:16 geeklab systemd[1]: Starting firewalld - dynamic firewall daemon... May 29 03:33:25 geeklab systemd[1]: Started firewalld - dynamic firewall daemon. May 29 06:47:03 geeklab systemd[1]: Stopping firewalld - dynamic firewall daemon... May 29 06:47:03 geeklab systemd[1]: Stopped firewalld - dynamic firewall daemon.