0

Linux防火墙ufw配置完整教程:从安装到实战的保姆级指南

2026.05.21 | youres | 12次围观

一、什么是 ufw?

ufw(Uncomplicated Firewall)是 iptables 的前端工具,旨在简化 Linux 防火墙的配置过程。与直接编写 iptables 规则相比,ufw 提供了更加直观和友好的命令行接口,即使是 Linux 新手也能快速上手。

ufw 的主要特点:

  • 命令简洁,易于记忆
  • 支持 IPv4 和 IPv6
  • 可以设置应用配置文件
  • 支持日志记录
  • 集成在 Ubuntu 等主流发行版中

二、安装 ufw

大多数 Ubuntu/Debian 系统已经预装了 ufw。如果没有安装,可以通过以下命令快速安装:

# Ubuntu/Debian 系统
sudo apt update
sudo apt install ufw -y

# 检查 ufw 状态
sudo ufw status

如果系统提示"未找到命令",说明 ufw 尚未安装,执行上述安装命令即可。

重要警告:对于远程连接的服务器,在安装完成后务必先配置 SSH 允许规则,再启用 ufw,否则会被锁机无法远程连接。

三、ufw 基础操作

3.1 查看防火墙状态

# 简洁查看(显示状态和核心规则)
sudo ufw status

# 详细查看(显示规则、端口、协议、来源IP、默认策略)
sudo ufw status verbose

# 编号查看(方便后续删除规则)
sudo ufw status numbered

3.2 启用/禁用防火墙

# 启用防火墙(默认策略:拒绝入站,允许出站)
sudo ufw enable

# 禁用防火墙
sudo ufw disable

# 重启防火墙
sudo ufw reload

重要警告:如果是通过 SSH 远程管理服务器,启用 ufw 前必须允许 SSH 端口(默认 22),否则会立即断开连接且无法重新登录!

3.3 重置防火墙规则

# 重置所有规则为默认状态
sudo ufw reset

此命令会禁用 ufw 并删除所有自定义规则,适用于配置出错需要重新开始的情况。

四、配置 ufw 防火墙规则

4.1 默认策略

ufw 的默认策略非常安全:拒绝所有入站连接,允许所有出站连接。

# 查看默认策略
sudo ufw status verbose

# 手动设置默认策略(可选)
sudo ufw default deny incoming  # 拒绝入站
sudo ufw default allow outgoing  # 允许出站

4.2 允许/拒绝端口

# 允许 SSH 连接(务必先执行)
sudo ufw allow 22/tcp

# 允许 HTTP(80)和 HTTPS(443)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 允许指定端口范围
sudo ufw allow 6000:6005/tcp

# 拒绝指定端口
sudo ufw deny 23/tcp

4.3 按服务名配置

ufw 支持使用服务名(基于 /etc/services 文件)来配置规则:

# 允许 SSH 服务
sudo ufw allow ssh

# 允许 HTTP 服务
sudo ufw allow http

# 允许 HTTPS 服务
sudo ufw allow https

4.4 按 IP 地址配置

# 允许指定 IP 访问所有端口
sudo ufw allow from 192.168.1.100

# 允许指定子网访问
sudo ufw allow from 192.168.1.0/24

# 允许指定 IP 访问指定端口
sudo ufw allow from 192.168.1.100 to any port 22

# 拒绝指定 IP
sudo ufw deny from 10.0.0.5

4.5 删除规则

# 按编号删除(推荐)
sudo ufw status numbered  # 先查看编号
sudo ufw delete 2  # 删除编号为 2 的规则

# 按规则内容删除
sudo ufw delete allow 80/tcp

五、ufw 高级配置

5.1 应用配置文件

ufw 支持应用配置文件(位于 /etc/ufw/applications.d/),可以批量管理复杂应用的端口。

# 列出所有应用配置
sudo ufw app list

# 查看指定应用的详细信息
sudo ufw app info OpenSSH

# 允许应用的所有端口
sudo ufw allow OpenSSH

5.2 限速防护(防暴力破解)

ufw 支持简单的速率限制,可以有效防止 SSH 暴力破解攻击:

# 限制 SSH 连接速率(每分钟最多 6 次连接,超过则拒绝)
sudo ufw limit ssh/tcp

# 限制指定端口
sudo ufw limit 22/tcp

5.3 日志记录

# 启用日志
sudo ufw logging on

# 设置日志级别(low/medium/high/full)
sudo ufw logging medium

# 查看日志
sudo tail -f /var/log/ufw.log

日志级别说明:

  • low:记录默认策略匹配的包
  • medium:记录所有允许的包
  • high:记录所有允许的包和部分被拒绝的包
  • full:记录所有包

5.4 IPv6 支持

编辑 /etc/default/ufw 文件,设置 IPV6=yes 即可启用 IPv6 防火墙支持。

# 查看当前 IPv6 设置
sudo grep IPV6 /etc/default/ufw

# 修改后重新加载
sudo ufw reload

六、实战配置示例

6.1 Web 服务器配置

# 1. 允许 SSH(务必第一步执行)
sudo ufw allow 22/tcp

# 2. 允许 HTTP 和 HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 3. 启用防火墙
sudo ufw enable

# 4. 验证规则
sudo ufw status numbered

6.2 数据库服务器配置

# 只允许应用服务器访问数据库端口
sudo ufw allow from 192.168.1.50 to any port 3306
sudo ufw allow from 192.168.1.51 to any port 3306

# 拒绝其他所有访问
sudo ufw default deny incoming

6.3 Docker 环境配置

Docker 会直接修改 iptables 规则,可能与 ufw 冲突。推荐做法:

  1. 修改 Docker 配置文件 /etc/docker/daemon.json
{
  "iptables": false
}
  1. 然后手动配置 ufw 规则允许 Docker 容器通信。

七、ufw 使用注意事项

  1. 远程服务器必看:配置 ufw 前,务必先允许 SSH 端口,否则会被锁机
  2. 规则顺序:ufw 按规则编号顺序匹配,先添加的规则优先生效
  3. Docker 冲突:Docker 会绕过 ufw,需要额外配置
  4. 备份规则:重大修改前建议备份 ufw 配置文件(/etc/ufw/ 目录)
  5. 测试验证:启用防火墙后,立即测试所有服务是否正常访问

八、相关文章推荐

如果你对 Linux 服务器安全感兴趣,还可以阅读以下文章:

总结

ufw 作为 Linux 系统下的简易防火墙工具,凭借其简洁的命令和强大的功能,成为了 Ubuntu/Debian 系统运维的标配工具。掌握 ufw 的基本操作和高级配置,能够有效提升服务器的安全性。

在实际应用中,建议结合服务器的具体业务需求,精细化配置防火墙规则,避免过度开放端口。同时,定期检查防火墙日志,及时发现和处理异常访问行为。

版权声明

本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论