有没有办法评估与firewalld连接尝试的限制?

在我们的CentOS 6服务器上,我使用了本文中的信息来减less我们的服务器上的蛮力ssh尝试,特别是速率限制/日志logging部分。 有没有办法在CentOS 7中使用firewalld来做同样的事情? 我宁愿避免切换回iptables,因为看起来firewalld是操作系统的发展方向。

作为参考,这里是我们使用的iptables的基本configuration(一些值是不同的)

/sbin/iptables -N LOGDROP /sbin/iptables -A LOGDROP -j LOG /sbin/iptables -A LOGDROP -j DROP iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j LOGDROP 

试试:

 firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT_direct 0 -p tcp --dport 22 -m state --state NEW -m recent --set firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT_direct 1 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 30 --hitcount 4 -j REJECT --reject-with tcp-reset firewall-cmd --reload 

一个完整的例子: RHEL7:如何缓解HTTP攻击。

关于日志拒绝软件包FirewallD根本不支持旧的iptables服务所做的相同级别的日志logging。 请参阅https://lists.fedorahosted.org/pipermail/firewalld-users/2014-February/000155.html

但可能有一个可行的解决方法: https : //bluehatrecord.wordpress.com/2014/04/17/logging-packet-drops-in-firewalld/

您可以使用像fail2ban这样的轻量级IPS。

它使用一个动作插件( /etc/fail2ban/action.d/firewallcmd-ipset.conf ),使用直接规则将禁止的IP添加到一个ipset

默认的banaction/etc/fail2ban/jail.conf )是ipables-multiport ,但是你可以使用不同的banaction为一个自定义的[sshd-ddos] jail创build一个local.conf。

检查fail2ban wiki和Fedora wiki中的示例。