EQVPS

如何在 VPS 上配置 UFW 防火墙

用 UFW 搭建一个简单有效的防火墙:先放行 SSH(这样才不会把自己锁在外面),只开放你需要的端口,然后启用它。几条命令就能得到一个干净的默认拒绝型防火墙。

防火墙决定服务器上哪些端口接受外部连接。任何没有被明确开放的端口都应该关闭——这就是默认拒绝,它把你的攻击面缩小到你实际运行的那些服务。UFW 让这件事变得很简单。唯一要做对的是顺序:在打开防火墙之前先放行 SSH,否则你会把自己锁在外面。

1. 安装 UFW(通常已经预装)

sudo apt update && sudo apt install -y ufw

2. 先放行 SSH——在做任何其他事情之前

这是防止被锁在外面的关键一步。请在 enable 之前完成:

sudo ufw allow OpenSSH
# or, if you use a custom SSH port:
# sudo ufw allow 22/tcp

3. 只开放你需要的端口

sudo ufw allow 80/tcp     # HTTP, if you serve a website
sudo ufw allow 443/tcp    # HTTPS
# add app-specific ports only as needed, e.g.:
# sudo ufw allow 51820/udp   # WireGuard VPN

4. 设置默认策略并启用

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable           # asks for confirmation

5. 验证

sudo ufw status verbose

你应该能看到 SSH 和你选择的端口处于允许状态,其余全部被拒绝。每次改动之后都检查一下。

常见操作

sudo ufw allow 3000/tcp        # open a port
sudo ufw delete allow 3000/tcp # close it again
sudo ufw status numbered       # list rules with numbers
sudo ufw delete 2              # delete rule #2
sudo ufw disable               # turn the firewall off

诚实的提醒

下一步

防火墙加上密钥就完成了加固工作的大部分。用 新 VPS 安全清单 来收尾。要为 Web 应用开放 443?参见 如何配置带 HTTPS 的 nginx 反向代理

常见问题

什么是 UFW?

UFW(Uncomplicated Firewall)是 Linux netfilter 防火墙的一个友好前端,是 Ubuntu 和 Debian 上的标配。你无需手写 iptables 规则,只需说“放行 443”之类的话,UFW 就会处理剩下的一切。这是搭建一个合理的默认拒绝型防火墙最快的方式。

为什么必须先放行 SSH 再启用 UFW?

因为一旦启用默认拒绝型防火墙,任何没有被明确放行的端口都会被拦截——包括 22 端口。如果你没有先放行 SSH 就启用 UFW,当前连接不会断开,但下一次登录会被拒绝,你就被锁在外面了。务必在 `ufw enable` 之前先运行 `ufw allow OpenSSH`(或 `ufw allow 22/tcp`)。

我应该开放哪些端口?

只开放你真正用到的端口。用于管理服务器的 SSH(22);如果你运行网站或反向代理则开放 80 和 443;再加上你的应用需要的具体端口。其余全部保持关闭。开放的端口越少,攻击面就越小。

UFW 能防住一切吗?

不能——它控制哪些端口接受连接,这是安全工作中重要的一部分,但它不会检查你已开放端口上的流量内容。请把它和 SSH 密钥、用于防暴力破解的 fail2ban,以及及时打补丁的软件搭配使用。防火墙只是一层防护,不是全部。

如何查看当前允许了哪些规则?

运行 `sudo ufw status verbose`。它会列出每一条生效的规则,以及 UFW 是否已启用。每次改动之后都检查一下,这样你就始终清楚哪些端口是开放的。

评论

暂无评论。来做第一个吧。

发表评论

评论在显示前会经过审核。