如何在 Ubuntu 上设置防火墙

在 Ubuntu 上设置防火墙对于通过控制网络流量来保护服务器至关重要。Ubuntu 使用 `ufw`(Uncomplicated Firewall)作为管理 `iptables` 的用户友好前端。本指南将引导您完成配置 UFW 的基本步骤。

Beginner

在 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 服务器上设置和管理防火墙,从而显著提高其安全性。