ふとサーバーを覗いてみて、ps aux を実行してみると、たくさんのpop3-loginプロセスが生成されている。

dovecot  16808  0.0  0.1   5016  1532 ?        S    10:08   0:00 pop3-login
dovecot  16809  0.0  0.1   5016  1528 ?        S    10:08   0:00 pop3-login
dovecot  16857  0.0  0.1   5016  1772 ?        S    10:09   0:00 pop3-login
dovecot  16973  0.0  0.1   5016  1848 ?        S    10:10   0:00 pop3-login
dovecot  17428  0.0  0.1   5016  1524 ?        S    06:44   0:00 pop3-login
dovecot  17511  0.0  0.1   5016  1524 ?        S    10:10   0:00 pop3-login
dovecot  17514  0.0  0.1   5016  1528 ?        S    10:11   0:00 pop3-login
dovecot  17521  0.0  0.1   5016  1776 ?        S    10:11   0:00 pop3-login
dovecot  17553  0.0  0.1   5016  1844 ?        S    10:11   0:00 pop3-login
dovecot  17603  0.0  0.1   5016  1528 ?        S    10:13   0:00 pop3-login
dovecot  17604  0.0  0.1   5152  1972 ?        S    10:13   0:00 pop3-login
dovecot  17638  0.0  0.1   5016  1528 ?        S    10:14   0:00 pop3-login
dovecot  17873  0.0  0.1   5016  1528 ?        S    10:15   0:00 pop3-login
dovecot  18081  0.0  0.1   5016  1524 ?        S    06:46   0:00 pop3-login
dovecot  18163  0.0  0.1   5016  1528 ?        S    06:48   0:00 pop3-login
dovecot  18200  0.0  0.1   5016  1524 ?        S    06:49   0:00 pop3-login
dovecot  18202  0.0  0.1   5016  1772 ?        S    06:49   0:00 pop3-login

/var/log/maillog を確認してみると、 dovecot: pop3-login: Aborted login: が多量に出力されている。

Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:06 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:08 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:10 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:10 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:10 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:10 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:10 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72
Jul 30 22:44:10 myserver dovecot: pop3-login: Aborted login: user=, method=PLAIN, rip=::ffff:66.85.157.94, lip=::ffff:192.168.1.72

どうやら、pop3が辞書アタックを受けたみたいだ。特に侵入されたわけではないが、この時間のLoadAverage等はやはり上がっている。
Dovecotが辞書アタックを受けた時のLoadAverage

なにか対策がないかと思って調べてみた。
(1) POP3のIPを絞る。
FromのIPをアクセスする人のIPに限定する。大変効果的だが、


このサーバーでは運用上、ちょっと難しい。稀にどこからかわからない国からアクセスする人もいる(可能性がある。)

(2) iptables の設定を行い、pop3の110番ポートの接続は1秒以上の時間間隔が必要に設定する。
このあたりを参考に iptables の設定を行う。
辞書攻撃されても、1秒あたり1回程度しか認証できないので、有効そう。
iptables のコマンド書式
自鯖の dovecot に辞書攻撃 その後・・・対策を実施

試しに、PCメーラーを連続で受信してみると、/var/log/messages にpop3のRejectのログが出力された。

Jul 31 11:13:50 myserver kernel: pop3 : maybe illegal attack IN=eth0 OUT= MAC=72:a9:db:cb:76:4c:00:08:0e:ca:cc:5f:08:00 SRC=10.16.4.8 DST=192.168.1.72 LEN=52 TOS=0x00 PREC=0x00 TTL=119 ID=10046 DF PROTO=
TCP SPT=56056 DPT=110 WINDOW=8192 RES=0x00 SYN URGP=0

(3) Dovecotの認証方法を変更する。またはプロセスの最大数を変更する。
Dovecotは認証時にプロセスを起動しするようだが、/etc/dovecot.conf のlogin_process_per_connectionを yes → no にすると、1プロセスで認証を行うらしい。
その他、最大のプロセス数も指定できる模様。
しかし、今回は iptables での対策のみとしよう。(時間切れで。。)