![Firewalld - 阻止机器人和 Web 应用程序的渗透测试 (80 / 443)](https://linux22.com/image/115274/Firewalld%20-%20%E9%98%BB%E6%AD%A2%E6%9C%BA%E5%99%A8%E4%BA%BA%E5%92%8C%20Web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%20(80%20%2F%20443).png)
看起来好像正在针对部署在我的 centOS7 服务器上的 Web 应用程序运行渗透测试。如何阻止来自源 IP 地址 11.21.32.44 的端口 80 和 443 上的传入请求
我会使用操作系统防火墙阻止它,centOS7使用firewalld
读自Fedora 文档规则应该与此类似:
firewall-cmd --add-rich-rule="
rule family='ipv4'
source address='11.21.32.44'
port protocol='tcp' port='443' reject"
好吧,现在想得更好了,我想找到一种方法,在 N 个带有 404 httpd 响应的请求后自动阻止特定 IP 地址
答案1
如果是某个机器人,则应该安全地拒绝其所有连接尝试(无论目标端口是什么)。
为此,将其 IP 地址或范围添加到firewalld 阻止区域就足够了:
firewall-cmd --zone=block --add-source=203.0.113.208/29
whois $someip
您可以通过使用ipcalc -d
某些众所周知的不需要的机器人数据库查询一个记录的地址来确定范围。
当然,添加单个地址也是可能的。
您可能需要添加--permanent
以保留这些阻止。
请注意,firewalld 仅拒绝新连接,而不是已建立的连接,因此与您的 Web 服务器的已建立连接可能仍会填充您的日志。
要摆脱那些你可以用以下命令杀死它们ss
:
ss -K dst 203.0.113.208
(是的,你必须使用它dst
作为机器人的源地址)
自动化这一过程很棘手,因为涉及多种风险:
- 您增加了攻击面(这不是理论上的风险,您可能需要搜索过去的故障禁止 CVE和类似)
- 误报太多,即您的自动系统可能会过度阻止,即阻止合法访客/客户甚至您自己
- ...