让我们配置 Fail2Ban,此服务允许您保护服务器免受泛滥、猜测服务密码。 每天有成千上万的第三方服务访问服务器,其中一些是恶意的。 在 Fail2Ban 的帮助下,我们将在多次授权尝试失败后阻止 ip 地址。
本指南假定您已经配置了邮件服务器本身,并且您需要安装防止密码猜测和其他不需要的网络活动的保护。 可以在此处找到有关设置邮件服务器的更多信息:
您还可以订购带有预配置操作系统的 VPS,并以 VPS 服务器的价格获得现成的公司邮件服务器。
1. 安装 Fail2Ban 服务
apt install fail2ban
让我们编辑设置
vi /etc/fail2ban/jail.d/defaults-debian.conf
[sshd]
enabled = true
[postfix]
enabled = true filter = postfix port = smtp,465,submission,imap,imaps,pop3,pop3s action = iptables[name=Postfix, port=smtp, protocol=tcp] logpath = /var/log/mail.log bantime = 120m maxretry = 3 findtime = 60m
在此配置中,我们启用了 ssh 和 postfix 服务的保护,它们将处理日志文件并在多次授权尝试失败时阻止 ip 地址。
要检查匹配是否有效,请使用命令
fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/postfix.conf
我们使用了一个现成的默认过滤器,在我们的例子中它立即证明是有效的。
2. 服务开始
systemctl enable --now fail2ban
我们启动了该服务并将其添加到自动启动。
现在您可以查看日志:
more /var/log/fail2ban.log
3. 服务管理
要查看状态以及最新活动,请使用命令
fail2ban-client status - 它将显示所有监狱及其状态。
fail2ban-client status postfix - 将显示监狱活动,包括当前被阻止的 ip 地址。
要取消阻止 ip 地址,请使用命令
fail2ban-client set postfix unbanip xxx.xxx.xxx.xxx
其中:postfix是jail的名字,xxx.xxx.xxx.xxx是列表中的ip地址 #fail2ban-client status postfix
4. 为 Rouncube 授权添加监狱
添加到文件
vi /etc/fail2ban/jail.d/defaults-debian.conf
[roundcube-auth]
enabled = true
filter = roundcube-authport = http,https
action = iptables[name=Roundcube-auth, port=http, protocol=tcp]logpath = /usr/share/nginx/html/webmail/logs/errors.log
bantime = 120mmaxretry = 3
findtime = 60m
在 3 次 Web 邮件授权尝试失败后,我们将阻止访问 2 小时。
让我们重新启动服务:
service fail2ban restart
过滤器设置完成。