防火墙决定服务器上哪些端口接受外部连接。任何没有被明确开放的端口都应该关闭——这就是默认拒绝,它把你的攻击面缩小到你实际运行的那些服务。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
诚实的提醒
- 在
ufw enable之前先放行 SSH。 这是把人们锁在自己服务器之外的头号失误。万一发生,服务商控制台能让你回来——EQVPS 为每台 VPS 都提供浏览器控制台。 - 防火墙只是一层防护。 它控制哪些端口是开放的,而不是端口上发生了什么。把它和 SSH 密钥认证 以及 fail2ban 结合使用。
- 在 NAT 方案上,入站端口的工作方式不同——服务器本机的防火墙仍然有用,但只有独立 IP 方案才能接受任意入站连接。
下一步
防火墙加上密钥就完成了加固工作的大部分。用 新 VPS 安全清单 来收尾。要为 Web 应用开放 443?参见 如何配置带 HTTPS 的 nginx 反向代理。
评论
暂无评论。来做第一个吧。