sshブルートフォースアタック防ぎたい。対応策発見

今日はブルートフォースアタックについてです。

昔から中国や台湾、アメリカ、最近はブルガリなど変な国からもブルートフォースアタックを受けることが多いです。
しかも最近はさくらVPSのような簡単に契約して対応も管理者に任せるというさくらインターネット側にも問題がありますが
悪意を持った悪い人たちが軽々しくサーバを契約してブルートフォースアタックを行っています。

なのでよく海外IPからのブルートフォースアタックを制御するような
iptablesの設定では防ぎ切れるものではありません。
ブルートフォースアタックは何回も何回もアタックしてくるのでログにもかなり出力されます。

今回は国で制御するわけではなくsshを行うことの回数の失敗で遮断できるようにすればいいわけです。
/etc/ssh/sshdによる設定でも多少は制御できますが、
これでは意味がありません・・・
なのでiptablesで自分のサーバを守りましょう。

今回はCentOSの場合で書きます。
/etc/sysconfig/iptables
を書き換えます。

-A RH-Firewall-1-INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
-A RH-Firewall-1-INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP

とこのように2行iptablesの設定ファイルを書き加えるだけです。
上記の設定ですと60秒間の間に8回接続を失敗した時に遮断します。
但し、この設定を理解してアタックしてくる人もいるのでそこは個人の感覚で設定を増やして下さい。

-A RH-Firewall-1-INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 240 --hitcount 8 --rttl --name SSH -j DROP

これなら、長時間をあけてブルートフォースアタックしてくる相手にも遮断することができます。
これよりも長い時間の設定を書き換えてもいいと思います。
但し、自分で失敗すると入れなくなるので気をつけてくださいwww

書き換えた後にitpablesの再起動もしくはsaveをしてあげればいいです。

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

で反映されます。

これでブルートフォースアタックにも対応できるかもしれませんね。

参考ページ