今天晚上感觉机器突然变慢了,查了一下 access.log 发现有个从大陆四川来的 ip (125.66.125.201) 狂戳我的机器存取一个八百年前就删掉的档案。
所以我下了 ufw reject from 125.66.125.201 ,然后重新载入 ufw ,不过 HTTP 的 request 还是一直灌进来…
我只好再下 ufw status 把规则都打开来检查我刚刚下的 rule 有没有新增进去,结果发现
Status: active
To Action From
-- ------ ----
.............
80/tcp ALLOW Anywhere
Anywhere REJECT 125.66.125.201
原来是允许 TCP 80 的那条 rule 优先於阻挡的恶意 ip 的 rule ,所以手动调整一下顺序,把阻挡恶意 ip 的 rule 放到第一位:
sudo ufw insert 1 reject from 125.66.125.201
收工…
备?:有两种阻挡方式,分别是 reject 和 deny ,reject 就是直接忽略所有封包,至於 deny 则是会通知送出封包的人:「他的封包被拒绝了」,基本上直接 reject 就好了。
update: Sometimes it is desirable to let the sender know when traffic is being denied, rather than simply ignoring it. In these cases, use reject instead of deny. from ufw man page
这边我之前写错了,刚刚重新翻一下文件,应该是 reject 会让发送者知道被拒绝,而 deny 则是直接 drop 封包。在行?樯希 reject 会让 client 直接得到 “Connection refused” ,而 deny 则是会让程式一直等到 timeout 。