ユーザ用ツール

サイト用ツール


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