815 字
4 分钟
如何在 Ubuntu 18.04 上使用 UFW 设置防火墙
引言
在现代服务器管理中,防火墙是保障系统安全的第一道防线。虽然 iptables 功能强大且精细,但其复杂的语法常常让新手望而生畏。为了简化网络安全管理,Ubuntu 默认提供了 UFW (Uncomplicated Firewall)。
UFW 的设计初衷正如其名——“不复杂的防火墙”,它通过直观的命令帮助管理员轻松控制入站和出站流量。
先决条件
在开始配置之前,请确保:
- 你拥有一个具有
sudo权限的非 root 用户(推荐,以免误操作造成灾难)。 - 确认 UFW 已安装(Ubuntu 通常预装)。若未安装,请执行:
sudo apt update && sudo apt install ufw第一步:启用 IPv6 支持(可选但推荐)
现代服务器通常都分配有 IPv6 地址。为了确保 UFW 同时管理两套协议,请检查配置文件:
sudo nano /etc/default/ufw确保 IPV6=yes。保存退出后,后续配置的规则将同时应用于 IPv4 和 IPv6。
第二步:建立“白名单”防御策略
防火墙的最佳实践是:拒绝所有入站连接,允许所有出站连接。这样,只有你手动授权的服务才能被外界访问。
sudo ufw default deny incomingsudo ufw default allow outgoing第三步:关键!允许 SSH 连接
⚠️ 警告:在启用防火墙之前,必须先允许 SSH。否则一旦开启 UFW,你当前的远程会话会被立即切断,且无法再次登录!
- 默认 SSH 端口(22):
sudo ufw allow ssh- 非标准 SSH 端口(如 2222):
sudo ufw allow 2222/tcp第四步:启用与状态查看
确认 SSH 规则已添加后,开启防火墙:
sudo ufw enable你可以通过以下命令查看实时规则(包括端口的应用名称):
sudo ufw status verbose第五步:实战——允许常用服务
1. 使用应用配置 (App Profiles)
UFW 能够识别常见的软件协议。你可以查看当前系统支持的应用列表:
sudo ufw app list允许 HTTP 和 HTTPS:
sudo ufw allow "Nginx Full" # 如果你使用 Nginx# 或者直接使用端口名sudo ufw allow httpsudo ufw allow https2. 允许特定端口范围
如果你需要开放一个范围(例如某些集群服务):
sudo ufw allow 6000:6007/tcpsudo ufw allow 6000:6007/udp3. 允许特定 IP 地址
如果你只想让办公室的电脑访问服务器:
sudo ufw allow from 192.168.1.50第六步:规则管理与撤销
1. 拒绝特定连接
屏蔽恶意攻击者的 IP:
sudo ufw deny from 203.0.113.42. 删除规则(按编号操作)
这是最安全、最直观的删除方式。先列出带编号的规则:
sudo ufw status numbered假设你要删除第 2 条关于 80 端口的规则:
sudo ufw delete 2第七步:重置与禁用
如果配置混乱,想要从头再来:
- 重置所有规则:
sudo ufw reset(会删除所有规则并禁用 UFW)。 - 临时禁用:
sudo ufw disable。
总结
通过以上步骤,你已经为 Ubuntu 服务器搭建了一个坚实的逻辑屏障。 核心原则回顾:
- 先通 SSH:永远先允许 22 端口。
- 默认拒绝:只开启必须对外提供的服务端口。
- 定期检查:使用
status numbered定期审视规则。
如何在 Ubuntu 18.04 上使用 UFW 设置防火墙
https://sw.rscclub.website/posts/ubuntu1804ufa/