UFW 防火墙:三条命令就够用

VPS 刚开通第一件事:把防火墙立起来。小够教你三条 UFW 命令锁死入口,只留 SSH 和网站端口,附锁死自救方法,新手照着抄就行。

我是小够,只推够用的 VPS,安全配置也一样:够用就行,别整复杂。

VPS 刚开通那一刻,所有端口默认都是开着的,等于大门敞开等人进。公网上每天都有批量扫描的机器在撞 SSH 弱密码,你的机器上线几分钟就会被扫到,运气不好当天就有人尝试登录。第一件事不是装面板、不是建站,是把防火墙立起来,两分钟的事,别拖。

Ubuntu / Debian 自带 UFW(Uncomplicated Firewall),名字就点明了定位:不折腾。三条命令,够用了。

先确认 UFW 装了没

有些精简系统镜像为了瘦身没预装 UFW,先查一下:

sudo ufw status

如果提示找不到命令,装一个:

sudo apt update && sudo apt install ufw -y

另外确认 UFW 管不管 IPv6:看一眼 /etc/ufw/ufw.conf 里 IPV6=yes 是不是 yes。现在很多商家默认给 IPv6 地址,防火墙只管 v4 不管 v6,等于后门大开,确认一下不吃亏。

第一条:默认拒绝所有入站

sudo ufw default deny incoming

意思是:没有明确放行的端口,一律不让进。出站不受影响,你的机器照常上网、照常拉系统更新、照常请求 API。这条是地基,先立规矩,再开例外。

第二条:先放行 SSH(顺序是命)

sudo ufw allow ssh

如果你改过 SSH 端口,比如改成了 2222,那就放行对应的端口:

sudo ufw allow 2222/tcp

注意,这条必须在启用防火墙之前跑。顺序反了,你自己就被锁在门外,只能去商家后台找 VNC 控制台救场,那滋味不好受。每次改防火墙规则前,先默念一遍:SSH 放行了没有。

第三条:启用

sudo ufw enable

会弹个提示问你确认,输入 y 回车。从这一刻起,防火墙开始干活。三条跑完,查一下状态确认:

sudo ufw status verbose

看到 Status 是 active,SSH 那行是 ALLOW IN,默认策略是 DENY incoming,这就对了。

建站要用的 80 和 443

防火墙立起来之后,网站端口也要放行,不然访客打不开你的站:

sudo ufw allow 80,443/tcp

以后某个服务不用了,规则删掉,别留着:

sudo ufw delete allow 80

UFW 的规则是即时生效的,增删不用重启服务,改完立刻查一下 status 确认。

进阶一点:只让自己的 IP 连 SSH

如果你是固定 IP 上网(比如家里宽带 IP 很少变),可以把 SSH 收得更紧,只允许这一个 IP 连:

sudo ufw allow from 你的IP to any port 22

这样全网扫描连敲门的机会都没有。但前提是你的 IP 真的固定,经常变的就别用这招,不然又得去 VNC 救自己。动态 IP 的老实开着 22 端口,配合密钥登录和 2FA(另一篇细说商家后台的 2FA),也够用。

常用命令速查(收藏这段就行)

sudo ufw status verbose   # 看状态和规则
sudo ufw allow 443/tcp    # 放行单个端口
sudo ufw allow 8000:9000/tcp  # 放行一段端口
sudo ufw deny 23           # 明确拒绝(比如 Telnet 这种老古董)
sudo ufw delete allow 443  # 删除规则
sudo ufw reset            # 全部清空重来(小心用)

reset 是核按钮,点了所有规则清空、防火墙关闭,适合被自己的一堆规则绕晕的时候推倒重来。重来之后记得把前面三条命令再跑一遍。

万一把自己锁在门外了怎么办

别慌,有救。去商家后台找 VNC / 网页控制台(买机器前就确认好它在哪),从控制台登录进去,先把防火墙关掉:

sudo ufw disable

然后重新检查规则,确认 SSH 放行了再 sudo ufw enable。预防比抢救重要:以后改防火墙规则,养成习惯先开两个 SSH 会话,一个用来改,一个保持连接不动。改完在新会话里测试能连上,再关旧的。两个会话都断了,才轮到 VNC 救场。

想再看紧一点,可以打开 UFW 的日志,看看每天有多少扫描在敲门:

sudo ufw logging on

日志在 /var/log/ufw.log。看一次你就明白,为什么第一件事是立防火墙。看完记得关掉(sudo ufw logging off),不然日志涨得飞快,几十个 G 的小硬盘吃不消。

小够的唠叨

  1. 云厂商的安全组是另一层:安全组是机房大门,UFW 是你家房门,两道都设上最稳,别以为开了一个另一个就不用管。
  2. 别手痒加一堆花里胡哨的规则:够用就行,规则越多越容易把自己坑了,也越难排查问题。
  3. 改 SSH 端口不是必须的:改了能少挨点扫描,但改完记得同步放行。真正防暴力破解靠的是密钥登录和强密码,不是换个端口。
  4. 折腾前先确认有救生索:在商家后台找到 VNC / 网页控制台入口,确认能用。这是你把自己锁外面之后的唯一退路。
  5. 重装系统后记得重来一遍:UFW 规则不跟着快照走(除非你备份了),重装完第一件事还是这三条命令。
  6. 定期看一眼规则表:装多了软件,规则会越积越多。半年 status 看一次,删掉早就不用的端口,防火墙越干净越安全。

另外提一句:UFW 只是系统层面的防火墙,前面说的云厂商安全组是机房层面,两层都配好才算完整。顺序上建议先配 UFW 再去看安全组,系统层面的规则跟着机器走,换商家、换 IP 都不受影响,迁移时最省心。

防火墙是 VPS 的第一道门,三条命令两分钟搞定。下一道门是商家后台的账号安全,2FA 那篇接着说。