Ubuntu防火墙的注意事项

发现Ubuntu服务器被暴力连接

Dec  4 12:34:24 9238588565e3 postfix/smtpd[4474]: warning: unknown[45.142.120.138]: SASL LOGIN authentication failed: authentication failure
Dec  4 12:34:24 9238588565e3 postfix/smtpd[4469]: warning: unknown[45.142.120.138]: SASL LOGIN authentication failed: authentication failure
Dec  4 12:34:24 9238588565e3 postfix/smtpd[4469]: disconnect from unknown[45.142.120.138]
......

反正有很多。。。我很无奈!

为此我设置了端口禁用和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

查找如下所示的行:

# End required lines

添加规则来拦截黑客或垃圾信息传播者:

# Block spammers
-A ufw-before-input -s A.B.C.D -j DROP

保存并关闭文件。最后,让防火墙重新加载配置信息:

ufw reload

这样折腾一圈,果然生效了。不过不理解这ufw的设计逻辑,也许有其他需求会这样,但对于大多数简单的拦截ip等应用环境,这个逻辑更像一个bug。

原来如此,所以为了防止此事件再次发生,这里注意先禁用IP,再禁用端口,最后开放IP和端口。


Ubuntu防火墙的注意事项
https://blog.cikaros.top/doc/c7be4c2f.html
作者
Cikaros
发布于
2020年12月4日
许可协议