在 Ubuntu 云服务器上配置安全策略是保障系统稳定和数据安全的关键步骤。以下是一套完整且实用的安全加固方案,按优先级排序:
一、基础网络层防护
1. 防火墙配置(UFW)
# 安装并启用 UFW
sudo apt update && sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh 22/tcp # 允许 SSH(建议修改默认端口后使用新端口)
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
sudo ufw status verbose
最佳实践:
- 仅开放必要端口
- 使用云服务商的安全组配合 UFW 实现双重防护
- 定期审查规则:
sudo ufw status numbered
2. SSH 安全加固
sudo nano /etc/ssh/sshd_config
关键配置项:
Port 2222 # 修改默认 22 端口
PermitRootLogin no # 禁止 root 直接登录
PasswordAuthentication no # 禁用密码登录(强制密钥认证)
PubkeyAuthentication yes # 启用公钥认证
AllowUsers your_username # 限制允许登录的用户
X11Forwarding no # 禁用 X11 转发
MaxAuthTries 3 # 限制认证尝试次数
ClientAliveInterval 300 # 保持连接活跃
ClientAliveCountMax 2 # 无响应断开连接
重启服务:sudo systemctl restart sshd
二、系统账户与权限管理
1. 创建非特权用户
sudo adduser newuser
sudo usermod -aG sudo newuser # 添加到 sudo 组
sudo passwd -l root # 锁定 root 账户
2. 配置 sudo 权限
编辑 /etc/sudoers(使用 visudo 命令):
newuser ALL=(ALL:ALL) ALL
确保遵循最小权限原则。
三、入侵检测与监控
1. 安装 Fail2Ban
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
配置 /etc/fail2ban/jail.local:
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600
重启服务:sudo systemctl restart fail2ban
2. 实时日志监控
# 查看 SSH 登录日志
sudo tail -f /var/log/auth.log
# 设置日志轮转和归档
sudo apt install logrotate
四、系统更新与维护
1. 自动安全更新
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
配置 /etc/apt/apt.conf.d/50unattended-upgrades 确保只升级安全包。
2. 定期手动检查
# 检查可用更新
sudo apt update && sudo apt list --upgradable
# 清理无用软件包
sudo apt autoremove && sudo apt autoclean
五、高级防护措施
1. 文件完整性监控(AIDE)
sudo apt install aide -y
sudo aideinit
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
配置定时任务每日扫描:
echo "0 2 * * * /usr/sbin/aide --check" | sudo crontab -e
2. SELinux/AppArmor 强化
Ubuntu 默认使用 AppArmor,确保关键服务已启用:
sudo aa-status
sudo aa-complain /path/to/service # 临时调试模式
sudo aa-enforce /path/to/service # 强制模式
3. 数据加密
- 磁盘加密:安装时选择 LUKS 加密
- 传输加密:强制 HTTPS/TLS
- 敏感数据:使用 GPG 或 OpenSSL 加密存储
六、备份与灾难恢复
# 创建自动备份脚本
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
tar -czf /backup/system_$DATE.tar.gz /etc /home /var/www
aws s3 cp /backup/system_$DATE.tar.gz s3://your-bucket/ # 示例:上传到 S3
find /backup -mtime +7 -delete # 保留最近 7 天备份
七、持续监控建议
- 配置告警:集成 CloudWatch、Prometheus 等监控工具
- 定期审计:每月检查开放端口、用户权限、日志异常
- 漏洞扫描:使用 OpenVAS、Nessus 等工具定期扫描
- 渗透测试:每季度进行专业安全评估
重要提醒:所有配置变更后务必测试功能是否正常,避免误操作导致服务中断。对于生产环境,建议在测试环境充分验证后再部署。
通过以上多层防御体系,可显著提升 Ubuntu 云服务器的安全性。记住:安全是一个持续过程,需要定期更新策略和补丁。
CLOUD技术笔记