私は学校のプロジェクトで、すべてがFedora 24を実行する3つの仮想マシンで構成されるシンプルなアーキテクチャを持っています。1つはサーバー、1つはクライアント、1つはルーターです。私はiptablesでうまく管理する方法しか知らなかったDNAT/SNATの広範な使用のために、firewalldを介してiptablesを使用することにしました。したがって、firewalldを無効にし、iptablesを有効にします。
# dnf install iptables-services
# systemctl stop firewalld
# systemctl disable firewalld
# systemctl start iptables && systemctl start ip6tables
# systemctl enable iptables && systemctl enable ip6tables
# service iptables save
で保存した一連のルールがあり、ルーターで完全に機能しました。
他の2台のマシン、サーバー、およびクライアントで同じ方法を使用しましたが、ルールは保存されませんでした。少し調べたところ、iptables.serviceが起動時に開始されないことに気付きました。さらに、上記のように無効にされていたとしても、firewalldが実行していることに気付きました。
ファイアウォールが無効になっているにもかかわらず、firewalldが起動する特別な理由はありますか?起動直後のステータスは次のとおりです。
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset : enabled)
Active: active (running) since Sun 2017-01-22 23:52:34 PST; 15s ago
Docs: man:firewalld(1)
Main PID: 619 (firewalld)
Tasks: 2 (list:512)
CGroup: /system.slice/firewalld.service
└─619 /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid
Jan 22 23:52:33 public systemd[1]: Starting firewalld - dynamic firewall daemon
Jan 22 23:52:34 public systemd[1]: Started firewalld - dynamic firewall daemon.
一方、iptablesは次のとおりです。
iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/systemd/system/iptables.service; enabled; vendor preset: disabled)
Active: inactive (dead)
firewalld
を取り除く最も安全な方法は、それを削除することです。
dnf remove firewalld
仮想マシンの場合は大丈夫です。
firewalld
サービスをマスクして無効にします。
systemctl mask firewalld
systemctl disable firewalld
次のコマンドを使用してオフにすることができます。
#chkconfig firewalld off
次に、マシンを再起動して完了します。
この方法では、ファイアウォールレベルのサービスを実行レベルからオフにして、マシンの起動時に開始されないようにします。