Ubuntu防火墙实现安全策略指南
Ubuntu系统默认使用**UFW(Uncomplicated Firewall)**作为防火墙管理工具,它基于iptables封装,提供了简单易用的命令行接口,适合快速配置安全策略。以下是具体实现步骤及最佳实践:
首先确保系统已安装UFW(Ubuntu 20.04及以上版本通常预装),未安装时通过以下命令安装:
sudo apt update
sudo apt install ufw
安装完成后,启用UFW并设置为开机自启:
sudo ufw enable
系统会提示“Command may disrupt existing ssh connections”,输入y确认启用。
默认策略是防火墙的核心防线,遵循“拒绝所有入站,允许所有出站”的原则:
sudo ufw default deny incoming # 拒绝所有外部入站连接
sudo ufw default allow outgoing # 允许所有本地出站连接(如浏览网页、下载文件)
此设置确保只有明确允许的服务才能接收外部流量,降低被非法访问的风险。
根据服务器用途开放必需的端口,避免过度暴露。常见服务配置示例:
sudo ufw allow 22/tcp # 允许所有IP访问SSH
# 或限制特定IP访问(更安全)
sudo ufw allow from 192.168.1.100 to any port 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow from 192.168.1.0/24 to any port 3306/tcp
sudo ufw allow 53
通过sudo ufw allow <服务名>(如ssh、http)可快速开放/etc/services中定义的服务端口。
限制关键服务的访问源,仅允许可信IP地址或网段访问:
sudo ufw allow from 192.168.1.100 to any port 22/tcp # 仅192.168.1.100可访问SSH
sudo ufw allow from 192.168.1.0/24 to any port 3306/tcp # 192.168.1.x网段可访问MySQL
sudo ufw deny from 192.168.1.200 # 拒绝192.168.1.200的所有访问
精细化控制可有效防止未经授权的IP扫描或攻击。
开启日志功能,记录所有被拦截或允许的流量,便于后续审计和排查问题:
sudo ufw logging on # 开启日志(默认存储在/var/log/ufw.log)
日志级别可通过sudo ufw logging low|medium|high|full调整,medium级别适合大多数场景(记录被拦截的流量)。
针对SSH等易受暴力破解的服务,限制单位时间内的连接次数,降低被攻击的风险:
sudo ufw limit 22/tcp # 限制SSH连接速率为每分钟6次(默认),超过则暂时封锁IP
此规则可有效防御自动化工具的暴力破解尝试。
通过防火墙规则禁用ICMP Echo请求(Ping),防止外部探测服务器存活状态:
编辑/etc/ufw/before.rules文件,在*filter部分后添加:
-A INPUT -p icmp --icmp-type echo-request -j DROP
保存后重新加载UFW:
sudo ufw reload
禁用Ping后,外部无法通过ping <服务器IP>检测服务器是否在线,减少信息泄露风险。
/etc/docker/daemon.json,添加:{ "iptables": false }
重启Docker服务:sudo systemctl restart docker
再手动配置Docker所需的端口规则。sudo ufw status verbose查看当前规则,确保无冗余或冲突规则。sudo ufw delete allow 25/tcp删除SMTP端口)。sudo apt update && sudo apt upgrade
通过以上步骤,可实现Ubuntu防火墙的基本安全策略,有效防范非法访问、DDoS攻击和暴力破解等常见威胁。需根据实际业务需求调整规则,定期审查并优化策略,确保防火墙始终符合安全要求。