| 端口 | 操作 | 来源 | |
|---|---|---|---|
22/tcp |
ALLOW | Anywhere | |
80/tcp |
ALLOW | Anywhere | |
443/tcp |
ALLOW | Anywhere | |
8083/tcp |
ALLOW | Anywhere | |
3306/tcp |
DENY | Anywhere | |
25/tcp |
DENY | Anywhere |
UFW 之所以存在,是因为裸 iptables 的语法不容一点差错,而这件事它做得不错。它没做到的,是让一套规则在几个月后依然容易复核——当 ufw status numbered 返回三十行,而你正试图弄清其中哪些还有用的时候。
这一页展示的是同样那些规则,但把入站与出站的默认策略放在最前面,因为被忘掉的恰恰就是它们。若入站的默认策略仍停在 allow,一套看上去很严的规则就什么也不意味着。规则连同动作、端口、协议和来源一起显示,IPv6 条目挨着对应的 IPv4 条目排列,而不是把列表拉长一倍。
值得去找的错误有:为一次测试而开、之后再没关上的端口;本来 localhost 就够用却在所有接口上监听的服务;以及在一个地址足矣之处放行整个子网的规则。开放端口那一页展示画面的另一半:这些规则背后究竟有什么在监听。
这两幅画面值得定期对照,因为它们是悄悄岔开的。一条规则可能挡的是根本没人监听的端口,那它不过是规则集里的累赘;反过来也有:某个服务正在所有网卡上监听,而它前面那条规则你一直以为是关着的。这个问题的老答案是 netstat,它至今仍然正确,只是每次都得用眼睛把输出重看一遍。