Ubuntu防火墙的注意事项
发现Ubuntu服务器被暴力连接
反正有很多。。。我很无奈!
为此我设置了端口禁用和ip禁用但都没效果!
通过网上查找资料发现,原来ufw的规则是从上往下匹配的,只要在这之前有一个匹配规则,就会结束向下匹配!资料如下:
Ubuntu防火墙ufw不生效的bug?
作者: wingwy 发表于:2020年02月18日
服务器老是有ip不停尝试连接,看了下没造成大问题也没管他。今天偶然发现某个ip疯狂连接,想想还是把他封了算了。以前用Ubuntu和Debian系的iptables用起来不是很方便,现在正好是试一下新的ufw。
系统ubuntu 18.04,ufw禁止ip A.B.C.D的访问
ufw deny from A.B.C.D to any
结果监控里面A.B.C.D的ip还是在大量连接。
然后ufw status 看了下状态,规则生效了啊,甚至重新reload也没用,怎么回事呢?
上网一搜发现有类似的问题。比如 http://www.sohu.com/a/112544764_457968
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
查找如下所示的行:
保存并关闭文件。最后,让防火墙重新加载配置信息:
ufw reload
这样折腾一圈,果然生效了。不过不理解这ufw的设计逻辑,也许有其他需求会这样,但对于大多数简单的拦截ip等应用环境,这个逻辑更像一个bug。
原来如此,所以为了防止此事件再次发生,这里注意先禁用IP,再禁用端口,最后开放IP和端口。