とりあえず再起動して復旧したのですが、secureログに下記ような認証のログが大量に残されていました。
Jan 22 01:33:36 www****u dovecot-auth: pam_unix(dovecot:auth): check pass; user unknown
Jan 22 01:33:36 www****u dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser= rhost=::ffff:***.***.***.***
Jan 22 01:33:36 www****u dovecot-auth: pam_succeed_if(dovecot:auth): error retrieving information about user test
※一部伏せ字にしています
認証に成功しているわけではないと思うのですが、大量のアクセスでCPUリソースが消費されてサーバーダウンという結果になったのではないかと想像しています。
SSHで同様のことがあった場合にはポート番号を変更したりして回避すると思うのですが、POPに関しては何か対策があるものでしょうか。何か対策がございましたらお教えいただけますと幸いです。
以上、よろしくお願いいたします。
一時対応としては、そのIPアドレスからのアクセスをiptablesで叩き落とします。
最低限でも110番(POP3overSSLなら995番)、面倒ならポート番号問わず落としますね。
iptables -A INPUT -s xx.xx.xx.xx -p tcp --dport 110 -j DROP
その上でdovecotを再起動すれば、リソースは回復するのではないでしょうか。
複数のIPアドレスから攻撃が来ててイタチごっこになってしまう場合は逆で、iptablesでデフォルト拒否にした上で、必要なIPアドレスのみ110or995へのアクセスを許可する、というのはどうでしょう?
dovecot.confで
listen = xxx
ssl_listen = xxx
のようなパラメータを変更すればポート変更はできますが、ユーザビリティを考えるとちょっと微妙なところですね。
こんなのを発見しましたが、原理的には一緒ですかね。
2012/01/23 00:02:47http://news.trippyboy.com/serversmanvps/dovecot%E8%AA%8D%E8%A8%BC%E3%82%A2%E3%82%BF%E3%83%83%E3%82%AF%E3%82%92%E3%80%8Cswatch%E3%80%8D%E3%81%A7%E5%9B%9E%E9%81%BF%E3%81%AE%E5%B7%BBserversmanvps/
あとは
login_process_per_connection
のパラメータをいじると、リソース消費は抑えられるかもしれません。
その前後の認証プロセス系のパラメータをいじるのはありかもしれませんが、攻撃を受けてることには変わらないですね。
http://blog.trippyboy.com/mail/dovecot%E8%AA%8D%E8%A8%BC%E3%82%A2%E3%82%BF%E3%83%83%E3%82%AF%E3%81%AB%E3%82%88%E3%82%8B%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E4%B9%B1%E7%AB%8B%E3%82%92%E3%81%95/
http://www.dovecot.jp/dovecot.conf
ちなみに個人的に同じくさくらのVPSでPOP3+SMTPサーバを運用してるんですが、POP3overSSLだからなのか、あまりPOP3への攻撃は来ていません。22とか23へは結構あるんですけどね。
お教えいただきありがとうございます。なるほど、幾つか対抗手段があるのですね。POP3 over SSLも検討してみたいと思います。
2012/01/23 09:45:30大変参考になりました、ありがとうございます!