os:freebsd:maxlogins
ssh への総当り攻撃(brute force attack)の対処
相変わらず、あちらこちらからsshへのアタックが多い。
そこで、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
にも対応できるよう『学生と職員の狭間に』で紹介されているパッチをあてました。
参照
linux対応
os/freebsd/maxlogins.txt · 最終更新: 2017/04/14 05:21 by 127.0.0.1