禁止服务器向我的 postfix 服务器发送垃圾邮件的 fail2ban 配置示例?

chm*_*ike 4 postfix

我家里有一个小型邮件服务器,并且有相当严格的过滤规则。我使用 logwatch,可以看到 80% 到 90% 的连接被我的限制性过滤规则拒绝。大多数拒绝结果来自 rbl_client。

我正在拼命寻找一个 fail2ban 配置文件示例,该示例展示了如何过滤向我的服务器发送垃圾邮件的 IP。我希望禁令是长期的(即 1 个月)。

我还在我的邮件服务器上进行了 SYN 泛洪尝试,我使用手动设置的防火墙规则阻止了该尝试。fail2ban 也能检测到这些吗?

小智 6

我已经厌倦了所有填满我日志的 RBL 垃圾邮件发送者,所以我设置了我的 Postfix 来禁止它们。

这样做之后,负载下降了,因为它们很多!

请注意,您必须采用某种方式来清除禁用列表。

我计划每周重新启动fail2ban。

查看这些规则:http : //www.fail2ban.org/wiki/index.php/Postfix

将它们添加到:/etc/fail2ban/filter.d/postfix.conf(在 Debian 系统中!)

读这个也很好(搜索fail2ban):http ://workaround.org/ispmail/squeeze/sysadmin-niceties (一些片段)。

简而言之:

  1. 在 jail.conf 中设置:

    [postfix]
    enabled  = true
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果您使用的是 dovecot(来自上面的链接),那就太好了:创建 /etc/fail2ban/filter.d/dovecot-pop3imap.conf 并添加到其中:

    [Definition]
    failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \   (auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
    ignoreregex =
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在 jail.conf 或 jail.local 中添加部分:

    [dovecot-pop3imap]
    enabled = true
    port = pop3,pop3s,imap,imaps
    filter = dovecot-pop3imap
    logpath = /var/log/mail.log
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重启fail2ban并检查iptables -nvL是否添加了postfix和courier的链。注意:这是针对基于 Debian 的系统。检查 RH 或其他文件的路径。


B. *_*hea 5

更好的方法是仅使用 Postfix 使用阻止列表过滤 IP。

请参阅http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions以拒绝使用阻止列表。

如果你真的想,你可以使用像 f2b-postfix-rbl ( postfix-rbl.conf ) 这样过滤器来过滤邮件日志中的阻止列表/黑名单 IP 条目。然后它会在 iptables 中插入一个新条目,它会在给定的禁止时间内被阻止。

如前所述,这可能不会有太大作用,因为脚本/机器人/邮件程序会在第一次失败后继续前进,并在不同的一天使用不同的 IP 再次尝试。此外,它是多余的,因为您可以使用上面提到的 MTA 进行过滤。

这是您可以在 postfix 下添加以阻止列入黑名单的 IP 的一些阻止列表示例。

/etc/main.cf:

smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    reject_unlisted_recipient,
    reject_invalid_hostname,
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_unknown_sender_domain,
    reject_unauth_pipelining,
    check_client_access hash:/etc/postfix/blacklist,
#Some DNS BL's - high availability:
    reject_rbl_client zen.spamhaus.org,
    reject_rbl_client bl.spamcop.net,
    reject_rbl_client dul.dnsbl.sorbs.net,
#Some country-wide IP blocks:
    #reject_rbl_client cn.countries.nerd.dk,
    #reject_rbl_client tw.countries.nerd.dk,
    #reject_rbl_client lr.countries.nerd.dk,
    #reject_rbl_client ng.countries.nerd.dk,
    #reject_rbl_client ro.countries.nerd.dk,
    #reject_rbl_client ua.countries.nerd.dk,
    #reject_rbl_client kr.countries.nerd.dk,
    #finalize and throw at postgrey if passes above:
    #check_policy_service inet:[::1]:10023,
    permit
Run Code Online (Sandbox Code Playgroud)

如果您坚持使用 fail2ban 处理阻止列表,请确保在 /etc/failban/jail.local 下启用它:

[postfix-rbl]

enabled  = true
port     = smtp,465,submission
filter   = postfix-rbl
logpath  = /var/log/mail.log
Run Code Online (Sandbox Code Playgroud)

要在较新版本下使用 rbl "mode",请将过滤器行替换为:

filter    = postfix[mode=rbl]
Run Code Online (Sandbox Code Playgroud)

在早期版本中,我不得不更改我的以检测“554 5.7.1”以通过“postifx-rbl”过滤器接收后缀日志拒绝。较新版本的过滤器似乎会扫描此更改在较新的 rbl“模式”版本下。

至于 SYN 洪水 -看到这个