Ubuntu 中安装和使用 UFW 防火墙教程
1. 什么是 UFW?
UFW(Uncomplicated Firewall,简单防火墙)是 Ubuntu 系统中一个用于管理 iptables 防火墙规则的前端工具,它设计得简单易用,适合防火墙新手使用。UFW 提供了一个简单的界面来配置常见的防火墙设置,而无需直接处理复杂的 iptables 命令。
2. 安装 UFW
UFW 通常在 Ubuntu 中预装,如果您的系统中没有,可以通过以下命令安装:
sudo apt update
sudo apt install ufw
3. 基本配置
3.1 检查 UFW 状态
安装完成后,您可以检查 UFW 的状态:
sudo ufw status
如果返回 Status: inactive
,表示防火墙当前处于关闭状态。
3.2 设置默认策略
在启用防火墙前,建议先设置默认策略:
# 默认拒绝所有入站连接
sudo ufw default deny incoming
# 默认允许所有出站连接
sudo ufw default allow outgoing
4. 添加规则
4.1 允许特定服务
您可以按服务名称允许连接:
# 允许 SSH 连接
sudo ufw allow ssh
# 允许 HTTP 和 HTTPS 连接
sudo ufw allow http
sudo ufw allow https
4.2 允许特定端口
您也可以按端口号允许连接:
# 允许 SSH(端口 22)
sudo ufw allow 22
# 允许 HTTP(端口 80)
sudo ufw allow 80
# 允许 HTTPS(端口 443)
sudo ufw allow 443
4.3 指定协议
您可以指定允许的协议(TCP 或 UDP):
# 允许 TCP 端口 8080
sudo ufw allow 8080/tcp
# 允许 UDP 端口 53(DNS)
sudo ufw allow 53/udp
4.4 指定 IP 地址或子网
您可以限制只允许特定 IP 地址或子网访问:
# 允许特定 IP 地址访问 SSH
sudo ufw allow from 192.168.1.100 to any port 22
# 允许特定子网访问网络服务
sudo ufw allow from 192.168.1.0/24 to any port 80
5. 删除规则
5.1 按编号删除规则
先查看带编号的规则列表:
sudo ufw status numbered
然后删除指定编号的规则:
sudo ufw delete [编号]
5.2 按规则内容删除
# 删除之前添加的允许 SSH 的规则
sudo ufw delete allow ssh
# 删除允许特定端口的规则
sudo ufw delete allow 80
6. 启用和禁用 UFW
6.1 启用 UFW
在配置好规则后,您可以启用防火墙:
sudo ufw enable
系统会提示您确认,因为启用防火墙可能会中断现有 SSH 连接。如果您已经添加了允许 SSH 的规则,可以放心确认。
6.2 禁用 UFW
如果需要临时关闭防火墙:
sudo ufw disable
7. 其他常用命令
7.1 查看详细状态
sudo ufw status verbose
7.2 重置 UFW
如果需要清除所有规则,恢复到默认设置:
sudo ufw reset
7.3 启用日志记录
sudo ufw logging on
可以设置日志级别:sudo ufw logging low|medium|high|full
8. 常见使用场景
8.1 配置网络服务器
对于 Web 服务器,通常需要以下配置:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
8.2 保护数据库服务器
如果运行数据库服务,只允许特定 IP 访问:
sudo ufw allow ssh
sudo ufw allow from 192.168.1.100 to any port 3306
sudo ufw enable
8.3 端口转发
例如,将外部的 8080 端口转发到内部的 80 端口:
- 首先编辑
/etc/ufw/sysctl.conf
文件,启用 IP 转发:
sudo nano /etc/ufw/sysctl.conf
取消注释以下行:
net/ipv4/ip_forward=1
- 添加 NAT 规则到
/etc/ufw/before.rules
:
sudo nano /etc/ufw/before.rules
在 *filter
前添加:
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
COMMIT
- 重启 UFW 使配置生效:
sudo ufw disable
sudo ufw enable
9. 故障排除
9.1 规则不生效
如果新添加的规则似乎不起作用:
sudo ufw reload
9.2 被 UFW 锁定在系统外
如果您无法 SSH 连接到服务器,可能是因为 UFW 规则阻止了连接。在这种情况下,您需要通过控制台访问服务器,然后:
sudo ufw disable
然后重新配置规则,确保允许 SSH 连接后再重新启用。
10. 小结
UFW 是一个功能强大且易于使用的防火墙配置工具。只需几个简单的命令,就可以保护您的 Ubuntu 系统免受未授权访问。记住,设置防火墙规则时保守一点总是好的 - 只开放必要的端口和服务。
希望本教程能帮助您轻松管理 Ubuntu 系统上的防火墙!