Integrated Technical Solutions で配布されている、ssh に対する brute force attack に対抗するためのツール。perl で記述されている。v2.0 では時限制御機能も搭載した。ここでは v2.0 について述べる。
ITS のページからリンクをたどって maxlogins.txt という perl スクリプト本体をダウンロードする。
ダウンロードしたファイルを perl のスクリプトファイルだとわかりやすいように、名前の変更を行う。
# mv maxlogins.txt maxlogins.pl
次に&attachref(maxlogins.patch,,この patch ファイル);をダウンロードして、適用する。
# patch < maxlogins.patch
これはそのままでは対応していない以下の警告を検知するためである*1。
sshd[234]: Invalid user test from 10.0.0.1 sshd[345]: Did not receive identification string from 10.0.0.1
ファイルの所有権を変更し、実行属性をつけたら、/usr/local/bin やそのほかの好きなところに移動する。
# chown root:wheel maxlogins.pl # chmod 750 maxlogins.pl # mv maxlogins.pl /usr/local/bin/
/etc/syslog.conf に以下を追加する。コマンドラインオプションを使用するならば、一緒に記述する。
auth.info;authpriv.info |exec /usr/local/bin/maxlogins.pl
/etc/hosts.allow の先頭に以下を追加する。このとき必ず ALL : ALL : allow という行よりも上に記述する*2。
sshd : /var/log/whiteist : allow sshd : /var/log/maxlogins : deny
/var/log/whitelist 内に常に接続を許可する IP やホスト名を記述する*3。仮に以下のようにした。
127.0.0.1 .example.net
最後にこれまでの変更を反映させるために syslogd を再起動する。
# /etc/rc.d/syslogd restart
1: informational (e.g., new blocks) 2: above, plus IP expirations 9: verbose logging