我在 Centos 6 服务器中使用了 fail2ban/iptables。
我搬到了 Centos 7,现在我正在使用 fail2ban/firewallD(由 Webmin/Virtualmin 安装,默认设置)
这些是 仅显示 的cat /var/log/maillog | grep "disconnect from unknown"
屏幕截图
cat /var/log/fail2ban.log | grep Ban
2019-10-27 16:52:22,975 fail2ban.actions [8792]:通知 [proftpd] Ban 111.225.204.32
此外tailf /var/log/fail2ban.log
显示多个“已被禁止”的同一 IP。在这种情况下,fail2ban,在maxretry
达到后它会尝试禁止 IP。
这是我的配置(部分),我将它们保留为默认设置,但更改了bantimes。
监狱本地
[后缀]
enabled = true
端口 = smtp,465,submission
bantime = -1[postfix-sasl]
启用 = true
端口 = smtp,465,submission,imap3,imaps,pop3,pop3s
bantime = -1[dovecot]
启用 = true
端口 = pop3、pop3s、imap、imaps、submission、465、sieve
bantime = -1
监狱.conf
[默认]
findtime = 600
maxretry = 5
backend = auto
filter = %(__name__)s
port = 0:65535
banaction = iptables-multiport
banaction_allports = iptables-allports
action_ = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="% > (port)s", protocol="%(protocol)s", chain="%(chain)s"]
action = %(action_)s
jail.d/00-firewalld.conf
[默认]
banaction = firewallcmd-ipset
这些文件存在:action.d/firewallcmd-ipset.conf和filter.d/postfix.conf
firewall-cmd --direct --get-all-rules
ipv4 filter INPUT_direct 0 -p tcp -m multiport --dports ssh -m set --match-set fail2ban-default src -j REJECT --reject-with icmp-port-unreachable
ipv4 filter INPUT 0 -p tcp -m multiport - -dports ssh -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable
ipv4 filter INPUT 0 -p tcp -m multiport --dports 10000 -m set --match-set fail2ban-webmin-auth src -j REJECT --reject-with icmp-port-unreachable
ipv4 filter INPUT 0 -p tcp -m multiport --dports ssh,sftp -m set --match-set fail2ban-ssh-ddos src - j REJECT --reject-with icmp-port-unreachable
手动运行后
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='193.56.28.0/24' reject"
,
firewall-cmd --reload
此输出
停止。 tailf /var/log/fail2ban.log
我怎样才能让所有这些 IP 在它们达到maxretry
价值后被禁止?尽管服务重新启动或重新加载,它们会被永远禁止吗?
编辑 1:
从 fail2ban.log 与 action=firewalld-cmd ipset
从带有 action=iptables-allports 的 fail2ban.log
编辑2:
似乎(我猜)有些东西正在刷新配置(我猜它会是Webmin),因为过了一段时间我开始收到错误日志,failed to execute ban jail 'dovecot' action iptables-allports
所以我正在尝试这个:在actions.d中创建banning.conf
[Definition]
actionban = /usr/bin/firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='<IP>' reject"; ; /usr/bin/firewall-cmd --reload
在 jail.local
[DEFAULT]
banaction = iptables-multiport
banning
但我Error in action definition banning
知道这不是解决方案。
在移动服务器之前,我多年来一直在使用 fail2ban/iptables(不是 firewalld),而无需注意默认设置。