如何拒绝对 SSH 端口的 HTTP 访问

如何拒绝对 SSH 端口的 HTTP 访问

我将服务器的 SSH 端口改为 22 以外的其他端口,但当我访问时,domain.com:<ssh-port>我可以看到输出

SSH-2.0-OpenSSH_5.8p1 Debian-7ubuntu1

我想阻止除 SSH 之外的直接端口访问,如何使用 iptables 来实现?

答案1

iptables 无法阻止这种情况,因为它不会检查通过网络的流量内容。您可以使用应用程序防火墙,但这对于您的问题来说可能有点过度了。

我建议你考虑一下自己是否真的非常关心这个问题,不惜花费额外的精力安装和配置应用程序防火墙。最好花点时间仔细检查 sshd_config 文件中的选项,确保已按自己的意愿对其进行了安全配置。

答案2

你不能。这就是 SSH 协议的工作方式,它做的第一件事就是告诉你它的版本。

您也可以telnet访问同一个端口,结果也一样。唯一iptables能为您做的就是只允许某些 IP 访问该端口。

答案3

此输出由 SSH 守护程序返回给连接客户端。如果您简单地使用:

$ telnet ip port
Trying ip...
Connected to ip.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.8p1 Debian-7ubuntu1

您还可以找到使用时返回的同一行ssh -v -p port ip

不清楚你想做什么。你要么允许访问此端口,要么拒绝访问。你的意思是什么?

I want to block direct port access except SSH

答案4

如果我正确理解了您的问题...您已将 ssh 服务器配置为监听端口 80。HTTP 流量通常通过端口 80 完成。当使用 Web 浏览器连接到该端口时...您会看到 ssh 服务器发送的初始数据。

如果是这种情况,您无法使用 iptables 来“阻止”Web 浏览器并仅接受 ssh 客户端。您要么让端口保持打开状态……要么不打开。

相关内容