一、Ubuntu虚拟机防火墙配置(UFW)
安装与启用UFW
Ubuntu默认未预装UFW,需通过以下命令安装:
sudo apt update && sudo apt install ufw
安装完成后,启用UFW(启用后默认拒绝所有入站连接、允许所有出站连接):
sudo ufw enable
验证UFW状态:
sudo ufw status verbose # 显示详细规则及状态
设置默认安全策略
为降低攻击面,需配置严格的默认策略:
sudo ufw default deny incoming # 拒绝所有入站连接(默认规则,可省略)
sudo ufw default allow outgoing # 允许所有出站连接(默认规则,可省略)
添加精细化访问规则
sudo ufw allow 80/tcp # 允许HTTP(TCP 80)
sudo ufw allow 443/tcp # 允许HTTPS(TCP 443)
sudo ufw allow ssh # 允许SSH服务(等价于允许22/tcp)
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端口的规则
启用日志记录(可选但推荐)
日志可帮助排查网络问题及检测攻击,启用日志记录:
sudo ufw logging on # 日志默认保存至/var/log/ufw.log
日志级别可通过sudo ufw logging low|medium|high|full调整。
禁用/重置UFW
sudo ufw disable
sudo ufw reset
二、Ubuntu虚拟机安全策略强化
系统更新与补丁管理
保持系统和软件包最新是修复漏洞的关键:
sudo apt update && sudo apt upgrade -y # 手动更新
启用自动更新(安装安全补丁无需手动干预):
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades # 配置自动更新范围
强化SSH访问安全
SSH是远程管理的主要入口,需重点加固:
/etc/ssh/sshd_config,设置:PermitRootLogin no
user为实际用户名):ssh-keygen -t rsa -b 4096 # 生成密钥对
ssh-copy-id user@虚拟机IP # 复制公钥至虚拟机
再修改/etc/ssh/sshd_config,设置:PasswordAuthentication no
/etc/ssh/sshd_config中的Port字段(如改为2222),避免暴力破解针对默认端口22的攻击。/etc/ssh/sshd_config中添加:AllowUsers your_username # 仅允许指定用户登录
修改后重启SSH服务:
sudo systemctl restart sshd
用户与权限管理
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位
网络安全设置
systemctl停止并禁用不必要的服务(如telnet、FTP):sudo systemctl stop telnet.socket
sudo systemctl disable telnet.socket
文件与目录权限
/etc/shadow(密码文件)、/etc/passwd(用户信息)等敏感文件的权限正确:sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
chmod 700 ~
安全审计与监控
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 # 封禁时间(秒)
备份与恢复
定期备份重要数据(如/home、/etc),使用rsync或Déjà Dup工具,确保备份文件存储在安全位置(如外部存储或云存储)。