我家里有一个小型邮件服务器,并且有相当严格的过滤规则。我使用 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 (一些片段)。
简而言之:
在 jail.conf 中设置:
[postfix]
enabled = true
Run Code Online (Sandbox Code Playgroud)如果您使用的是 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)在 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)重启fail2ban并检查iptables -nvL是否添加了postfix和courier的链。注意:这是针对基于 Debian 的系统。检查 RH 或其他文件的路径。
更好的方法是仅使用 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 洪水 -看到这个。
| 归档时间: |
|
| 查看次数: |
41211 次 |
| 最近记录: |