CentOS 7以降、FirewallDはデフォルトのファイアウォール管理ツールとしてiptablesを置き換えます。
FirewallDは、firewall-cmdと呼ばれるコマンドラインユーティリティで制御できる完全なファイアウォールソリューションです。 Iptablesコマンドライン構文に慣れている場合は、FirewallDを無効にして、従来のiptablesセットアップに戻ることができます。
このチュートリアルでは、FirewallDサービスを無効にしてiptablesをインストールする方法を説明します。
前提条件#
チュートリアルを開始する前に、sudo権限を持つユーザーとしてログインしていることを確認してください。
CentOS 7システムでFirewallDを無効にするには、次の手順に従います。
-
次のコマンドを入力して、FirewallDサービスを停止します。
sudo systemctl stop firewalld
-
FirewallDサービスを無効にして、システムの起動時に自動的に開始します:
sudo systemctl disable firewalld
-
FirewallDサービスをマスクして、別のサービスによって開始されないようにします。
sudo systemctl mask --now firewalld
Iptablesをインストールして有効にする#
CentOS 7システムにIptablesをインストールするには、次の手順を実行します。
-
次のコマンドを実行して、
iptables-service
をインストールします CentOSリポジトリからのパッケージ:sudo yum install iptables-services
-
パッケージがインストールされたら、Iptablesサービスを開始します:
sudo systemctl start iptables
sudo systemctl start ip6tables
-
Iptablesサービスがシステムの起動時に自動的に開始するようにします:
sudo systemctl enable iptables
sudo systemctl enable ip6tables
-
次のコマンドでiptablesサービスのステータスを確認します:
sudo systemctl status iptables
sudo systemctl status ip6tables
-
現在のiptablesルールを確認するには、次のコマンドを使用します。
sudo iptables -nvL
sudo ip6tables -nvL
デフォルトでは、SSHポート22のみが開いています。出力は次のようになります。
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 5400 6736K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 2 148 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 3 180 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 4298 packets, 295K bytes) pkts bytes target prot opt in out source destination
この時点で、iptablesサービスが正常に有効になり、ファイアウォールの構築を開始できます。再起動後も変更は保持されます。