服务器被植入后门,如何加固 SSH 登录?

刚买的服务器还没跑业务,就被通知有后门?
八成是 SSH 弱口令被扫了。
别急着重装,先按下面步骤把 SSHD 加固到指纹级别,后门就算还在也连不进来。

先做三件事:备份、查后门、留条退路

登录服务器后,第一件事不是改配置,而是备份现有 SSH 配置文件:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

接下来快速排查常见后门位置:

  • cat ~/.ssh/authorized_keys —— 查看是否有多余的公钥;
  • crontab -l 以及检查 /var/spool/cron/ 下有无可疑定时任务;
  • ps aux | grep -i ssh —— 看是否有异常 SSH 进程在监听其他端口;
  • 检查 /root/.bashrc/etc/rc.local 等开机启动脚本是否有恶意加载。

如果发现异常文件或进程,先记录路径,不要马上删除(可能触发反弹 shell),等加固完再清理。

核心加固:让后门无机可乘

1. 修改默认端口,减掉 99% 的扫描

sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config

选一个 1024-65535 之间的端口(例如 2222),之后连接要用 ssh -p 2222 user@ip

2. 关闭 root 直接登录,切断最高权限入口

sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

以后用普通用户登录,需要提权时再 su -sudo

3. 只允许密钥登录,密码登录彻底禁用

先确认本机(客户端)已有密钥对,没有则生成:

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519

将公钥传到服务器(直接复制到 ~/.ssh/authorized_keys,注意权限:chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/)。
然后执行:

sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config

4. 防火墙只放行可信 IP(可选但强烈建议)

用 iptables 或火墙(ufw/firewalld)限定源 IP。
这里以 ufw 为例:

ufw allow from 你的家庭公网IP to any port 2222
ufw deny 2222

注意顺序:先放行再拒绝,否则把自己锁了。

5. 安装 fail2ban 自动封掉暴力破解

debian/ubuntu 系列:

apt install fail2ban -y

配置 /etc/fail2ban/jail.local

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

重启生效:systemctl restart fail2ban

所有配置修改后,务必先重载 SSHD 但不退出当前会话:

systemctl reload sshd

然后另开一个终端窗口测试新连接,确认能登录再关闭旧窗口。

避坑高频问题

  • 改了端口却连不上? 检查防火墙是否放行了新端口,以及 SELinux(getenforce 显示 Enforcing 时要放行 2222 端口)。
  • 密钥登录失败? 查看服务端 ~/.ssh/authorized_keys 权限是否为 600,目录是否为 700;客户端密钥权限不能超过 600。
  • 禁用 root 后忘记创建普通用户? 立刻用旧会话创建用户并加入 sudo 组:useradd -m user && usermod -aG sudo user && passwd user;如果旧会话已断,联系服务商进救援模式。
  • fail2ban 封了自己? 在 /etc/fail2ban/jail.local 中的 ignoreip 添加本机 IP 或内网段,重启 fail2ban。

验证加固效果

  1. 查看 SSH 日志是否只记录白名单来源:grep "Accepted" /var/log/auth.log | tail -10
  2. 换个网络环境(比如手机热点)尝试用密码登录旧端口,应该被拒绝;
  3. 故意输错几次密码,等待 fail2ban 封禁:fail2ban-client status sshd-custom 显示 Currently banned 数量 > 0 即为成功;
  4. 最后检查一下后门是否还有残留——用 lsof -i -n | grep -v 2222 | grep LISTEN 看看有无意外监听端口,如果有,确认并清理。

完成以上加固后,你的 SSH 就像换了指纹锁,之前植入的后门没有钥匙,只能在外墙瞎转。
建议把这篇教程收藏起来,每次服务器初始化时照着跑一遍,后门自然没机会落地。

分享到:
上一篇
用 AI 写 Shell 脚本,执行后系统配置被修改
下一篇
服务器被 DDoS 攻击,如何判断攻击类型?
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意