UFW 是 Uncomplicated Firewall 的意思,可以看作是 Ubuntu 里面自带的一个 iptables 简化前端指令接口。

sudo ufw allow 22

上面这条命令最好在启用 UFW 前先加上,因为如果之前系统里没有允许 ssh 22 端口的话,直接启用 UFW,自己就被隔断了,再也进不去了。其实启用 UFW 时系统会有提示的,看到提示时就要小心了。

前些天晚上就是因为 reset UFW 时,忽视提示,结果把自己锁到外面了,最后费了好大劲才重新进入系统。

Block 一个具体的 IP 地址,下面两条其实是一样的,全部端口都禁的话,后面的 to any 可以省略掉:

sudo ufw insert 1 deny from <ip address>

sudo ufw insert 1 deny from <ip address> to any

为什么要加上 insert 1 呢?因为如果之前有相关的允许命令,如果不加序号,那么新加的命令是排在最底下的,而前面的允许命令起作用后,后面的禁用命令就不管了,所以相当于没设。所以,要加特别的、比较具体的命令时,要加到前面,就可以通过插入序号来使其排序。

如果要把上面刚加上的命令删除,可以运行:

sudo ufw delete deny from <ip address>

sudo ufw delete 1

不知道序号时,可以通过下面命令来查看序号,如果规则太多,可以配合 grep 或者 awk 等来查找

sudo ufw status numbered

这里只记录最最基础的几个命令,还有更多的命令可以参考 Ubuntu 官方网站:https://help.ubuntu.com/lts/serverguide/firewall.html.en