在邮件服务器上使用 postfix 或 fail2ban 阻止 tor 流量

在邮件服务器上使用 postfix 或 fail2ban 阻止 tor 流量

我正在运行带有 postfix/dovecot 的 Ubuntu 20.04 Lemp 服务器。我已设置 fail2ban,这样如果同一 ip 地址两次尝试登录我的电子邮件但均未成功,fail2ban 就会禁止该 ip 访问我服务器上的任何内容。但是,在我的 postfix 日志中,我注意到 tor 流量正在尝试访问我的电子邮件服务器。问题在于,由于 tor ip 不断变化,fail2ban 无法检测到相同 IP 猜测密码,即使很可能是同一用户使用 tor 进行连接尝试。我想知道是否有办法使用 fail2ban 阻止 tor 流量,或者将其从我的 LEMP 服务器完全阻止,这样就没有 tor 流量可以尝试连接到我的电子邮件服务器。

答案1

通常,您可以使用 fail2ban 根据在您自己的日志文件中发现的滥用模式生成 IP 阻止列表。

您的用例不同,因此我不会使用 fail2ban。

TOR 网络在此处提供了当前 TOR 出口节点的现成列表https://check.torproject.org/torbulkexitlist

只需定期下载并刷新该列表,并将其用作单独的 IP 阻止列表的输入,作为单独的 iptables 规则。

 wget https://check.torproject.org/torbulkexitlist

使用这样的唯一 IP 列表来制定和维护 iptables 规则的最有效方式是使用ipset

 ipset create blacklist-tor     hash:ip hashsize 65536

 ipset create blacklist-tor-tmp hash:ip hashsize 65536

添加 IP 时使用临时 IP 集

 ipset flush  blacklist-tor-tmp

 for TOR_IP in $(cat torbulkexitlist) ;  do ipset add blacklist-tor-tmp $TOR_IP) ; done 

使用以下函数原子地激活最新 IP 列表ipset swap::

 ipset swap blacklist-tor-tmp blacklist-tor 

然后创建/添加一条规则,检查 IP 集中是否存在 TOR 出口节点,并彻底阻止这些节点:

 iptables -I INPUT_direct -p tcp -m multiport --dports 25,587,110,995,143,993 -m set --match-set blacklist-tor  src -j REJECT --reject-with icmp-port-unreachable

相关内容