ufw
Ubuntu 下的 UFW (Uncomplicated Firewall) 是一个基于 iptables 的简单防火墙管理工具,旨在简化防火墙配置流程。以下是对 UFW 的全面详解,涵盖安装、配置、管理、规则语法、高级功能及常见问题解决方案。
一、UFW 简介
UFW 是 Ubuntu 的默认防火墙工具,由 iptables 提供底层支持。
iptables 是 Linux 内核的防火墙框架,但其配置复杂(需手动编写规则),而 UFW 通过简化命令和语法,让管理员更方便地管理防火墙。
适用场景:个人服务器、小型企业网络、需要快速配置防火墙的场景。
二、安装与启用 UFW
1. 安装 UFW
sudo apt update sudo apt install ufw
2. 启用 UFW
启用防火墙:
sudo ufw enable
启用后,UFW 会自动加载默认策略(如拒绝所有流量,允许 SSH)。
禁用防火墙:
sudo ufw disable
查看状态:
sudo ufw status verbose
显示当前规则、策略、日志状态等。
三、UFW 默认策略
UFW 的默认策略分为 incoming(进站)和 outgoing(出站):
默认拒绝所有进站流量(
incoming: denied
)。默认允许所有出站流量(
outgoing: allowed
)。
修改默认策略
修改进站策略:
sudo ufw default deny incoming sudo ufw default allow incoming
修改出站策略:
sudo ufw default deny outgoing sudo ufw default allow outgoing
四、UFW 基础规则配置
1. 允许特定端口/服务
允许单个端口(如 HTTP 80):
sudo ufw allow 80/tcp
允许特定协议(如 HTTPS 443):
sudo ufw allow 443/tcp
允许服务名称(如 SSH):
sudo ufw allow ssh
2. 拒绝特定端口/服务
拒绝单个端口:
sudo ufw deny 22/tcp
拒绝所有 ICMP 请求(如 ping):
sudo ufw deny icmp
3. 删除规则
按规则编号删除(通过
ufw status verbose
查看规则编号):sudo ufw delete 1
按规则内容删除:
sudo ufw delete allow 80/tcp
4. 允许特定 IP 或 IP 段
允许单个 IP:
sudo ufw allow from 192.168.1.100
允许 IP 段:
sudo ufw allow from 192.168.1.0/24
5. 限制 IP
限制 IP 的访问频率(防暴力破解):
sudo ufw limit ssh
五、UFW 高级功能
1. 端口转发(Port Forwarding)
配置端口转发(例如将外部端口 80 转发到内网服务器 192.168.1.100:8080):
sudo ufw allow 80/tcp to 192.168.1.100 port 8080
注意:需确保 iptables 的
nat
表有相应配置(可通过iptables -t nat -L
检查)。
2. 基于接口的规则
允许特定接口的流量(如允许 eth0 的 HTTP 流量):
sudo ufw allow on eth0 to any port 80
3. 自定义规则链
添加自定义规则链(需直接操作 iptables):
sudo iptables -N CUSTOM_CHAIN sudo iptables -A CUSTOM_CHAIN -j DROP sudo ufw deny to any
六、日志与监控
1. 启用日志记录
启用日志(默认关闭):
sudo ufw logging on
设置日志级别(如
low
,medium
,high
):sudo ufw logging medium
2. 查看日志
查看 UFW 日志:
sudo tail -f /var/log/ufw.log
七、常见问题及解决方案
1. 无法连接服务器
问题:启用 UFW 后无法 SSH 登录。
解决方案:
确保 SSH 端口开放:
sudo ufw allow ssh
若已启用但规则未生效,检查规则顺序(UFW 按规则优先级执行,先定义的规则优先)。
2. UFW 无法启用
问题:提示
Error: Another instance of ufw is already running
。解决方案:
sudo ufw disable sudo ufw enable
3. 端口转发未生效
问题:配置了端口转发但无法访问。
解决方案:
检查 iptables 的
nat
表是否正确配置。确保目标服务器监听了对应端口(如
netstat -tuln
)。
八、UFW 与 iptables 的关系
UFW 是 iptables 的封装,所有 UFW 规则最终会转换为 iptables 规则。
直接操作 iptables(需谨慎):
sudo iptables -L -n -v sudo iptables -S
九、备份与恢复
备份 UFW 配置:
sudo ufw status verbose > ufw_config_backup.txt
恢复配置(手动重新应用规则)。
十、UFW 常用命令汇总
十一、UFW 配置文件
配置文件路径:
/etc/ufw/ufw.conf
关键配置项:
DEFAULT_FORWARD_POLICY
:默认转发策略(如ACCEPT
或DROP
)。LOG_LEVEL
:日志级别(如low
,medium
,high
)。
十二、进阶建议
结合 Fail2Ban:自动封锁暴力破解的 IP。
使用 GUI 工具:如 Gufw(Ubuntu 的图形化 UFW 管理工具)。
定期审计规则:避免规则冗余或冲突。
附录:UFW 示例
示例 1:允许 SSH 和 HTTP
sudo ufw allow ssh sudo ufw allow 80/tcp sudo ufw enable
示例 2:拒绝所有 ICMP 请求
sudo ufw deny icmp
示例 3:限制 SSH 登录频率
sudo ufw limit ssh
通过以上详解,应能全面掌握 UFW 的配置与管理。
如需进一步优化,可结合 ipset、nftables 等工具实现更复杂的网络策略。
Comment