使用 iptables 阻止对 Apache https 站点的暴力攻击

使用 iptables 阻止对 Apache https 站点的暴力攻击

我有一个 TLS 站点 Apache,它使用基本身份验证来保护资源。

我正在尝试设置 iptables 规则来防止端口 443 上的暴力攻击,因此我在 bash 脚本中添加了以下 iptables 规则。

$IPTABLES -N SSL-Brute-Force
$IPTABLES -A INPUT -m tcp -p tcp --dport 443 -j SSL-Brute-Force
$IPTABLES -A SSL-Brute-Force -m state --state NEW -m recent --set --name SSL --rsource
$IPTABLES -A SSL-Brute-Force -m state --state NEW -m recent --update --seconds 600 --hitcount 5 --name SSL --rsource -j LOG --log-prefix "[SSL Brute Force] "
$IPTABLES -A SSL-Brute-Force -m state --state NEW -m recent --update --seconds 600 --hitcount 5 --name SSL --rsource -j DROP
$IPTABLES -A SSL-Brute-Force -j ACCEPT

现在我根本无法访问我的网站,也看不到发送到端口 443 的每个数据包都被丢弃在我的消息文件中。

我是否正确理解了这些规则?

答案1

否。将--update选项替换为--rcheck;外观更新已经发生--set。相同--update的数据包在通过规则时最多会导致三个更新。特别是,它可能DROP在没有匹配LOG规则的情况下很好地匹配规则,因为每一个都会增加命中计数。

更改为--rcheck应该会打开它,以便您每 10 分钟查看一个网页,其中包含一个样式表和三个图像。

值得注意的是,页面的每个单独组件(样式表、javascript、图像和框架)都会导致新的连接。因此,您可能还需要5根据网页的分解程度更改为更高的值。问题是用户在 600 秒内会浏览多少个页面,以及每个页面需要多少个连接。

相关内容