dovecotでpop3-loginプロセスが多量に生成されている。辞書アタックを受けたみたい。

ふとサーバーを覗いてみて、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: が多量に出力されている。

```teraterm
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回程度しか認証できないので、有効そう。 <a title="iptables のコマンド書式" href="http://www.turbolinux.co.jp/products/server/11s/user_guide/iptablescmd.html" target="_blank">iptables のコマンド書式</a> <a title="自鯖の dovecot に辞書攻撃 その後・・・対策を実施" href="http://blog.wakita.cc/index.php?e=47" target="_blank">自鯖の dovecot に辞書攻撃 その後・・・対策を実施</a> 試しに、PCメーラーを連続で受信してみると、/var/log/messages にpop3のRejectのログが出力された。 ```teraterm 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 での対策のみとしよう。(時間切れで。。)

関連記事