00:00:00
简介
Ubuntu 22.04 默认使用 UFW (Uncomplicated Firewall) 作为防火墙管理工具,它是 iptables 的前端工具,使用简单直观。
1. UFW 基础操作
1.1 安装和启用
bash
# 安装 UFW(通常已预装)
sudo apt update
sudo apt install ufw
# 查看状态
sudo ufw status
# 启用防火墙
sudo ufw enable
# 禁用防火墙
sudo ufw disable1.2 默认策略
bash
# 设置默认规则:拒绝所有入站,允许所有出站
sudo ufw default deny incoming
sudo ufw default allow outgoing2. 常用规则配置
2.1 允许特定端口
bash
# 允许 SSH(端口 22)
sudo ufw allow 22/tcp
# 允许 HTTP 和 HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 允许端口范围
sudo ufw allow 6000:6007/tcp2.2 允许特定服务
bash
# 使用服务名称
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https2.3 允许特定 IP
bash
# 允许来自特定 IP 的所有连接
sudo ufw allow from 192.168.1.100
# 允许特定 IP 访问特定端口
sudo ufw allow from 192.168.1.100 to any port 22
# 允许子网
sudo ufw allow from 192.168.1.0/243. 删除规则
bash
# 查看规则编号
sudo ufw status numbered
# 删除指定编号的规则
sudo ufw delete 2
# 删除指定的规则
sudo ufw delete allow 80/tcp4. 高级配置
4.1 限制连接速率
bash
# 限制 SSH 连接速率(防止暴力破解)
sudo ufw limit ssh4.2 允许特定网卡
bash
# 只允许从 eth0 网卡进入的流量
sudo ufw allow in on eth0 to any port 804.3 拒绝特定连接
bash
# 拒绝来自特定 IP
sudo ufw deny from 203.0.113.100
# 拒绝特定端口
sudo ufw deny 23/tcp5. 日志管理
bash
# 启用日志
sudo ufw logging on
# 设置日志级别
sudo ufw logging medium
# 查看日志
sudo tail -f /var/log/ufw.log6. 实用场景示例
6.1 Web 服务器配置
bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable6.2 数据库服务器配置
bash
# 只允许应用服务器访问数据库
sudo ufw default deny incoming
sudo ufw allow from 192.168.1.10 to any port 3306
sudo ufw allow from 192.168.1.11 to any port 3306
sudo ufw enable7. 故障排查
bash
# 查看详细状态
sudo ufw status verbose
# 查看原始 iptables 规则
sudo iptables -L -n -v
# 重置所有规则
sudo ufw reset注意事项
- ⚠️ 启用防火墙前务必先添加 SSH 规则,避免锁死自己
- 💡 使用
ufw allow ssh比指定端口更安全,会自动使用/etc/services中的配置 - 🔒 生产环境建议使用限速规则
ufw limit - 📝 定期检查防火墙日志,监控异常访问