一台新服务器上线前,做好安全加固能避免90%的常见攻击。以下是10个必做设置,适用于Ubuntu/Debian/CentOS等主流发行版。
1. 更改SSH默认端口
SSH默认22端口是暴力破解的首要目标。修改为高位端口:
# 编辑SSH配置
sudo nano /etc/ssh/sshd_config
# 找到 Port 22,改为 Port 2222(或其他高位端口)
# 重启SSH服务
sudo systemctl restart sshd
2. 禁用root远程登录
# 在sshd_config中设置
PermitRootLogin no
3. 使用密钥登录替代密码
# 本地生成密钥对
ssh-keygen -t ed25519 -C "[email protected]"
# 上传公钥到服务器
ssh-copy-id -p 2222 user@your_server
4. 安装并配置防火墙
# Ubuntu/Debian
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp # SSH端口
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
5. 安装fail2ban防暴力破解
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 编辑jail.local,设置bantime、maxretry等参数
sudo systemctl enable fail2ban
6. 定期更新系统
# 检查安全更新
sudo apt update && sudo apt upgrade -y
# 设置自动安全更新
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
7. 关闭不必要的服务
# 查看正在运行的服务
systemctl list-units --type=service --state=running
# 关闭不需要的服务
sudo systemctl stop cups # 打印服务(服务器不需要)
sudo systemctl disable cups
8. 配置文件权限
# 检查敏感文件权限
chmod 600 /etc/shadow
chmod 644 /etc/passwd
chmod 700 /root
9. 启用日志审计
sudo apt install auditd
sudo systemctl enable auditd
# 监控关键文件变更
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
10. 定期备份数据
# 使用rsync备份
rsync -avz --progress /data/ backup@remote:/backup/
# 或使用crontab定时备份
0 2 * * * /usr/local/bin/backup.sh
总结
以上10个设置是最基础也是最重要的安全措施。当然,安全是一个持续的过程,需要定期检查和更新配置。建议每月做一次安全审计,及时发现潜在风险。
有什么问题欢迎在评论区讨论!