Ubuntu 24.04 VPS 上手第一件事:改 SSH 端口和安全加固

刚开了一台 Ubuntu 24.04 的 VPS?别急着跑业务,先把安全搞定。暴露在公网上的服务器,每时每刻都有机器人在扫描默认的 22 端口,试图暴力破解。所以,修改默认端口和加固系统是每个 VPS 用户的必修课。

24.04 这版本改 SSH 端口比以前麻烦了一点,因为它默认用了 systemd socket activation 来管理 SSH。不过别慌,跟着我的步骤来,一次搞定。

黄金法则:在修改 SSH 相关配置时,始终保持一个当前已登录的 SSH 会话不要断开。新开一个终端窗口进行测试,确认新配置可以正常登录后,再关闭旧的会话。不然,你可能会把自己锁在门外。


第一部分:跟 22 端口说再见

我们的目标是把默认的 22 端口改成一个不常用的,比如 2222

步骤 1: 编辑 sshd_config

这是老规矩,先告诉 SSH 服务本身你想用哪个端口。

sudo nano /etc/ssh/sshd_config

找到 #Port 22 这一行,去掉 # 注释,然后把 22 改成你的新端口。

Port 2222

改完后按 Ctrl+X,然后按 Y 回车保存。

步骤 2: 配置 systemd socket (24.04 关键步骤)

这是 24.04 的新花样。光告诉 SSH 不够,还得告诉 systemd 这个大管家,让它去监听新端口。

首先,创建覆盖配置的目录:

sudo mkdir -p /etc/systemd/system/ssh.socket.d

然后,创建一个新的配置文件 listen.conf

sudo nano /etc/systemd/system/ssh.socket.d/listen.conf

把下面的内容粘贴进去:

[Socket]
ListenStream=
ListenStream=2222

解释一下这两行:

  • ListenStream=:第一行留空,作用是清空默认监听的 22 端口。这行不能少!
  • ListenStream=2222:第二行写上你的新端口。

保存退出。

步骤 3: 重载服务并检查

systemd 重新加载配置,然后重启 ssh.socket

sudo systemctl daemon-reload
sudo systemctl restart ssh.socket

现在,检查一下新端口是否已经在监听了:

sudo ss -tuln | grep 2222

如果你看到类似下面的输出,说明成功了: tcp LISTEN 0 4096 0.0.0.0:2222 0.0.0.0:*

步骤 4: 放行防火墙

端口改了,防火墙得跟上。这里以 UFW 为例。

# 允许新端口的流量
sudo ufw allow 2222/tcp

# (可选但推荐)禁止旧的 22 端口
sudo ufw delete allow 22/tcp

# 重载防火墙规则
sudo ufw reload

最后一步:测试! 新开一个终端,用新端口登录你的服务器: ssh your_user@your_ip -p 2222

确认能成功登录后,你就可以安心地关闭之前的会话了。

第二部分:给你的 VPS 穿上盔甲

改端口只是第一步,下面这几项能让你的 VPS 安全性提升几个数量级。

1. 禁用密码,只用密钥登录

这是安全的第一道防线,也是最重要的一道。密码登录就是给暴力破解送人头。

首先,确保你已经把本地的公钥上传到服务器了。如果没有,在你的本地电脑上执行:

# 如果没有密钥对,先生成一个
ssh-keygen -t ed25519

# 把公钥复制到服务器(注意换成你的新端口)
ssh-copy-id -p 2222 your_user@your_ip

然后,在服务器上编辑 sshd_config

sudo nano /etc/ssh/sshd_config

修改或确认以下两项:

PasswordAuthentication no
PubkeyAuthentication yes

重启 SSH 服务使其生效:

sudo systemctl restart ssh

2. 禁止 root 用户直接登录

别用 root 用户直接浪,养成好习惯,用普通用户登录再 sudo 提权。

继续编辑 sshd_config

sudo nano /etc/ssh/sshd_config

修改或添加这一行:

PermitRootLogin no

重启 SSH 服务:

sudo systemctl restart ssh

3. 安装并配置 Fail2Ban

Fail2Ban 是一个自动看门狗,谁老是输错密码敲你家门,它就把谁的 IP 关在门外一段时间。

安装:

sudo apt update
sudo apt install fail2ban

配置: Fail2Ban 的最佳实践是不要直接改 jail.conf,而是创建一个 jail.local 文件来覆盖它。

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

然后编辑 jail.local

sudo nano /etc/fail2ban/jail.local

Ctrl+W 搜索 [sshd],找到 SSH 的配置部分,修改成这样:

[sshd]
enabled = true
port    = 2222      # 重点:改成你的新 SSH 端口
maxretry = 3        # 3次失败就封
bantime  = 1h       # 封1小时

启动并检查:

# 重启 Fail2Ban 服务
sudo systemctl restart fail2ban

# 检查 sshd jail 的状态
sudo fail2ban-client status sshd

如果一切正常,你会看到被激活的 jail 详情。

4. 保持系统更新

保持系统最新能堵上很多已知的安全漏洞,养成定期更新的好习惯。

sudo apt update && sudo apt upgrade -y
sudo apt autoremove -y

可以考虑用 unattended-upgrades 实现安全更新的自动化,这里就不展开了。


搞定以上这些,你的 VPS 基本上就从一个裸奔的新手村装备,升级到了可以上战场的骑士级别。安全无小事,多一分谨慎,少一分风险。

上一篇文章

甲骨文 AMD 小鸡 DD Debian 12 记录

下一篇文章

教育网IP获取教程:VPS自动连接学校VPN完整方案

写评论

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注