云服务器开机那一刻,公网上的自动扫描就开始了。每一个对外开着的端口,都是一次未授权探测和自动化漏洞利用的入口。控制网络流量,是加固一台联网机器的第一步。

iptables 和 nftables 功能强,但规则写起来绕。UFW(Uncomplicated Firewall,简化防火墙)把这件事压成几条命令,管理起来简单也可靠。下面这套流程,是在 Ubuntu 24.04 LTS 上配置 UFW 的完整路径。

第一步:先定默认策略

UFW 的行为由默认策略决定。常规做法是拒绝所有入站流量、放行所有出站流量:进来的连接默认不放行,本机主动发起的连接不受影响。策略定下来,后面每一条规则都是在默认拒绝的基础上开一个口子。

第二步:开 UFW 之前先放行 SSH

这是最容易翻车的一步。默认策略一旦生效,SSH 端口如果还没放行,远程连接会立刻断掉,人被锁在服务器外面。正确顺序是先允许 SSH,再启用 UFW。顺序反了,只能去控制台想办法。

第三步:按需打开 Web 服务端口

跑网站或接口的机器,需要放行 HTTP 的 80 端口和 HTTPS 的 443 端口。不需要对外提供 Web 服务的机器,这两个口子就没必要开。开端口这件事,原则是只开当前真正在用的。

第四步:把端口访问限制到指定 IP

有些服务不该对全网开放。UFW 支持把某条规则绑定到具体的静态 IP 地址上,只有来自这些地址的流量才能访问对应端口。管理后台、数据库这类入口,用这条规则收窄访问面,比直接对公网开放稳妥得多。

第五步:清理规则要按编号来

规则加多了会乱。UFW 可以列出带编号的规则清单,删除时按编号定位,确认删的是哪一条再动手。直接凭记忆改规则,很容易把还在用的那条一起删掉。

这五步串起来,就是一台 Ubuntu 24.04 LTS 机器从裸奔到有基本网络边界的过程:默认拒绝入站、先保 SSH 再启用、只开在用的服务端口、敏感入口限 IP、规则定期按编号清理。每一步都不复杂,但顺序和范围错了,代价是连接中断或者端口白开。