Linux防火墙设置指南 | AI生成和翻译

Home 2025.10

好问题——在 Linux 系统(如 Red HatUbuntu)中设置防火墙主要涉及使用 firewalldufw,具体取决于你的系统。以下是为两种系统系列准备的清晰指南,方便你选择合适的方法。


🔹 在 Red Hat / CentOS / Fedora 系统上(使用 firewalld)

1. 检查 firewalld 是否已安装并运行

sudo systemctl status firewalld

如果未运行:

sudo systemctl enable firewalld
sudo systemctl start firewalld

2. 基本用法

检查活动区域(区域将接口和规则分组):

sudo firewall-cmd --get-active-zones

列出当前区域的所有规则:

sudo firewall-cmd --list-all

3. 允许或阻止端口/服务

允许一个端口(例如 SSH 端口 22):

sudo firewall-cmd --permanent --add-port=22/tcp

允许一个已知服务(例如 HTTP):

sudo firewall-cmd --permanent --add-service=http

阻止/移除一个服务:

sudo firewall-cmd --permanent --remove-service=http

重新加载以应用更改:

sudo firewall-cmd --reload

4. 验证规则

sudo firewall-cmd --list-all

🔹 在 Ubuntu / Debian 系统上(使用 ufw)

Ubuntu 自带 UFW(简单防火墙),更易于管理。

1. 启用 UFW

sudo ufw enable

2. 允许/拒绝端口或服务

允许 SSH:

sudo ufw allow ssh

允许 HTTP(端口 80):

sudo ufw allow 80/tcp

允许特定端口范围:

sudo ufw allow 1000:2000/tcp

拒绝一个服务:

sudo ufw deny 23/tcp

3. 检查状态

sudo ufw status verbose

4. 如需重置规则

sudo ufw reset

🔹 两种系统通用方法

阻止所有传入流量,仅允许少数例外,你可以:

  1. 默认拒绝所有传入流量

    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    

    (对于 firewalld,可使用区域或丢弃区域实现类似行为)

  2. 然后有选择地允许端口(例如 22、80、443)。


🔹 安全提示

在远程启用或更改防火墙规则之前,务必先允许 SSH——否则可能会将自己锁在系统外。


需要我展示一个最小化防火墙设置示例吗(例如,针对典型 Web 服务器,仅允许 SSH + HTTP + HTTPS)?


Back

openai/gpt-5

Donate