服务器 SSH 老提示 connection is closed by foreign host,原来是这帮 IP 在爆破
xk59syxa

今天打算给手里这几台服务器更新一下系统,并清理一下系统垃圾,但是这台服务器今天抽风,SSH 时好时坏,连不上的时候就报 connection is closed by foreign host。你说气不气人,它又不是一直坏,ping 是通的,端口也开着,过几分钟再试,嘿,又好了。这种毛病最磨人,我第一反应就是网络不行,或者机房抽风。

一开始我还怀疑是不是自己 IP 被 fail2ban 给封了,或者路上哪台设备在捣鬼。折腾半天才发现,跟网络半毛钱关系没有。服务器好着呢,负载几乎为零,大半年没重启过,稳得一批。

后来我好不容易挤进服务器,翻了一眼 sshd 日志,傻眼了。有一个 IP 是 5.231.242.201,同时挂着十几个连接,在那儿一个劲试 root 密码,短短两小时失败了两千多次。旁边还有一整个网段的机器在轮着爆破,主要是 77.83.39.x 这一段,什么 77.83.39.60、77.83.39.89、77.83.39.101、77.83.39.118、77.83.39.235、77.83.39.239 这些,十几个地址换来换去地试。另外还冒出个 92.118.39.59,也在那儿跟着凑热闹。量太大了,直接把 sshd 的一个保护开关给顶爆了。

这个开关叫 MaxStartups,默认值是 10:30:100,意思就是同时没认证的连接一旦超过 10 个,新进来的连接就会被随机踢掉。人家攻击者把这个额度占满以后,我这个正常用户的连接也跟着遭殃,随机就被丢了,客户端看着就是 connection is closed by foreign host。等攻击缓一缓,额度空出来,我又能连上了。所以才是这么个时好时坏的鬼样子。

找到病根,剩下就好办了。先把攻击来源在防火墙里手动封了,5.231.242.201 这个单 IP,还有 77.83.39.0/24 整个网段,加上 92.118.39.59,全给它关进去。然后就是把 fail2ban 修好,让机器以后自己会封,省得每次都得我手动来。

修 fail2ban 的时候又踩了个坑,这里多说两句。这机器是 Debian 12,日志走的是 systemd 的 journald,默认压根没有 /var/log/auth.log 这个文件,fail2ban 默认配置找不到日志,服务一直就是挂着的。更坑的是,sshd 日志在 journal 里的单元名是 ssh.service,不是 fail2ban 默认匹配的 sshd.service。这俩地方不改对,fail2ban 永远读不到日志,封 IP 更是没门。

改完配置重新把 fail2ban 拉起来,它当场就从历史日志里揪出十几个攻击 IP,全给自动封了。再回头看日志,攻击直接清零,SSH 也老实了,连着试了几十次都不带掉线的。

最后把这次碰到的可疑 IP 贴出来,看到的兄弟自己服务器里留意一下,能封就早点封:
5.231.242.201

77.83.39.0/24 这一整段(里面 77.83.39.17、60、89、95、99、101、112、118、119、122、147、217、226、235、238、239、240 都在轮着扫)

92.118.39.59

回头想想就一句话,SSH 报 connection is closed by foreign host,先别急着怪自己网络,看看服务器是不是正被爆破。防护工具光装没用,得确认它真在跑。再有余力,密码登录换成密钥,默认端口改一改,这两下能挡掉一多半的麻烦。

好吧,我承认这一次是 AI(DeepSeek) 的功劳。

😊
提交

评论区

共 40 条评论

  1. 头像
    我SSH默认关闭,需要用的时候再开,用完就关,这样不知道会不会安全一点
    9月14日 江苏
    1. 头像
      Huo 博主
      @花非花 这样稳妥,不过我没有这样,我是让助手给搞了一下
      9月16日 河北
  2. 头像
    哈哈,逐步转向向AI打工~🤣
    9月14日 北京
    1. 头像
      Huo 博主
      @故事的程序猿 现在就是在给 AI 打工啦 疯狂烧 TOKEN
      9月16日 河北
  3. 头像
    我把运维都交给ai了,宝塔可以接入ai,然后手机端就可以跟ai交流控制
    9月13日 湖南
    1. 头像
      Huo 博主
      @摸鱼大王 我有两三年时间没用过宝塔了,各种的广告,后来就一直没用了,用过一段时间宝塔 7.7
      9月13日 河北
  4. 头像
    小助理真不错啊。我也是把端口关闭,用的时候开起来
    9月13日 浙江
    1. 头像
      Huo 博主
      @我是军爸 尤其是对我这种的小白来说,小助理还的确好使呢
      9月13日 河北
  5. 头像
    不经常登的话,看下自己宽带的ip段,只接后台只开放你这ip段最安全了
    9月13日 安徽
    1. 头像
      Huo 博主
      @Hary AI 已经给完美解决啦
      9月13日 河北
  6. 头像
    改默认端口,屏蔽掉至少90%扫描
    9月12日 山东
    1. 头像
      Huo 博主
      @obaby 在我助手的协助下,安静了,全世界都安静了
      9月12日 河北
  7. 头像
    ssh端口要不改一下
    9月12日 广东
    1. 头像
      Huo 博主
      @彬红茶 改了改了,其实我之前就改了的
      9月12日 河北
  8. 头像
    运维排障记录很实用。
    9月12日 澳大利亚
    1. 头像
      Huo 博主
      @fengc 以后遇到这种情况应该就知道是怎么个事了,不会像这次这样手忙脚乱
      9月12日 河北