====== ssh への総当り攻撃(brute force attack)の対処 ======
相変わらず、あちらこちらからsshへのアタックが多い。
そこで、[[http://www.teamits.com/resources/maxlogins.html|maxlogins]]を使ってみます。このツールはsyslog内のsshアクセス失敗回数を監視して、アクセス禁止のIPアドレスリストをhosts.allowに取り込んでsshのアクセスを禁止する仕組みです。\\
===== インストールと設定 =====
サイトの記述通りに、maxlogins.plを/usr/local/bin にコピーして、ownerとmodeを変更します。
# chown root:wheel /usr/local/bin/maxlogins.pl
# chmod 750 /usr/local/bin/maxlogins.pl
さらに/etc/syslog.confの中の
auth.info;authpriv.info /var/log/auth.log
という行の下に
auth.info;authpriv.info |exec /usr/local/bin/maxlogins.pl
を追加します。
最後に、/etc/hosts.allow の
ALL : ALL : allow
という行の前に、
sshd : /var/log/maxlogins : deny
を追加します。
===== オプション =====
-e: アクセス禁止の解除時間の指定。デフォルトは12時間。
-e=1d, -e=24h, -e=1440m, -e=86400s という感じで指定する。この場合いづれも1日の意味。
-a: IPアドレスがブロックされるまでの最大試行回数。 デフォルトは3回。
-a=5 という風に指定する。
-l: ログレベルの指定。 ログはデフォルトで /var/log/auth.logに記録される。
-l=1: informational (e.g., new blocks)
-l=2: above, plus IP expirations
-l=9: verbose logging
===== おまけ =====
この様なメッセージ
sshd[123]: Failed password for root from 10.0.0.1 port 55555 test
だけではなく、他のメッセージ
sshd[234]: Invalid user test from 10.0.0.1
とか
sshd[345]: Did not receive identification string from 10.0.0.1
にも対応できるよう[[http://diary.echo78.net/?date=20070103|『学生と職員の狭間に』]]で紹介されているパッチをあてました。
===== 参照 =====
* [[http://www.teamits.com/resources/maxlogins.html|maxlogins]]
* [[http://www.masashi.org/blog/2006/11/27/freebsd-sshd-hostsallow/|MASASHI Blog:FreeBSD (sshd & hosts.allow)]]
* [[http://diary.echo78.net/?date=20070103|学生と職員の狭間に]]
== linux対応 ==
* [[http://d.hatena.ne.jp/uunfo/20070418/1176902222|"improve it!"(IT四重奏):maxloginsでsshdへの総当り攻撃を防ぐ]]