为什么新服务器需要安全加固
一台刚开通的Linux云服务器暴露在公网上,平均几分钟内就会遭到自动化扫描。系统初始化安全加固是部署任何服务前的必做步骤。
系统更新与用户管理
# Ubuntu/Debian 系统更新
apt update && apt upgrade -y
# 创建普通用户
useradd -m -s /bin/bash deploy
passwd deploy
usermod -aG sudo deploy
SSH 安全配置
# 生成SSH密钥对(在本地执行)
ssh-keygen -t ed25519 -C "deploy@server"
# 将公钥上传到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@server_ip
# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
关键配置项:
Port 2222 # 修改默认端口
PermitRootLogin no # 禁止root远程登录
PasswordAuthentication no # 禁用密码登录
PubkeyAuthentication yes # 启用公钥认证
MaxAuthTries 3 # 最大认证尝试次数
AllowUsers deploy # 仅允许指定用户登录
Fail2Ban 防护
# 安装Fail2Ban
apt install fail2ban -y
# 创建本地配置
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600
Fail2Ban会自动监控日志文件,在检测到多次失败登录后自动封禁攻击者IP。
防火墙配置
使用 UFW(Ubuntu推荐)
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
使用 iptables
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允许回环接口
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的连接
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许SSH、HTTP、HTTPS
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 保存规则
iptables-save > /etc/iptables.rules
其他安全措施
# 安装自动安全更新
apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
# 安装安全审计工具
apt install lynis rkhunter
sudo lynis audit system
安全检查清单
- 系统已更新到最新版本
- 已创建普通用户,root远程登录已禁用
- SSH使用密钥认证,密码登录已禁用
- SSH默认端口已修改
- Fail2Ban已安装并配置
- 防火墙已启用,仅开放必要端口
- 自动安全更新已启用
总结
服务器的安全是一个持续的过程,初始化加固只是第一步。建议定期更新系统、监控日志、审查防火墙规则,并建立安全事件的应急响应流程。