在我们的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中的示例。