UFW(iptables)规则的匹配基于规则出现的顺序, 一旦匹配某个规则,检查便会停止。因此,如果某个规则允许访问TCP端口22(如使用udo ufw allow 22), 后面另一个规则指示拦截某个IP地址(如使用 ufw deny proto tcp from A.B.C.D to any port 22)。 最终,允许访问TCP端口22的规则会被使用,而后一个拦截黑客IP地址 A.B.C.D 却没有被使用。 这都是由于规则的顺序造成的。为避免这类问题, 你需要编辑 /etc/ufw/before.rules文件, 在“# End required lines”之后”Block an IP Address”添加规则。
所以 vi /etc/ufw/before.rules
查找如下所示的行:
# End required lines
添加规则来拦截黑客或垃圾信息传播者:
# Block spammers
-A ufw-before-input -s A.B.C.D -j DROP