2008-10-17:sshへのアタックをiptablesでブロック
リモートの iptables をいじるのは自殺行為だ、とはよく言われますが、実際に死にました。トホホ。。。
京都のデータセンターに置いているグローバル IP address を持った私のマシンに ssh でつないではいろんなユーザー名のパスワードチャレンジをしてくる子がいて、じゃまくさいので遮断しようというお話。
あ、もちろん、PasswordAuth は切ってあります。
iptables に ipt_recent.ko というモジュールがあります。
今回はこれを使って、「一定時間内に指定回数以上の接続があったら撥ねる」ということを実現するのが今回のお話。
やり方としては以下を実行。
# /sbin/iptables -A INPUT -p tcp --syn -dport 22 -m recent --name SSH --set # /sbin/iptables -A INPUT -p tcp --syn -dport 22 -m recent --name SSH --rcheck --second 60 --hitcount 6 -j DROP
ひとつめのルールで22番ポートにきた SYN パケットに SSH という名前をつけて記録して、ふたつめのルールで60秒以内の6回のチャレンジ以降は遮断、ということをしています。
が、これを実行したら自分の ssh 接続も切れた。
しかも、再接続もできなくなった。。。(号泣)
しょうがないので、京都の仲間に電話して、現地行って再起動をしてもらいました。
コマンドラインで叩いただけだから、再起動すればすべて忘れてくれます。
やっちまったのが午前中で、夕方前には復旧しました。うーん、がっかりな自分。
再挑戦は自分が現地に行った時にやります。
なにが悪かったんだろうなぁ。。。