Linux 云服务器初始化安全加固:SSH 配置到防火墙策略

为什么新服务器需要安全加固

一台刚开通的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已安装并配置
  • 防火墙已启用,仅开放必要端口
  • 自动安全更新已启用

总结

服务器的安全是一个持续的过程,初始化加固只是第一步。建议定期更新系统、监控日志、审查防火墙规则,并建立安全事件的应急响应流程。