在 Ubuntu 上设置防火墙对于通过控制网络流量来保护服务器至关重要。Ubuntu 使用 ufw(Uncomplicated Firewall)作为管理 iptables 的用户友好前端。本指南将引导您完成配置 UFW 的基本步骤。
1. 检查 UFW 状态并在必要时安装
首先,检查您的系统上 UFW 是否已激活:
sudo ufw status verbose
如果未安装 UFW,您可以使用以下命令安装:
sudo apt update
sudo apt install ufw
2. 设置默认策略
最佳实践是默认拒绝所有传入连接并允许所有传出连接。这可确保只有显式允许的流量才能到达您的服务器。
sudo ufw default deny incoming
sudo ufw default allow outgoing
3. 允许基本连接(尤其是 SSH)
在启用防火墙之前,允许 SSH 连接至关重要,以避免将自己锁定在服务器之外,尤其是在远程连接时。
- 允许 SSH:
bash sudo ufw allow ssh # 或者,如果您使用自定义 SSH 端口(例如 2222): # sudo ufw allow 2222/tcp
4. 启用 UFW
一旦您确保 SSH 访问已允许,请启用防火墙:
sudo ufw enable
系统将提示您确认,因为启用防火墙可能会中断现有连接。输入 y 并按 ENTER。
5. 允许其他必要服务
允许您的服务器需要提供的任何其他服务的流量。
- HTTP (端口 80): 用于 Web 服务器。
bash sudo ufw allow http # 或者 sudo ufw allow 80/tcp - HTTPS (端口 443): 用于安全 Web 流量。
bash sudo ufw allow https # 或者 sudo ufw allow 443/tcp - 特定端口: 对于其他应用程序,允许它们的特定端口。例如,要允许端口 8080 上的流量:
bash sudo ufw allow 8080/tcp - 从特定 IP 地址允许: 要仅允许从受信任的 IP 地址访问:
bash sudo ufw allow from 203.0.113.100 to any port 22 proto tcp
6. 拒绝不必要的连接
虽然默认策略会拒绝传入流量,但如果您需要覆盖更广泛的规则,您可能需要显式拒绝特定端口或 IP。
- 拒绝特定端口:
bash sudo ufw deny 23/tcp
7. 检查状态和规则
在进行更改后,务必验证防火墙的状态和规则:
sudo ufw status verbose
此命令显示防火墙的状态、默认策略以及所有活动规则的列表。
8. 禁用或重置 UFW (可选)
- 禁用 UFW:
bash sudo ufw disable这将关闭防火墙,但保留您配置的规则。 - 重置 UFW 到其默认状态(禁用并删除所有规则):
bash sudo ufw reset系统将提示您确认此操作。
通过遵循这些步骤,您可以有效地在 Ubuntu 服务器上设置和管理防火墙,从而显著提高其安全性。