本文最后更新于 2026-01-30,文章内容可能已经过时。

Ubuntu与RockyLinux采用截然不同的默认防火墙方案:Ubuntu使用UFW(Uncomplicated Firewall),作为iptables的简化前端,以“拒绝入站、允许出站”为默认策略,命令直观(如ufw allow ssh),规则自动持久化,适合个人用户及简单服务器场景;RockyLinux则采用firewalld,基于“区域(zones)+服务(services)”的动态模型,支持运行时无缝更新规则(需--permanent保存配置),更适合企业级复杂网络环境。二者均遵循最小权限安全原则,核心操作均需优先保障SSH访问以防锁服,并建议结合日志监控与定期规则审计,以构建稳健的系统边界防护。

一、Ubuntu防火墙:UFW (Uncomplicated Firewall)

1. 基本介绍

UFW是Ubuntu系统默认的防火墙管理工具,全称为"Uncomplicated Firewall"。它是iptables的前端工具,旨在简化复杂的iptables规则配置,提供更直观友好的命令行界面。

2. 主要特点

  • 简便易用:命令行语法直观,适合初学者
  • 默认策略:启用时默认阻止所有入站连接,允许所有出站连接
  • 灵活性高:可轻松添加、修改和删除规则
  • 日志记录:支持详细的日志记录功能
  • 图形界面支持:可通过GUFW提供图形化操作

3. 基本操作命令

安装与启用

# 确认安装(通常已预装)
sudo apt update
sudo apt install ufw

# 启用防火墙并设置开机自启
sudo ufw enable

# 关闭防火墙
sudo ufw disable

状态查看

# 基本状态
sudo ufw status

# 详细状态(含规则编号)
sudo ufw status verbose
sudo ufw status numbered

# 查看默认策略
sudo ufw show default

规则管理

# 允许特定服务/端口
sudo ufw allow ssh          # 允许SSH(22端口)
sudo ufw allow 80/tcp       # 允许HTTP(80端口)
sudo ufw allow 443/tcp      # 允许HTTPS(443端口)

# 拒绝特定服务/端口
sudo ufw deny smtp          # 拒绝SMTP服务
sudo ufw deny 25/tcp        # 拒绝25端口

# 允许/拒绝特定IP
sudo ufw allow from 192.168.1.100    # 允许特定IP访问所有端口
sudo ufw deny from 192.168.1.101     # 拒绝特定IP访问

# 删除规则
sudo ufw delete allow ssh            # 删除允许SSH的规则
sudo ufw delete 3                    # 删除编号为3的规则

# 重置所有规则
sudo ufw reset

高级配置

# 设置默认策略
sudo ufw default deny incoming       # 默认拒绝所有入站连接
sudo ufw default allow outgoing      # 默认允许所有出站连接

# 日志管理
sudo ufw logging on                  # 启用日志记录
sudo ufw logging off                 # 禁用日志记录

# 查看日志
sudo less /var/log/ufw.log

图形界面操作(GUFW)

# 安装GUFW
sudo apt install gufw

# 安装后在应用菜单中打开"防火墙配置"

二、RockyLinux防火墙:firewalld

1. 基本介绍

RockyLinux默认使用firewalld作为防火墙管理工具。它是一个动态守护进程,使用zones(区域)和services(服务)的概念来简化网络流量管理,底层仍基于netfilter框架。

2. 主要特点

  • 动态更新:支持在不中断现有连接的情况下更新规则
  • 区域概念:通过zones定义不同信任级别的网络环境
  • 服务概念:预定义常见服务(如http、https、ssh),简化配置
  • 多种接口:提供命令行(firewall-cmd)和图形界面工具
  • 持久化配置:支持临时和永久规则配置

3. 基本操作命令

状态查看

# 查看防火墙基本状态
sudo firewall-cmd --state

# 查看详细状态(包括区域、服务、端口等)
sudo firewall-cmd --list-all

# 使用systemctl查看服务状态(推荐)
sudo systemctl status firewalld

防火墙启停

# 启动防火墙
sudo systemctl start firewalld

# 停止防火墙(临时,重启后恢复)
sudo systemctl stop firewalld

# 永久关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask firewalld  # 防止其他服务激活firewalld

# 设置开机自启
sudo systemctl enable firewalld

服务管理

# 允许特定服务(永久)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# 移除服务
sudo firewall-cmd --permanent --remove-service=http

# 重载配置使更改生效
sudo firewall-cmd --reload

端口管理

# 开放单个端口(永久)
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

# 开放多个端口
sudo firewall-cmd --zone=public --add-port=80/tcp --add-port=443/tcp --permanent

# 开放端口范围
sudo firewall-cmd --zone=public --add-port=8000-8010/tcp --permanent

# 移除端口
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent

# 查看已开放端口
sudo firewall-cmd --list-ports

# 重载配置
sudo firewall-cmd --reload

区域管理

# 查看当前活动区域
sudo firewall-cmd --get-active-zones

# 查看所有可用区域
sudo firewall-cmd --get-zones

# 查看特定区域配置
sudo firewall-cmd --zone=public --list-all

三、两种防火墙对比

特性Ubuntu (UFW)RockyLinux (firewalld)
底层技术iptables前端netfilter框架(支持iptables/nftables)
配置方式简单命令行zones和services概念
动态更新需要重载规则支持动态更新不中断连接
默认策略拒绝入站,允许出站基于区域的信任级别
图形界面GUFW(需单独安装)firewall-config(通常预装)
规则持久化自动保存需添加--permanent参数
适用场景个人电脑、简单服务器企业级服务器、复杂网络环境

四、实际应用场景示例

Ubuntu服务器安全加固

# 1. 启用防火墙并设置默认策略
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 2. 仅允许必要服务
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

# 3. 查看配置
sudo ufw status verbose

RockyLinux服务器安全加固

# 1. 确保防火墙运行
sudo systemctl enable --now firewalld

# 2. 仅允许必要服务
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# 3. 重载配置
sudo firewall-cmd --reload

# 4. 验证配置
sudo firewall-cmd --list-all

五、最佳实践建议

  1. 配置前先允许SSH访问:在远程服务器上操作防火墙前,确保已允许SSH端口,避免被锁在系统外
  2. 使用永久规则:对于需要重启后保留的规则,记得添加--permanent参数(RockyLinux)或直接使用UFW(规则自动持久化)
  3. 定期审查规则:定期检查防火墙规则,移除不再需要的规则
  4. 启用日志记录:开启防火墙日志以便监控和故障排查
  5. 最小权限原则:只开放必要的端口和服务,遵循安全最佳实践

通过以上介绍,可以根据自己的操作系统选择合适的防火墙工具,并进行有效的安全配置。