Featured image of post 2026年VPS安全加固指南:从零开始保护你的服务器不被黑客盯上

2026年VPS安全加固指南:从零开始保护你的服务器不被黑客盯上

手把手教你加固VPS安全——SSH密钥登录、防火墙配置、fail2ban防暴力破解、自动安全更新,10分钟让你的服务器固若金汤。

买了VPS第一件事不是装WordPress,而是加固安全。

这话不是危言耸听——根据2026年最新统计,一台公网暴露的VPS平均在上线2小时内就会被扫描器盯上。你的SSH端口22每天能收到上千次暴力破解尝试,如果你还在用密码登录,被攻破只是时间问题。

好消息是:加固VPS安全并不难。跟着本文走一遍,10分钟就能让你的服务器安全性提升一个量级。

本文适合谁: 所有VPS用户,尤其是新手。无论你用的是 RackNerdHostinger 还是 Vultr,这些步骤都适用。


加固前准备

准备事项说明花费
一台VPS推荐至少1核1GB配置$11.29/年起
SSH客户端macOS用Terminal,Windows用PuTTY或Windows Terminal免费
基本命令行知识会复制粘贴命令就行

💡 如果你还没买VPS: 推荐 RackNerd 年付$11.29起,性价比最高的练手VPS。


第1步:禁用密码登录,改用SSH密钥

这是最重要的一步。密码登录 = 给黑客留了后门。

生成SSH密钥对

在你的本地电脑上执行:

# macOS/Linux
ssh-keygen -t ed25519 -C "[email protected]"

# 按回车保存默认路径,再输入两次密码(可选)

Windows用户在PowerShell或Windows Terminal中执行同样命令。

上传公钥到VPS

# 方法1:ssh-copy-id(推荐)
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@你的VPS_IP

# 方法2:手动
cat ~/.ssh/id_ed25519.pub | ssh root@你的VPS_IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

禁用密码登录

# 编辑SSH配置
sudo nano /etc/ssh/sshd_config

找到并修改以下行:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

重启SSH服务:

sudo systemctl restart sshd

⚠️ 重要: 修改前确认密钥登录已成功!否则你会被锁在服务器外面。


第2步:更改SSH端口

默认端口22是扫描器的重点目标。换成非标准端口能过滤掉99%的自动扫描。

sudo nano /etc/ssh/sshd_config

修改:

Port 2222  # 改成你喜欢的端口,范围1024-65535

重启SSH:

sudo systemctl restart sshd

更新本地SSH配置(~/.ssh/config):

Host my-vps
    HostName 你的VPS_IP
    Port 2222
    User root
    IdentityFile ~/.ssh/id_ed25519

以后用 ssh my-vps 就能连接。


第3步:配置防火墙

使用UFW(推荐新手)

# 安装UFW
sudo apt install ufw -y  # Debian/Ubuntu
# 或 sudo yum install ufw -y  # CentOS

# 设置默认策略:拒绝入站,允许出站
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 允许SSH(新端口)
sudo ufw allow 2222/tcp

# 允许HTTP/HTTPS(如果跑网站)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# 启用防火墙
sudo ufw enable

# 查看状态
sudo ufw status verbose

使用firewalld(CentOS/RHEL)

# 添加SSH端口
sudo firewall-cmd --permanent --add-port=2222/tcp

# 添加HTTP/HTTPS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# 重载规则
sudo firewall-cmd --reload

🔒 核心原则: 只开放必需的端口。不确定的端口一律关掉。


第4步:安装fail2ban防暴力破解

fail2ban会自动封禁多次尝试失败的IP地址。

# 安装
sudo apt install fail2ban -y

# 创建本地配置(不要直接改jail.conf)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# 编辑配置
sudo nano /etc/fail2ban/jail.local

添加以下内容:

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600

重启服务:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# 查看被封禁的IP
sudo fail2ban-client status sshd

自定义封禁策略

参数含义推荐值
maxretry最大失败次数3
bantime封禁时长(秒)3600(1小时)
findtime统计时间窗口600(10分钟)

第5步:禁用不必要的服务

很多VPS默认开启了用不到的服务,白白增加攻击面。

# 查看运行中的服务
systemctl list-units --type=service --state=running

# 禁用不需要的服务(示例)
sudo systemctl disable --now rpcbind  # NFS相关,不用就关
sudo systemctl disable --now avahi-daemon  # 网络发现,VPS不需要
sudo systemctl disable --now cups  # 打印服务

常见可禁用服务

服务说明VPS需要吗
rpcbindRPC端口映射
avahi-daemonmDNS/Bonjour
cups打印服务
xinetd超级服务器
telnet远程登录(不安全)
vsftpdFTP服务看需求

第6步:设置自动安全更新

保持系统更新是修补漏洞的关键。

Debian/Ubuntu

# 安装自动更新
sudo apt install unattended-upgrades -y

# 启用
sudo dpkg-reconfigure -plow unattended-upgrades

# 自动安装安全更新
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

确保包含:

Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::AutoFixInterruptedDpkg "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";

CentOS/RHEL

# 安装dnf-automatic
sudo dnf install dnf-automatic -y

# 启用自动更新
sudo systemctl enable --now dnf-automatic.timer

第7步:配置日志监控

及时发现异常活动很重要。

安装logwatch

sudo apt install logwatch -y

# 配置每日邮件报告
sudo nano /etc/logwatch/conf/logwatch.conf

设置:

Output = file
Filename = /var/log/logwatch.log
Range = yesterday
Detail = High
Service = All

查看关键日志

# 查看登录尝试
sudo grep "Failed password" /var/log/auth.log | tail -20

# 查看当前登录用户
who

# 查看最近登录记录
last -20

第8步:文件权限加固

# 确保关键文件权限正确
sudo chmod 600 /etc/ssh/sshd_config
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys

# 查找世界可写文件
find / -xdev -type f -perm -0002 -print

# 查找SUID文件
find / -xdev -type f -perm -4000 -print

设置正确的umask

# 编辑/etc/login.defs
sudo nano /etc/login.defs

修改:

UMASK 027

加固检查清单

完成所有步骤后,用这个清单逐项确认:

  • SSH使用密钥登录
  • 密码登录已禁用
  • SSH端口已更改为非标准端口
  • 防火墙已启用,只开放必要端口
  • fail2ban已安装并运行
  • 不必要的服务已禁用
  • 自动安全更新已开启
  • 日志监控已配置
  • 文件权限已加固
  • 使用非root用户管理日常操作

常见问题

Q: 加固后SSH连不上了怎么办?

如果被锁在外面,大多数VPS提供商都提供VNC控制台或救援模式。通过VNC登录后检查:

# 检查SSH服务状态
sudo systemctl status sshd

# 检查防火墙规则
sudo ufw status

# 检查fail2ban状态
sudo fail2ban-client status

Q: 我用的是 Hostinger VPS,需要自己配置这些吗?

Hostinger提供hPanel面板,基础安全设置(如防火墙规则)可以在面板操作。但SSH密钥登录、fail2ban等仍需手动配置,建议还是按本文步骤走一遍。

Q: 我需要安装入侵检测系统(IDS)吗?

对于个人VPS,上述步骤已经足够。如果你运行生产环境或处理敏感数据,可以考虑安装OSSEC或Wazuh等IDS,但那是进阶话题了。

Q: VultrRackNerd 哪个更安全?

安全性主要取决于你自己怎么配置,和VPS提供商关系不大。不过 Vultr 提供免费的DDoS防护,RackNerd 需要自己配置。两者都是可靠的选择。


总结

VPS安全加固不是一次性任务,而是持续的过程。完成以上8个步骤后,你的服务器已经比99%的VPS更安全了。

推荐的安全加固配置:

配置项方案难度
SSH密钥登录ed25519密钥⭐⭐
非标准端口改成2222+
防火墙UFW⭐⭐
暴力破解防护fail2ban⭐⭐
自动更新unattended-upgrades

💡 下一步: 安全加固完成后,可以考虑部署 RackNerd VPS 上的自动备份方案,见我们的《VPS自动备份教程》


Disclaimer: Some links are affiliate links. We may earn a commission at no extra cost to you.