Ubuntu防火墙(UFW)安全策略体系
Ubuntu系统默认使用**UFW(Uncomplicated Firewall)**作为防火墙管理工具,它基于iptables封装,通过简洁的命令行界面实现流量控制,核心目标是“默认拒绝所有未明确允许的连接”,从而降低系统暴露风险。以下是具体的安全策略框架:
设置“拒绝所有入站连接、允许所有出站连接”是UFW的核心安全基线,确保只有主动发起的连接(如浏览网页、下载文件)能正常外出,外部未经授权的连接无法进入系统:
sudo ufw default deny incoming # 拒绝所有入站流量 sudo ufw default allow outgoing # 允许所有出站流量 根据业务需求开放必需的服务端口(如Web服务的80/443端口、SSH运维的22端口),避免开放无用端口增加攻击面:
sudo ufw allow 80/tcp # 允许HTTP(网页访问) sudo ufw allow 443/tcp # 允许HTTPS(加密网页访问) sudo ufw allow 22/tcp # 允许SSH(远程运维) # 或使用服务名称(UFW内置常见服务端口映射) sudo ufw allow http sudo ufw allow https sudo ufw allow ssh 关闭系统中未使用的端口(如传统FTP的21端口、Telnet的23端口),减少潜在的攻击入口:
sudo ufw deny 21/tcp # 拒绝FTP sudo ufw deny 23/tcp # 拒绝Telnet 遵循“最小权限原则”,仅允许信任的IP地址访问敏感服务(如SSH),阻断非法IP的连接尝试:
sudo ufw allow from 192.168.1.100 to any port 22 # 允许单个IP访问SSH sudo ufw allow from 192.168.1.0/24 to any port 22 # 允许子网访问SSH 针对SSH等易受暴力破解的服务,启用连接速率限制(如每分钟最多6次尝试),防止攻击者通过大量无效请求耗尽系统资源:
sudo ufw limit ssh/tcp # 限制SSH连接速率(默认6次/分钟) # 或自定义速率(如10次/分钟) sudo ufw limit 22/tcp rate 10/minute 通过丢弃ICMP Echo请求(Ping),隐藏系统在线状态,减少端口扫描和探测攻击的风险(需权衡网络诊断便利性):
编辑/etc/ufw/before.rules文件,在*filter部分后添加:
-A PREROUTING -p icmp --icmp-type echo-request -j DROP 然后重新加载UFW:
sudo ufw reload 开启UFW日志功能,记录所有被允许或拒绝的连接尝试,便于后续安全审计和问题排查:
sudo ufw logging on # 启用日志(默认记录到/var/log/ufw.log) sudo ufw logging medium # 设置日志级别(low/medium/high/full) 查看实时日志:
tail -f /var/log/ufw.log 若系统运行Docker,需禁用Docker自动修改iptables规则的功能,避免Docker自动生成的规则覆盖UFW设置,导致防火墙失效:
编辑/etc/docker/daemon.json文件,添加:
{ "iptables": false } 重启Docker服务:
sudo systemctl restart docker UFW内置了常见服务(如OpenSSH、Nginx、MySQL)的配置文件(profiles),可通过服务名称快速开放或关闭对应端口,无需手动指定端口号:
sudo ufw app list # 查看可用应用列表 sudo ufw allow 'OpenSSH' # 开放OpenSSH服务端口 sudo ufw deny 'Nginx Full' # 关闭Nginx的HTTP/HTTPS端口 定期查看UFW规则列表,确认是否有未授权的规则被添加,确保规则符合当前业务需求:
sudo ufw status verbose # 查看详细规则(包括规则编号) sudo ufw status numbered # 查看带编号的规则(便于删除) 定期备份UFW规则,避免系统重装或规则丢失时重新配置:
sudo cp /etc/ufw/user.rules ~/ufw_backup.rules # 备份用户规则 sudo cp /etc/ufw/user6.rules ~/ufw_backup6.rules # 备份IPv6规则 # 恢复规则 sudo cp ~/ufw_backup.rules /etc/ufw/user.rules sudo cp ~/ufw_backup6.rules /etc/ufw/user6.rules sudo ufw reload UFW作为基础防火墙,需与fail2ban(防御暴力破解)、AppArmor(应用沙箱)等工具配合使用,形成多层安全防护:
sudo apt install fail2ban # 安装fail2ban sudo systemctl enable fail2ban # 启用fail2ban sudo systemctl start fail2ban # 启动fail2ban 通过以上策略的组合应用,UFW能有效防范未经授权的访问、暴力破解、端口扫描等常见攻击,为Ubuntu系统构建起可靠的第一道安全防线。需注意的是,防火墙策略应根据业务变化定期调整,避免因规则过时导致安全隐患。