[記事公開日] 2018.07.05

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

今回は、VPSに不正アクセスを試みる特定のIPアドレスを拒否する方法をご説明します。
この記事を書くことになった理由として、下記のような不正アクセスを試みるログが確認されたことにあります。

Jul  5 20:51:27 example postfix/smtpd[22218]: connect from unknown[接続元IPアドレス]
Jul  5 20:51:29 example postfix/smtpd[22218]: warning: unknown[接続元IPアドレス]: SASL LOGIN authentication failed: authentication failure
Jul  5 20:51:30 example postfix/smtpd[22218]: lost connection after AUTH from unknown[接続元IPアドレス]
Jul  5 20:51:30 example postfix/smtpd[22218]: disconnect from unknown[接続元IPアドレス]
Jul  5 20:52:11 example postfix/smtpd[22218]: connect from unknown[接続元IPアドレス]
Jul  5 20:52:13 example postfix/smtpd[22218]: warning: unknown[接続元IPアドレス]: SASL LOGIN authentication failed: authentication failure
Jul  5 20:52:14 example postfix/smtpd[22218]: lost connection after AUTH from unknown[接続元IPアドレス]
Jul  5 20:52:14 example postfix/smtpd[22218]: disconnect from unknown[接続元IPアドレス]
Jul  5 20:52:21 example postfix/smtpd[22218]: connect from unknown[接続元IPアドレス]
Jul  5 20:52:24 example postfix/smtpd[22218]: warning: unknown[接続元IPアドレス]: SASL LOGIN authentication failed: authentication failure
Jul  5 20:52:24 example postfix/smtpd[22218]: lost connection after AUTH from unknown[接続元IPアドレス]
Jul  5 20:52:24 example postfix/smtpd[22218]: disconnect from unknown[接続元IPアドレス]

上記のログから何度も不正アクセスを試みようとしていることが確認できました。
これがひどい状況になるとメールの送受信ができなくなるなど、VPSの処理が停止することもあります。

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

それでは、早速上記のログで確認された不正アクセスをしようとする接続元IPアドレスを拒否する設定を行ってみます。
接続拒否をする方法として、ファイアウォールを使用します。
root権限になって、コンソールに下記のように入力します。
※接続元IPアドレスの箇所は、拒否したいIPアドレスにしてください。

iptables -I INPUT -s 接続元IPアドレス -j DROP

iptablesに設定が追加されたか確認してみます。
下記のコマンドで確認ができます。

iptables -L

iptablesに設定が追加されると、下記の行が追加されます。

DROP       all  --  接続元IPアドレス        anywhere

このまま再起動すると、せっかく追加した設定内容が削除されてしまうため、下記のコマンドで設定内容を保存します。

/etc/rc.d/init.d/iptables save

そして、iptablesを再起動します。

/etc/rc.d/init.d/iptables restart

以上が、特定のIPアドレスからのアクセスを拒否する設定方法です。

まとめ

iptablesの設定は、一歩間違えると自らのアクセスも遮断してしまう可能性があるため、気をつけて作業しましょう。

記事カテゴリー:Postfix, その他