ufwでIPアドレスを遮断したときのメモ

ufwでIPアドレスを遮断したときのメモ。

ここ数日、海外のIPアドレスから本ブログに対して大量のスパムコメントが投稿されていることに気が付いた。

数分おきにコメントが投稿され、さすがに鬱陶しくなったのでIPアドレスを遮断することにした。

ログを調べたところ、送信元のIPアドレスは2つだけだった。

以下のiptablesコマンドでIPアドレスの遮断を試みた。

iptables -A INPUT -s 46.161.xxx.xxx -j DROP
iptables -A INPUT -s 188.143.xxx.xxx -j DROP

が、上記のルール投入後も相変わらずスパムコメントが送信されていた。

もしや、上記の遮断ルールより優先度の高いルールが存在しており、IPアドレスが遮断できていないのでは?と思い至り、一旦以下のiptablesコマンドでルールを削除した。

iptables -D INPUT -s 46.161.xxx.xxx -j DROP
iptables -D INPUT -s 188.143.xxx.xxx -j DROP

正直、iptablesコマンドの使い方をよく理解していないので、代わりにufwコマンドを利用することにした。

まずは、ufw status numberedで現在適用されているルールの一覧を確認した。

# ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     LIMIT IN    Anywhere
[ 2] 443/tcp                    ALLOW IN    Anywhere
[ 3] 80/tcp                     ALLOW IN    Anywhere
[ 4] 22/tcp (v6)                LIMIT IN    Anywhere (v6)
[ 5] 443/tcp (v6)               ALLOW IN    Anywhere (v6)
[ 6] 80/tcp (v6)                ALLOW IN    Anywhere (v6)

ルール2と3にて、ポート番号80と443宛のTCP通信が許可されている。
特定のIPアドレスからのスパムコメントを遮断したい場合は、これらのルールよりも高い優先度を設定する必要がある。

ufwのinsert文を利用して遮断ルールが最優先されるように設定した。

ufw insert 1 deny from 46.161.xxx.xxx to any
ufw insert 2 deny from 188.143.xxx.xxx to any

もう一度、ufw status numberedで確認した。遮断ルールの優先順位が最も高くなっているのが分かる。

# ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] Anywhere                   DENY IN     46.161.xxx.xxx
[ 2] Anywhere                   DENY IN     188.143.xxx.xxx
[ 3] 22/tcp                     LIMIT IN    Anywhere
[ 4] 443/tcp                    ALLOW IN    Anywhere
[ 5] 80/tcp                     ALLOW IN    Anywhere
[ 6] 22/tcp (v6)                LIMIT IN    Anywhere (v6)
[ 7] 443/tcp (v6)               ALLOW IN    Anywhere (v6)
[ 8] 80/tcp (v6)                ALLOW IN    Anywhere (v6)

数分後にiptablesコマンドで確認したところ、無事IPアドレスがブロックされているのが確認できた。

# iptables -L -v | grep 46.161.xxx.xxx
   17   1020 DROP       all  --  any    any     46.161.xxx.xxx         anywhere

# iptables -L -v | grep 188.143.xxx.xxx
   32  1920 DROP       all  --  any    any     188.143.xxx.xxx       anywhere

これでスパムコメントが止んだ。

参考
https://bunoacts.hatenablog.com/entry/2016/05/16/173816

Leave a Reply

Your email address will not be published. Required fields are marked *