Linux 服务器初始安全加固指南
新拿到一台 VPS,第一件事不是装服务,而是安全加固。这篇讲讲我的基线配置。
SSH 安全
1. 禁止密码登录
编辑 /etc/ssh/sshd_config:
PasswordAuthentication no
PubkeyAuthentication yes
重启 SSH:
systemctl restart sshd
2. 换端口
默认 22 端口全是扫描,改成高位端口:
Port 22222
3. 禁止 root 登录
PermitRootLogin no
新建普通用户,用 sudo 提权。
防火墙
UFW(Ubuntu)
# 开启防火墙
ufw enable
只开放必要端口
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw allow 22222/tcp # 你的 SSH 新端口
查看状态
ufw status verbose
FirewallD(CentOS)
systemctl enable firewalld
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
Fail2Ban
自动封掉暴力破解 SSH 的 IP:
apt install fail2ban
配置
cat > /etc/fail2ban/jail.local << 'EOF'
[sshd]
enabled = true
port = 22222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
EOF
systemctl restart fail2ban
自动更新
apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
选择自动安装安全更新。
用户管理
添加用户
adduser anna
usermod -aG sudo anna
SSH 公钥
mkdir -p /home/anna/.ssh
chmod 700 /home/anna/.ssh
touch /home/anna/.ssh/authorized_keys
粘贴你的公钥
日志监控
定期检查日志:
# 失败的 SSH 登录
grep "Failed password" /var/log/auth.log | tail -20
最近的登录
last | head -20
我写了定时脚本,每周发邮件汇总异常登录。
总结
安全加固就几点:
- SSH — 公钥登录、换端口、禁 root
- 防火墙 — 只开必要端口
- Fail2Ban — 自动封暴力破解
- 更新 — 自动打补丁
- 监控 — 定期看日志
一套下来,被黑概率降 90%。
Nginx/OpenResty Linux服务器安全加固
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法