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

pal*_*rse 7 rate-limiting firewalld

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

作为参考,这里是我们使用的iptables中的基本配置(有些值不同)

/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
Run Code Online (Sandbox Code Playgroud)

Fed*_*rra 10

尝试:

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
Run Code Online (Sandbox Code Playgroud)

完整示例:RHEL7:如何减轻 HTTP 攻击。

关于日志拒绝包 FirewallD 根本不支持旧的 iptables-service 所做的相同级别的日志记录。见https://lists.fedorahosted.org/pipermail/firewalld-users/2014-February/000155.html

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

  • @glyph 你为什么这么认为? (2认同)

daw*_*wud 3

您可以使用轻量级 IPS,例如fail2ban.

firewalld使用操作插件 ( /etc/fail2ban/action.d/firewallcmd-ipset.conf) 一起使用,该插件将禁止的 IP 添加到ipset使用直接规则中。

默认值banaction( /etc/fail2ban/jail.conf) 是,但您可以使用不同的名称ipables-multiport为自定义监狱创建 local.conf 。[sshd-ddos]banaction

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