如何禁用 opensshd 的自我介绍横幅

如何禁用 opensshd 的自我介绍横幅

我已经让 opensshd 监听非标准 tcp 端口 2222。在sshd_配置我有 ...

Banner none
VersionAddendum none

如果从客户端主机我执行telnet 服务器的 ip 2222然后我看到服务显示一条自我介绍的消息,就像这样……

SSH-2.0-OpenSSH_7.8

有没有办法防止这种情况发生并指示 openssh 守护进程不要暴露自己?我更希望“徘徊”连接无法了解这里正在监听什么。

答案1

ssh 协议的最小识别字符串是:

SSH-2.0-

但是 OpenSSH 总是会发送至少OpenSSH_*.*。如果你想要更隐秘的行为,你有几个选择:

  1. 您可以修补并重新编译openssh因此服务器在发送自己的标识字符串之前会等待客户端的标识字符串(参见sshd_exchange_identification功能)。如果客户端的标识字符串不是以 开头SSH,则它是一个虚假客户端,您可以关闭连接。它可能会破坏某些客户端(如果它们等待服务器的标识),但它不应该破坏 OpenSSH 客户端。端口扫描器将无法推断服务器的协议,除非它发送有效的客户端身份验证字符串。
  2. 安装和配置nginx。通常它是一个HTTP/HTTPS(代理)服务器,并且它有一个ssl预读模块,用于将不同的配置应用于不同的TLS客户端(基于其版本和其他参数)。但是,如果您连接到nginx使用它不理解的协议,它将设置$ssl_preread_protocol为空字符串,您可以将连接重定向到 SSH 服务器。如果端口扫描程序尝试使用TLSnginx将向他提供一个网页。如果他尝试任何其他协议,他将收到OpenSSH的识别字符串。
  3. 有一个小型协议多路复用器(安全组),它会猜测客户端的协议并将其重定向到正确的服务器。

这些选项应该可以回答你的问题,但它不相信通过隐蔽性实现安全是可行的方法(此外,端口2222不是很原始)。您最好这样做:

  1. 禁用密码登录,
  2. 使用类似失败2ban限制暴力攻击的数量。

相关内容