アンチ ブルート・フォースアタック
sshのbrute force attackに対して,今までカスタマイズのしやすさから,linuxでblocksshd
BlockSSHD download | SourceForge.net
を使っていましたが,pfをオフにしたFreeBSDでブルート・フォースに対抗したくなったので,PAMのレベルでIPアドレスベースでチェックするpam_afモジュールを入れてみました.
あらかじめ,ipfwをオンにしておく必要があります.
# sysctl -a | grep fw.enable net.inet.ip.fw.enable: 1
となっているかとか,
# ipfw list
とやってエラーが出ないかどうか確認しておいて下さい.
ipfwが入っていれば,以下のようにしてインストールします.
http://mbsd.msk.ru/stas/pam_af.html
# wget http://mbsd.msk.ru/stas/pam_af-1.0alpha.tar.bz2 # tar xvf pam_af-1.0alpha.tar.bz2 # cd pam_af-1.0alpha # make; make install # pam_af_tool ruleadd -h '*' -a 5 -t 1y
そして/etc/pam.d/sshdにREADMEにもある,次の行を加えるとインストール終了です.
auth requisite /usr/local/lib/security/pam_af.so
わざとパスワードを間違えてsshでログインしようとすると,次のようにロックされます.
# pam_af_tool statlist <hoststat> <host hostname='192.168.0.3'> <attempts>5</attempts> <last_attempt>Sat Sep 5 23:22:51 2009</last_attempt> <status>locked</status> </host> </hoststat>
このattempsが5回というのは,pam_af_tool ruleaddの-aオプションで指定した値です.
丸一日置いておくと,こんな感じになりました.
# pam_af_tool statlist | grep status | sort | uniq -c 53 <status>locked</status> 598 <status>unlocked</status>
アタックのうち,一割はブロックしてくれたみたいです.
なお,ipfwをオンにしたらネットの通信が不可能になってあせった場合は,次のようにオールOKにしてみて下さい.
セキュリティ的にはもっとチューニングした方が良いですが.
# ipfw add 100 allow all from any to any