VPSに変なのが来るのでやってみた。
recent モジュールを使って、n秒の間にm回 アクセスしたものをDROPする。--name を指定しないとDEFAULT になる。
# iptables -A INPUT -p tcp --syn --dport 22 -m recent --name badguy --set # iptables -A INPUT -p tcp --syn --dport 22 -m recent --name badguy --update --seconds 60 --hitcount 5 -j DROP
listされているアドレスは /proc/net/xt_recent/LIST_NAME の中に書かれている。また、このファイルを直接いじっても制御できる。
- man iptables
Each file in /proc/net/xt_recent/ can be read from to see the current list or written two using the
following commands to modify the list:
echo +addr >/proc/net/xt_recent/DEFAULT
to add addr to the DEFAULT list
echo -addr >/proc/net/xt_recent/DEFAULT
to remove addr from the DEFAULT list
echo / >/proc/net/xt_recent/DEFAULT
to flush the DEFAULT list (remove all entries).