以下是在 Ubuntu 22.04 上配置 ufw(Uncomplicated Firewall)防火墙的详细步骤:
1. 安装 UFW(如未预装)
sudo apt update
sudo apt install ufw
2. 启用 UFW
sudo ufw enable # 启用防火墙(默认禁用)
sudo ufw status # 查看状态和规则
3. 设置默认策略
拒绝所有传入流量,允许所有传出流量(推荐安全配置):
sudo ufw default deny incoming
sudo ufw default allow outgoing
4. 允许常用服务
SSH(远程登录)
sudo ufw allow ssh # 或指定端口:sudo ufw allow 22/tcp
⚠️ 警告:如果通过 SSH 远程操作,务必先允许 SSH 端口,否则可能失去连接!
HTTP/HTTPS
sudo ufw allow http # 80/tcp
sudo ufw allow https # 443/tcp
其他服务
MySQL:
sudo ufw allow 3306/tcp
自定义端口:
sudo ufw allow 8080/tcp # 允许 TCP 端口 8080
sudo ufw allow 53/udp # 允许 UDP 端口 53(如 DNS)
5. 高级规则配置
允许特定 IP 访问
sudo ufw allow from 192.168.1.100 # 允许该 IP 访问所有端口
sudo ufw allow from 192.168.1.0/24 to any port 22 # 允许子网访问 SSH
限制 IP 或端口范围
sudo ufw deny from 10.0.0.5 # 拒绝特定 IP
sudo ufw allow 3000:4000/tcp # 允许端口范围 3000-4000(TCP)
6. 删除规则
sudo ufw status numbered # 查看规则编号
sudo ufw delete [规则编号] # 根据编号删除规则
7. 禁用或重置防火墙
sudo ufw disable # 禁用防火墙
sudo ufw reset # 重置所有规则(需确认)
8. 查看日志
sudo ufw logging on # 启用日志
tail -f /var/log/ufw.log # 实时查看日志
9. 验证配置
sudo ufw status verbose # 查看详细规则
示例场景
允许 Web 服务器并限制 SSH 访问:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow from 192.168.1.0/24 to any port 22
sudo ufw deny 22/tcp # 阻止其他 IP 访问 SSH
注意事项
修改规则后无需重启服务,ufw 会自动应用。
使用 ufw 前确保 iptables 服务已停止(sudo systemctl stop iptables)。
测试规则时建议通过本地终端操作,避免因配置错误导致断网。
通过以上步骤,您可以灵活配置 Ubuntu 22.04 的防火墙以满足不同需求。