目录

加固RackNerd VPS

吃灰两年的阿里云服务器马上到期了,不想续费,感觉一直放着挺浪费。不过 RackNerd 黑五又有优惠,忍不住入手了一台 2 核 VPS,花了 17 刀,续费同价,用着也比较安心,就顺手记录一下云服务器的安全加固流程。

这台服务器使用 Ubuntu 24.04,与我之前写的 CentOS7 加固篇不同,如果你的是 CentOS,可以参考这篇:👉 CentOS7 云服务器安全加固

1. 开启防火墙(UFW)

Ubuntu 默认带有 ufw 防火墙,先检查当前状态:

ufw status

如果未开启,执行:

ufw enable

开放 SSH 所需的 22 端口:

ufw allow 22/tcp

2. SSH 安全配置

SSH 是服务器被攻击的主要入口,因此必须重点加固,包括:

  • 禁止 root 登录
  • 禁止密码登录
  • 使用密钥登录
  • 设定允许的用户

2.1 创建新用户并禁用 root 登录

在禁用 root 登录之前,需要先创建一个新用户并加入 sudo 组:

useradd xxx
passwd xxx
usermod -aG sudo xxx

修改 /etc/ssh/sshd_config

PermitRootLogin no
AllowUsers xxx

这能有效减少暴力破解的风险。

2.2. 配置 SSH 公钥登录

相比密码登录,SSH 密钥的安全性更高,同时不容易被暴力破解。

2.2.1 生成密钥对

在本地机器执行:

ssh-keygen -t ed25519

生成的密钥位于 ~/.ssh/ 内,将公钥上传到服务器:

ssh-copy-id -i ~/.ssh/id_ed25519.pub xxx@vps_ip

2.2.2 禁用密码登录

编辑 /etc/ssh/sshd_config

PubkeyAuthentication yes
PermitEmptyPasswords no
PasswordAuthentication no

2.2.3. 使用 Putty 登录(可选)

如果你习惯使用 Putty,可以将生成的私钥转换成 .ppk 格式。

  1. 打开 PUTTYGEN.EXE
  2. 菜单:Conversions -> Import Key
  3. 导入之前生成的私钥 id_ed25519,保存后缀为 .ppk的私钥文件

/images/2025/12/05/import-key.png

再在 Putty 中:

Connection -> SSH -> Auth -> Credentials 选择刚保存的 .ppk 私钥文件即可。

/images/2025/12/05/credential.png

2.3. 其他 SSH 安全建议

以下设置可进一步减少被扫描和滥用的风险:

X11Forwarding no
UseDNS no
MaxAuthTries 3
MaxSessions 3

修改完成后重启 SSH:

sudo systemctl restart ssh

3. 启用 Fail2ban 设置黑名单

公网服务器每天都会遭遇大量 SSH 暴力扫描,安装 fail2ban 可以自动封禁恶意 IP。

3.1 安装与启动

sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

3.2 配置

拷贝默认配置:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

编辑 /etc/fail2ban/jail.d/defaults-debian.conf

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = -1
  • maxretry = 3:3 次失败即封禁
  • findtime = 1d:在一天内触发封禁
  • bantime = -1:永久封禁(根据需要可改)

重启服务:

sudo systemctl restart fail2ban

查看被封禁的 IP:

sudo fail2ban-client status sshd

以上就是我对 RackNerd 的 Ubuntu VPS 做的基础安全加固步骤。做好这些配置后,服务器基本能抵挡大部分扫描和低级攻击,安全性也会大大提升。