iptablesで、特定のIPアドレスからのアクセスを拒否する

iptables に、特定のIPアドレスからのアクセスを拒否する設定を追加する手順を、簡単にまとめておきます。

iptables の設定ファイル/etc/sysyconfig/iptables を直接編集する方法ではなく、ここでは iptablesコマンドを使います。

特定のIPアドレスからのアクセスですので、TCPもUDPなどプロトコルを限定しないで、すべて拒否しますので、プロトコルは指定しません。
また、ユーザ定義のチェイン RH-Firewall-1-INPUT が、次のように設定されていることを前提とします。

[root ~]# vim /etc/sysconfig/iptables
~略~
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
~略~

それでは、特定のIPアドレスからのアクセスを拒否する設定を追加してみます。

[root ~]# iptables -A RH-Firewall-1-INPUT -s 123.145.167.189 -j DROP

この時点で、iptables の動作に動的に反映されますので、実行には十分な注意を払う必要があります。コマンド内容を丁寧に確認してから、実行してください。

コマンドを実行後に、設定内容を確認します。

[root ~]# iptables -L
~略~
Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination
DROP       all  --  123.145.167.189      anywhere
~略~

これで大丈夫だと判断できたら、この設定を恒久的なものにするために /etc/sysconfig/iptables に書き込みます。

[root ~]# service iptables save
ファイアウォールのルールを /etc/sysconfig/iptables に保存中[  OK  ]

こうすることで、iptables サービスを再起動しても、このコマンドの設定が反映されるようになります。

最後に iptables を再起動します。

[root ~]# service iptables restart
ファイアウォールルールを適用中:                            [  OK  ]
チェインポリシーを ACCEPT に設定中nat mangle filter        [  OK  ]
iptables モジュールを取り外し中                            [  OK  ]
iptables ファイアウォールルールを適用中:                   [  OK  ]

これで終了です。

Comments are closed.