温馨提示×

Ubuntu虚拟机如何配置防火墙和安全策略

小樊
50
2025-10-03 21:59:22
栏目: 云计算

一、Ubuntu虚拟机防火墙配置(UFW)

  1. 安装与启用UFW
    Ubuntu默认未预装UFW,需通过以下命令安装:

    sudo apt update && sudo apt install ufw
    

    安装完成后,启用UFW(启用后默认拒绝所有入站连接、允许所有出站连接):

    sudo ufw enable
    

    验证UFW状态:

    sudo ufw status verbose  # 显示详细规则及状态
    
  2. 设置默认安全策略
    为降低攻击面,需配置严格的默认策略:

    sudo ufw default deny incoming  # 拒绝所有入站连接(默认规则,可省略)
    sudo ufw default allow outgoing # 允许所有出站连接(默认规则,可省略)
    
  3. 添加精细化访问规则

    • 允许必要服务端口:根据业务需求开放端口(如Web服务需开放80/443端口,SSH服务需开放22端口):
      sudo ufw allow 80/tcp    # 允许HTTP(TCP 80)
      sudo ufw allow 443/tcp   # 允许HTTPS(TCP 443)
      sudo ufw allow ssh       # 允许SSH服务(等价于允许22/tcp)
      
    • 限制IP访问:仅允许可信IP访问关键服务(如仅允许公司IP访问SSH):
      sudo ufw allow from 192.168.1.100 to any port 22  # 允许指定IP访问SSH
      sudo ufw deny from 10.0.0.0/8 to any port 3306    # 拒绝10.0.0.0/8子网访问MySQL
      
    • 删除无效规则:若需移除规则,可通过规则编号或直接指定规则删除:
      sudo ufw status numbered  # 查看规则编号
      sudo ufw delete 3         # 删除编号为3的规则
      sudo ufw delete allow 80/tcp  # 删除允许80端口的规则
      
  4. 启用日志记录(可选但推荐)
    日志可帮助排查网络问题及检测攻击,启用日志记录:

    sudo ufw logging on  # 日志默认保存至/var/log/ufw.log
    

    日志级别可通过sudo ufw logging low|medium|high|full调整。

  5. 禁用/重置UFW

    • 临时禁用UFW(不影响现有连接):
      sudo ufw disable
      
    • 彻底重置UFW(清除所有规则,恢复默认状态):
      sudo ufw reset
      

二、Ubuntu虚拟机安全策略强化

  1. 系统更新与补丁管理
    保持系统和软件包最新是修复漏洞的关键:

    sudo apt update && sudo apt upgrade -y  # 手动更新
    

    启用自动更新(安装安全补丁无需手动干预):

    sudo apt install unattended-upgrades
    sudo dpkg-reconfigure unattended-upgrades  # 配置自动更新范围
    
  2. 强化SSH访问安全
    SSH是远程管理的主要入口,需重点加固:

    • 禁用root密码登录:编辑/etc/ssh/sshd_config,设置:
      PermitRootLogin no
      
    • 使用密钥对认证:生成密钥对并将公钥上传至虚拟机(替换user为实际用户名):
      ssh-keygen -t rsa -b 4096  # 生成密钥对
      ssh-copy-id user@虚拟机IP  # 复制公钥至虚拟机
      
      再修改/etc/ssh/sshd_config,设置:
      PasswordAuthentication no
      
    • 更改SSH默认端口:修改/etc/ssh/sshd_config中的Port字段(如改为2222),避免暴力破解针对默认端口22的攻击。
    • 限制SSH访问用户:在/etc/ssh/sshd_config中添加:
      AllowUsers your_username  # 仅允许指定用户登录
      

    修改后重启SSH服务:

    sudo systemctl restart sshd
    
  3. 用户与权限管理

    • 最小权限原则:日常操作使用普通用户,需root权限时用sudo(避免直接使用root账户)。
    • 设置强密码策略:编辑/etc/login.defs,调整密码参数:
      PASS_MAX_DAYS 90    # 密码有效期90天
      PASS_MIN_LEN 8      # 密码最小长度8位
      PASS_WARN_AGE 7     # 密码过期前7天提醒
      
      编辑/etc/pam.d/common-password,增强密码复杂度:
      password requisite pam_cracklib.so retry=3 difok=3 minlen=8  # 要求至少3个不同字符,长度8位
      
  4. 网络安全设置

    • 禁用未使用服务:通过systemctl停止并禁用不必要的服务(如telnet、FTP):
      sudo systemctl stop telnet.socket
      sudo systemctl disable telnet.socket
      
    • 网络隔离:虚拟机网络模式设置为“仅主机”或“NAT”,减少暴露在公网的风险。
  5. 文件与目录权限

    • 敏感文件权限:确保/etc/shadow(密码文件)、/etc/passwd(用户信息)等敏感文件的权限正确:
      sudo chmod 600 /etc/shadow
      sudo chmod 644 /etc/passwd
      
    • 目录权限:用户主目录设置为仅用户可访问:
      chmod 700 ~
      
  6. 安全审计与监控

    • 开启审计服务auditd用于记录系统活动,便于溯源:
      sudo systemctl enable auditd && sudo systemctl start auditd
      
    • 日志分析:使用fail2ban防范暴力破解(如SSH登录失败),自动封禁恶意IP:
      sudo apt install fail2ban
      sudo systemctl enable fail2ban && sudo systemctl start fail2ban
      
      编辑/etc/fail2ban/jail.local,启用SSH防护:
      [sshd]
      enabled = true
      maxretry = 3  # 允许的最大失败次数
      bantime = 3600  # 封禁时间(秒)
      
  7. 备份与恢复
    定期备份重要数据(如/home/etc),使用rsyncDéjà Dup工具,确保备份文件存储在安全位置(如外部存储或云存储)。

0