VPS上に立ててあるSMTPサーバのログをふと眺めてみたら、1回/秒くらいの頻度でSASL LOGIN authentication failed: authentication failureが流れていました。これはSMTPログインの試行で失敗したことを表します。つまりブルートフォース攻撃されていたということです。パスワードはシステムとは別で、幸い気付ける実害は出ていなかったので一安心ですが、パスワードを強化するだけでは不安ですし、このようなログが流れてくるのは気持ち悪いので、動的にブロックするようにしました。とはいっても大したことはしておらず、ログからipアドレスを切り出して、iptablesでフィルタリングするだけです。

1
2
3
4
5
6
cat /var/log/maillog                                              \
| grep 'SASL LOGIN authentication failed: authentication failure' \
| sed -E 's/.*\[([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\].*/\1/' \
| sort | uniq \
| xargs -l -I@ bash -c 'iptables -C INPUT -s @ -j DROP \
|| iptables -I INPUT -s @ -j DROP' 2&>1 > /dev/null

これをcronとかで頻繁に実行しとけばもう手出しできませんね。