RedHat®EnterpriseLinux®(RHEL)7およびCentOS®7以降、iptablesの管理にfirewalldを使用できるようになりました。そのため、firewall-cmd
を使用する必要があります。 コマンドを実行するか、firewalldを無効にしてiptablesを有効にします。この記事では、従来のiptablesセットアップの使用方法を説明します。
次のコマンドを実行して、使用したくないfirewalldサービスを停止してマスクします。
$ systemctl stop firewalld
$ systemctl mask firewalld
iptablesをインストールして構成する
次の手順を使用して、iptablesをインストールおよび構成します。
-
iptables-services
をインストールします 次のコマンドを実行して、パッケージ(まだインストールされていない場合):$ yum install iptables-services
-
次のコマンドを実行して、起動時にサービスを開始できるようにします。
$ systemctl enable iptables $ systemctl enable ip6tables
-
次に、iptablesルールを追加します。これは、次のいずれかの方法で実行できます。
-
コマンドラインインターフェイス(CLI)から、
iptables -I INPUT ...
のようなコマンドを実行します。 -
/etc/sysconfig/iptables
を作成または編集する 次の基本的な例のように見えるファイルで、ポート22と80は開いたままになります。$ cat /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [214:43782] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp-port-unreachable COMMIT $cat /etc/sysconfig/ip6tables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [214:43782] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp6-adm-prohibited COMMIT
-
-
(オプション )ルールを
/etc/sysconfig/ip{,6}tables
に保存する場合 ファイルの場合は、次のコマンドも実行する必要があります。$ systemctl restart iptables $ systemctl restart ip6tables
-
次に、次のコマンドを実行して、iptablesサービスがアクティブになっていることを確認します。
$ systemctl status iptables $ systemctl status ip6tables
-
次のコマンドを実行して、iptablesルールを確認します。
$ iptables -L $ ip6tables -L
-
次のコマンドを実行して、サーバーが開いたポート(上記の例では22と80)をリッスンしていることを確認します。
$ netstat -plant
-
systemd
をクエリします 次のコマンドを実行してiptablesサービスに加えた変更のログのジャーナル:$ journalctl -f -u iptables.service $ journalctl -f -u ip6tables.service
-
サーバーを再起動します。 iptablesルールを保存し、自動的に再読み込みする必要があります。