1G 内存云服务器加固实录:三个差点让我失联的坑

举报
yd_283294818 发表于 2026/10/25 10:41:46 2026/10/25
【摘要】 低配小机加固踩坑复盘:fail2ban 误封来源 IP、后量子 KEX 被链路掐断、一键脚本误杀 443 进程,附可复用的加固清单。

背景

一台 2核1G 的入门款云服务器,Debian 12,上面跑着一个常驻服务,监听 443 端口对外提供服务。内存只有 1G,属于"够用但要省着用"的水平。安全加固本来是例行操作,结果三个坑连环踩,每一个都足以让人当场失联。记录下来,给同样在低配小机上做加固的朋友避雷。

坑一:fail2ban 把自己封了

我的登录链路经过一层转发,服务器看到的来源 IP 并不是常用办公网的 IP。而 SSH 握手偶发抖动会产生重试,配上我一开始设置的 aggressive 模式 + maxretry=4,直接被判成爆破,nftables reject。

表现就是:Connection refused,但服务器明明活着,控制台 VNC 登录一切正常。

两个教训:

  • fail2ban 用 normal 模式,maxretry 放宽到 6 以上,bantime 适当缩短;
  • 无 rsyslog 的系统记得 backend = systemd,否则规则读不到日志,根本不生效。

救急通道:提前留一个能登录的跳板机,用 fail2ban-client set sshd unbanip 解封。

坑二:SSH 握手被中间设备掐断

Debian 12 的 sshd 默认提供 sntrup761x25519-sha512 后量子密钥交换算法,在部分运营商链路上会被中间设备直接打断,客户端卡在 SSH2_MSG_KEXINIT sent 然后超时,现象和端口被封一模一样,非常误导。

解决:sshd_config 和客户端都固定 KexAlgorithms curve25519-sha256。老算法反而最稳。

坑三:一键脚本 kill 掉 443

图省事跑了某知名工具箱的"一条龙调优",它内部的 check_port 会把占用 80/443 的进程直接 kill——我那个监听 443 的服务就这么没了。它的改 SSH 端口功能还会把 sshd 挪到高位端口,而云控制台安全组没放行新端口,等于自己断网。

结论:云上小机别跑一键全家桶,要哪项功能单独执行,改之前想清楚副作用。

加固清单(复盘版)

  • sshd 自定义 conf 用 00- 前缀(sshd 配置首个值生效,顺序很重要)
  • fail2ban:normal 模式 + systemd backend
  • 开 BBR:/etc/sysctl.d/99-bbr.conf,net.ipv4.tcp_congestion_control=bbr
  • 任何远程变更前,保持第二个 SSH 会话在线

1G 内存的小机不奢侈,但省着用完全够——前提是别把它折腾死。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。