温馨提示×

Ubuntu防火墙怎样实现安全策略

小樊
57
2025-10-04 03:53:41
栏目: 智能运维

Ubuntu防火墙实现安全策略指南
Ubuntu系统默认使用**UFW(Uncomplicated Firewall)**作为防火墙管理工具,它基于iptables封装,提供了简单易用的命令行接口,适合快速配置安全策略。以下是具体实现步骤及最佳实践:

1. 安装与启用UFW

首先确保系统已安装UFW(Ubuntu 20.04及以上版本通常预装),未安装时通过以下命令安装:

sudo apt update
sudo apt install ufw

安装完成后,启用UFW并设置为开机自启:

sudo ufw enable

系统会提示“Command may disrupt existing ssh connections”,输入y确认启用。

2. 设置默认策略(最小权限原则)

默认策略是防火墙的核心防线,遵循“拒绝所有入站,允许所有出站”的原则:

sudo ufw default deny incoming  # 拒绝所有外部入站连接
sudo ufw default allow outgoing # 允许所有本地出站连接(如浏览网页、下载文件)

此设置确保只有明确允许的服务才能接收外部流量,降低被非法访问的风险。

3. 允许必要服务端口

根据服务器用途开放必需的端口,避免过度暴露。常见服务配置示例:

  • SSH(远程管理):允许22端口(TCP),建议修改默认端口(如2222)增强安全性:
    sudo ufw allow 22/tcp    # 允许所有IP访问SSH
    # 或限制特定IP访问(更安全)
    sudo ufw allow from 192.168.1.100 to any port 22/tcp
    
  • HTTP/HTTPS(网站服务):允许80(HTTP)、443(HTTPS)端口:
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    
  • 数据库(MySQL/MariaDB):允许3306端口(TCP),仅限内部网络访问:
    sudo ufw allow from 192.168.1.0/24 to any port 3306/tcp
    
  • DNS(域名解析):允许53端口(TCP/UDP):
    sudo ufw allow 53
    

通过sudo ufw allow <服务名>(如sshhttp)可快速开放/etc/services中定义的服务端口。

4. 基于IP的精细化访问控制

限制关键服务的访问源,仅允许可信IP地址或网段访问:

  • 允许单个IP
    sudo ufw allow from 192.168.1.100 to any port 22/tcp  # 仅192.168.1.100可访问SSH
    
  • 允许IP段
    sudo ufw allow from 192.168.1.0/24 to any port 3306/tcp  # 192.168.1.x网段可访问MySQL
    
  • 拒绝特定IP
    sudo ufw deny from 192.168.1.200  # 拒绝192.168.1.200的所有访问
    

精细化控制可有效防止未经授权的IP扫描或攻击。

5. 启用日志记录与监控

开启日志功能,记录所有被拦截或允许的流量,便于后续审计和排查问题:

sudo ufw logging on  # 开启日志(默认存储在/var/log/ufw.log)

日志级别可通过sudo ufw logging low|medium|high|full调整,medium级别适合大多数场景(记录被拦截的流量)。

6. 限制连接速率(防DDoS/暴力破解)

针对SSH等易受暴力破解的服务,限制单位时间内的连接次数,降低被攻击的风险:

sudo ufw limit 22/tcp  # 限制SSH连接速率为每分钟6次(默认),超过则暂时封锁IP

此规则可有效防御自动化工具的暴力破解尝试。

7. 禁用不必要的服务(如Ping探测)

通过防火墙规则禁用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>检测服务器是否在线,减少信息泄露风险。

8. 高级配置(可选)

  • Docker兼容性:Docker会自动添加iptables规则,可能与UFW冲突。需修改Docker配置,禁用其自动管理iptables:
    编辑/etc/docker/daemon.json,添加:
    { "iptables": false }
    
    重启Docker服务:
    sudo systemctl restart docker
    
    再手动配置Docker所需的端口规则。
  • GUI管理:若偏好图形界面,可安装GUFW(Ubuntu Software Center搜索“GUFW”即可安装),通过拖拽完成规则配置。

9. 定期维护与优化

  • 检查规则有效性:定期运行sudo ufw status verbose查看当前规则,确保无冗余或冲突规则。
  • 删除无用规则:若不再需要某服务,及时删除对应规则(如sudo ufw delete allow 25/tcp删除SMTP端口)。
  • 系统更新:保持系统和UFW版本最新,修复已知漏洞:
    sudo apt update && sudo apt upgrade
    
  • 强化SSH:除防火墙外,还需配置SSH安全(禁用root登录、使用密钥认证、修改默认端口),进一步提升服务器安全性。

通过以上步骤,可实现Ubuntu防火墙的基本安全策略,有效防范非法访问、DDoS攻击和暴力破解等常见威胁。需根据实际业务需求调整规则,定期审查并优化策略,确保防火墙始终符合安全要求。

0