====== 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への総当り攻撃を防ぐ]]