使用 fail2ban 只允许特定的 ip 连接到邮件帐户

问题描述

我们希望仅从特定 IP 地址访问我们服务器(postfix 和 dovecot)上的特定邮件地址。我的想法是为此使用fail2ban。

过滤器会是什么样子的?

解决方法

允许访问我们服务器上的特定邮件地址(postfix 和 dovecot)

为什么需要fail2ban?

编写简单的脚本 (systemd-unit) 创建一个规则或新链,允许预期的 IP 并为此邮件端口添加拒绝/丢弃默认策略, 并在启动时启动它,例如:

chain=INPUT
for p in smtp smtps pop3 pop3s imap imaps; do   
  for ip in 192.0.2.1 192.0.2.2 192.0.2.3; do
    iptables -A $chain -i $device -m state --state NEW -p tcp --dport "$p" -s "$ip" -j ACCEPT
  done
  iptables -A $chain -i $device -m state --state NEW -p tcp --dport "$p" -j REJECT
done

如果您需要一些动态许可(例如通过端口或 http-url-knowcking 等),您确实可以使用 fail2ban 做到这一点。

查看示例监狱 pass2allow-ftp 或相关的 RFE #1112

过滤器会是什么样子的?

过滤器的外观取决于将要监视的确切内容(例如,通过 url-knocking 您拥有的 http-server 访问日志格式,例如 nging 或 apache)或您需要监视的内容反应以允许 IP。在这种情况下,需要一个登录示例才能正确回答问题。

您也可以阅读 wiki :: Best practice # Reduce parasitic log traffic 为此类“监狱”提供合理的实现。