VPS安全加固完整指南


搬瓦工VPS开通后暴露在公网上,立即会面临自动化扫描和攻击。安全加固不是可选项,而是必做的第一步。本文提供一套系统化的VPS安全加固方案,涵盖从SSH到应用层的全方位防护。

Tip: 安全加固应在部署业务之前完成。按照本文顺序逐步执行,每步完成后验证不影响正常使用。

一、系统更新

安全加固的第一步是确保系统软件包都是最新版本:

# Ubuntu/Debian
apt update && apt upgrade -y

# CentOS
dnf update -y

# 配置自动安全更新
apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades

配置自动安全更新策略:

# 编辑 /etc/apt/apt.conf.d/50unattended-upgrades
# 确保以下行未被注释:
Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
};

# 可选:自动重启(如果安全更新需要)
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";

二、SSH安全加固

SSH是VPS最常被攻击的入口,必须严格加固:

# /etc/ssh/sshd_config 关键配置

# 修改默认端口
Port 2222

# 仅使用SSH协议2
Protocol 2

# 禁用密码登录,使用密钥认证
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password

# 限制登录
MaxAuthTries 3
LoginGraceTime 30
MaxSessions 3

# 禁用不需要的功能
X11Forwarding no
PermitEmptyPasswords no
AllowTcpForwarding no

# 应用配置
systemctl restart sshd

详细的SSH密钥配置请参考SSH密钥登录教程

三、防火墙配置

使用UFW配置基本防火墙规则:

ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp       # SSH(修改后的端口)
ufw allow 80/tcp         # HTTP
ufw allow 443/tcp        # HTTPS
ufw limit 2222/tcp       # SSH限速
ufw enable

详细的防火墙配置请参考UFW/iptables配置教程

四、安装Fail2ban

apt install fail2ban -y

cat > /etc/fail2ban/jail.local << 'EOF'
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 86400
EOF

systemctl restart fail2ban
systemctl enable fail2ban

详细配置请参考Fail2ban安装教程

五、创建非root用户

日常操作不应使用root账户,创建一个具有sudo权限的普通用户:

# 创建用户
adduser deploy

# 添加到sudo组
usermod -aG sudo deploy

# 为新用户配置SSH密钥
mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys

# 测试新用户登录成功后,可以在sshd_config中限制允许登录的用户
# AllowUsers deploy

六、Rootkit和恶意软件扫描

定期扫描系统是否被植入Rootkit或恶意程序:

# 安装rkhunter(Rootkit Hunter)
apt install rkhunter -y

# 更新数据库
rkhunter --update

# 执行扫描
rkhunter --check --skip-keypress

# 安装chkrootkit
apt install chkrootkit -y

# 执行扫描
chkrootkit

# 安装ClamAV杀毒
apt install clamav clamav-daemon -y
freshclam                    # 更新病毒库
clamscan -r /var/www/        # 扫描网站目录
clamscan -r --remove /tmp/   # 扫描并删除恶意文件

设置每周自动扫描:

# 添加到crontab
crontab -e
0 3 * * 0 /usr/bin/rkhunter --check --skip-keypress --report-warnings-only | mail -s "rkhunter weekly scan" admin@example.com

七、文件完整性监控

使用AIDE(Advanced Intrusion Detection Environment)监控关键文件变化:

# 安装AIDE
apt install aide -y

# 初始化数据库
aideinit
cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db

# 手动检查文件变化
aide --check

# 设置每日自动检查
crontab -e
0 5 * * * /usr/bin/aide --check

八、日志监控

定期查看关键日志发现异常:

# SSH登录日志
tail -100 /var/log/auth.log | grep -i "failed\|accepted\|invalid"

# 查看最近成功登录的IP
last -20

# 查看当前登录用户
w
who

# 系统日志
journalctl -p err -b        # 当前启动后的错误日志
journalctl --since "1 hour ago"

# 检查可疑的crontab任务
crontab -l
ls -la /etc/cron.d/
cat /etc/crontab

# 检查异常的监听端口
ss -tlnp
# 对比预期的服务端口,发现意外开放的端口

# 检查异常进程
ps aux --sort=-%cpu | head -20
ps aux --sort=-%mem | head -20

九、安全检查清单

VPS安全加固的完整检查清单:

相关教程:SSH密钥登录 | 防火墙配置 | Fail2ban安装 | 自动备份方案

Tip: 更多教程请查看新手教程
关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工 BandwagonHost 的优惠信息、使用教程和方案对比,方便中文用户选购和使用。

新手必读
搬瓦工优惠码

当前最大折扣优惠码:

NODESEEK2026(优惠 6.77%)

在购买方案时填入优惠码即可自动抵扣。详见 优惠码使用教程