从SSH中删除标识信息

当我执行系统的nmap -sV 127.0.0.1 -p 22 ,我得到以下信息:

SF-Port22-TCP:V = 4.62%I = 7%D = 11/9%时间= 4916402C%P = i686-pc-linux-gnu%r(NULL,2SF:7,“SSH-2.0-OpenSSH_5。 1P1 \ x20Debian-3ubuntu1 \ r \ n“);

我如何去链接这两个信息? i686-pc-linux-gnuSSH-2\.0-OpenSSH_5\.1p1\x20Debian-3ubuntu1

我认为试图删除标题不是在这里添加一点安全性的最好方法。 所有这一切真的会是通过晦涩的安全而不是那么多。

相反,我会build议你看看端口敲门。 在本文中对Linux进行了描述。 我宁愿你偏执狂的一面会对此感到高兴。 基本上扫描将显示端口closures,除非扫描器试图以某种顺序扫描某些端口(可以这么说)。

你也可以阻止那些展现扫描行为的人在这个serverfault文章中提到的一些解决scheme。

您不能将其删除(轻松/安全),它是SSH协议的一部分,用于确定sshd支持的SSH版本,应保留在原来的位置。 也就是说你可以使用你最喜欢的hex编辑器将string改为另一个长度相等的string。 您至less需要:SSH-2.0目前。 我真的不build议你这样做,你会打破你的sshd校验和,它会被更换,每当你更新你的sshd包。 再次改变它不会达到任何目的。

通过Telnet连接到端口22也会显示这些信息:

 $ telnet localhost 22 Trying ::1... Connected to localhost. Escape character is '^]'. SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu3 

NMAP根据一定数量的猜测来确定信息。 如果你的SSHD响应NMAP探测那么NMAP将检查对它的数据库的响应,并猜测你正在运行什么系统。

探针非常复杂; 例如,它可以尝试在端口上启动SSH连接的多种变体,以查看哪些版本被识别。 它可能会试图激发一个错误信息,或者它可能只是检查“hello”屏幕。

阻止NMAP探测器的最可靠的方法是简单地在防火墙处阻止NMAP探测器,以及允许SSH连入你的机器的白名单服务器。