当我第一次初始化我的 ufw 时,我做了
ufw default allow outgoing
ufw default deny incoming
ufw allow 80/tcp
ufw allow 22/tcp
在过去一周左右的时间里,我一直在检查我的访问日志,并禁止那些在我的服务器上发出恶意请求的 IP
我会这样做
ufw deny from <ip>
这是我的ufw status verbose
此处粘贴的所有 IP 均来自恶意垃圾邮件发送者;不要怜悯他们
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
80/tcp ALLOW IN Anywhere
22/tcp ALLOW IN Anywhere
Anywhere DENY IN 125.39.22.154
Anywhere DENY IN 222.124.200.250
Anywhere DENY IN 101.60.178.197
Anywhere DENY IN 115.184.115.200
Anywhere DENY IN 93.174.93.129
... more ips ...
80/tcp (v6) ALLOW IN Anywhere (v6)
22/tcp (v6) ALLOW IN Anywhere (v6)
问题
我注意到的是,ALLOW
行动先于DENY
行动。
规则的顺序真的重要吗?或者我可以安心地知道我的 IP 阻止已经起作用了?
grep
附带问题:除了手动添加恶意请求的访问/错误日志并阻止这些 IP 发出未来请求之外,有没有更有效的方法来处理垃圾请求?
答案1
规则的顺序真的重要吗?
是的。应该先拒绝在这种情况下因为它们更具体(更具体的规则应该先行)。 例子
有没有比手动处理垃圾请求更有效的方法
fail2ban 可以扫描日志,并将 IP 添加到符合定义模式的多种类型的过滤系统中。
答案2
您可以指示 ufw 在给定位置插入规则:
ufw insert 1 deny from <ip> to any
这会将拒绝规则插入到第一个位置而不是最后一个位置。