1 最后由 rain6966 (2017-01-10 12:43:15) 编辑

主题: fail2ban 的 dovecot.iredmail.conf 未阻擋到該擋的IP

==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:iRedMail 0.9.5-1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):OpenLDAP
- 使用的 Linux/BSD 发行版名称及版本号:CentOS 7
- 与您的问题相关的日志信息:
====
#下面log 抓不到IP         (dovecot.log檔)

Jan 04 17:40:55 auth: Info: ldap(root@mydomain,45.63.34.194): unknown user
Jan 05 20:07:04 auth: Info: ldap(root@mydomain,98.158.177.98): unknown user
Jan 05 20:06:50 auth: Info: ldap(test@mydomain,98.158.177.98): Login attempt with empty password
Jan 05 20:08:45 auth: Info: ldap(backup@mydomain,98.158.177.98): unknown user
Jan 05 20:08:45 auth: Info: ldap(mail@mydomain,98.158.177.98): unknown user
Jan 05 20:08:45 auth: Info: ldap(smtp@mydomain,98.158.177.98): unknown user
Jan 05 20:12:25 auth: Info: ldap(postmaster@mydomain,98.158.177.98): Login attempt with empty password
Jan 05 20:12:40 auth: Info: ldap(postmaster@mydomain,98.158.177.98): invalid credentials

grep '45.63.34.194' dovecot.log|wc -l
110
grep '98.158.177.98' dovecot.log|wc -l
1648

dovecot.iredmail.conf 或預設安裝的 dovecot.conf 皆無法抓到以上兩IP

現使用dovecot.iredmail.conf 
最後兩行合併為一行:
         ^%(__prefix_line)s(auth|auth-worker\(\d+\)): (pam|passwd-file)\(\S+,<HOST>\): unknown user\s*$
            ^%(__prefix_line)s(auth|auth-worker\(\d+\)): Info: ldap\(\S*,<HOST>,\S*\): invalid credentials\s*$

           #改為
            (pam|passwd-file|dap)\(\S*,<HOST>(\)|\S*\)): (invalid credentials|unknown user|Login attempt with empty password)\s*$.

是可抓到;
不知版主有何其他看法意見.

Thanks.

回复: fail2ban 的 dovecot.iredmail.conf 未阻擋到該擋的IP

rain6966 写道:

Jan 04 17:40:55 auth: Info: ldap(root@mydomain,45.63.34.194): unknown user

这些日志是否需要在 dovecot 里启用 debug mode?

回复: fail2ban 的 dovecot.iredmail.conf 未阻擋到該擋的IP

ZhangHuangbin 写道:

这些日志是否需要在 dovecot 里启用 debug mode?

是的:
# Debug
mail_debug = yes
auth_verbose = yes

回复: fail2ban 的 dovecot.iredmail.conf 未阻擋到該擋的IP

在正常使用时是不开启 debug mode 的,所以这些日志都不会出现。而 unknown user 这类行为,在非 debug mode 应该有对应的 log,我们应该去抓非 debug mode 时的 log。

回复: fail2ban 的 dovecot.iredmail.conf 未阻擋到該擋的IP

在maillog 裡 是可抓到
# grep '45.63.34.194' /var/log/maillog|wc -l
434
# grep '98.158.177.98' /var/log/maillog|wc -l
5236

# fail2ban-regex -v /var/log/maillog /etc/fail2ban/filter.d/postfix.iredmail.conf

Thank's

回复: fail2ban 的 dovecot.iredmail.conf 未阻擋到該擋的IP

rain6966 写道:

# grep '45.63.34.194' /var/log/maillog|wc -l
434
# grep '98.158.177.98' /var/log/maillog|wc -l
5236

用 IP 地址做匹配,无法证明使用的 fail2ban regex 有效啊。
如果在非 debug mode 也有这些 log,我们可以添加上去,但只有 debug 模式才有的则不会添加。

7 最后由 rain6966 (2017-01-13 10:46:00) 编辑

回复: fail2ban 的 dovecot.iredmail.conf 未阻擋到該擋的IP

感謝版主回覆.
我可能未說清楚 .
1.
# grep '98.158.177.98' /var/log/maillog|wc -l
5236
我是想說 在 postfix 下的maillog 有出現過幾次 .

2.
# fail2ban-regex -v /var/log/maillog /etc/fail2ban/filter.d/postfix.iredmail.conf

部分內容可看到有抓到,該擋的IP:

Results
=======
Failregex: 3607 total
|-  #) [# of hits] regular expression
|   1) [2372] \[<HOST>\]: SASL (PLAIN|LOGIN) authentication failed

|      45.63.34.194  Wed Jan 04 17:41:05 2017
|      45.63.34.194  Wed Jan 04 17:41:19 2017
|      45.63.34.194  Wed Jan 04 17:41:38 2017
|      45.63.34.194  Wed Jan 04 17:41:48 2017
|      45.63.34.194  Wed Jan 04 17:42:00 2017
|      45.63.34.194  Wed Jan 04 17:42:15 2017

|      98.158.177.98  Thu Jan 05 20:12:12 2017
|      98.158.177.98  Thu Jan 05 20:12:22 2017
|      98.158.177.98  Thu Jan 05 20:12:22 2017
|      98.158.177.98  Thu Jan 05 20:12:22 2017
|      98.158.177.98  Thu Jan 05 20:12:35 2017
|      98.158.177.98  Thu Jan 05 20:12:35 2017
|      98.158.177.98  Thu Jan 05 20:12:35 2017
|      98.158.177.98  Thu Jan 05 20:12:50 2017
|      98.158.177.98  Thu Jan 05 20:12:50 2017
|      98.158.177.98  Thu Jan 05 20:12:50 2017
|      98.158.177.98  Thu Jan 05 20:13:09 2017
|      98.158.177.98  Thu Jan 05 20:13:09 2017

3.
正如版主說的: "如果在非 debug mode 也有这些 log,我们可以添加上去"

所以我還是安全起見:
在 dovecot.iredmail.conf
再加入原先修正的條件
(pam|passwd-file|ldap)\(\S*,<HOST>(\)|\S*\)): (invalid credentials|unknown user|Login attempt with empty password)\s*$.

再次感謝版主回覆 ; 此po 文可關掉了.

PS: 剛再查了一下 ;在關掉 dovecot debug mode 後仍有如下log

#  grep '176.123.1.251' /var/log/dovecot.log

Jan 13 02:29:04 auth: Info: ldap(mail@mydomain.com,176.123.1.251): unknown user
Jan 13 02:29:04 auth: Info: ldap(a@mydomain.com,176.123.1.251): unknown user
Jan 13 02:29:04 auth: Info: ldap(mail.mydomain.com@mydomain,176.123.1.251): unknown user
13 02:29:04 auth: Info: ldap(mydomain.com@mydomain.com,176.123.1.251): unknown user
Jan 13 02:29:04 auth: Info: ldap(mydomain@mysomain.com,176.123.1.251): unknown user

fail2ban-regex -v /var/log/dovecot.log /etc/fail2ban/filter.d/dov-ired.conf

|      98.158.177.98  Sat Jan 07 00:13:22 2017
|      98.158.177.98  Sat Jan 07 00:13:40 2017
|      176.123.1.251  Fri Jan 13 02:29:04 2017
|      176.123.1.251  Fri Jan 13 02:29:04 2017
|      176.123.1.251  Fri Jan 13 02:29:04 2017
|      176.123.1.251  Fri Jan 13 02:29:04 2017
|      176.123.1.251  Fri Jan 13 02:29:04 2017

所以應該要啟用此參數. 在 postfix.iredmail.conf 一樣抓得到此IP .

回复: fail2ban 的 dovecot.iredmail.conf 未阻擋到該擋的IP

dovecot 在非 debug 模式应该不会记录 ldap(xxx): 才对,可否使用 logrotate 先将现有 log files 归零,然后再测试一次?

我刚才尝试用不存在的用户做 imap 和 smtp 验证,均无法得到 ldap(xxx) 这样的 log。

回复: fail2ban 的 dovecot.iredmail.conf 未阻擋到該擋的IP

ZhangHuangbin 写道:

dovecot 在非 debug 模式应该不会记录 ldap(xxx): 才对

是的, 我今查看dovecot.log 14,15,16  這三天確實沒 ldap 的log 出現 .
故可不用啟動此參數 .

感謝不厭其煩回覆. Thank's.