Ist es möglich, die Zeichenfolge zu ändern, die der OpenSSH-Server anzeigt, wenn eine Raw-Verbindung hergestellt wird?
Es geht nicht um den angezeigten TextbannernachBanner
die Verbindung hergestellt wird und die durch den Parameter in konfiguriert werden kann sshd_config
, sondern über die Rohausgabe, die der SSH-Server bei einem Verbindungsversuch vor dem Handshake sendet.
Beispielsweise bei einer einfachen Telnet-Verbindung
$ telnet localhost 22
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.2p2
gibt es eine Möglichkeit, identifizierende Informationen auf das absolute Minimum zu reduzieren?
Meines Wissens SSH-2.0-
muss das vorhanden sein, da es vom SSH-Protokoll benötigt wird, aber die folgende Zeichenfolge - OpenSSH_7.2p2
- wird vom Protokoll wahrscheinlich nicht benötigt, aber ich sehe keine Möglichkeit, sie zu ändern oder zu entfernen, ohne sie neu zu kompilieren.
Die Absicht besteht darin, die Bereitstellung von mehr Informationen zu vermeiden, als unbedingt notwendig sind, damit das Protokoll funktioniert.
Antwort1
Nein. Die Versionszeichenfolge ist in version.h von definiertOpenSSH-Quelleals
#define SSH_VERSION "OpenSSH_7.4"
.
Sie könnten es ändern, aber es muss neu kompiliert werden.
Der Versand erfolgt dann zusammengestellt per:
snprintf(buf, sizeof buf, "SSH-2.0-%.100s\r\n", SSH_VERSION)
(ssh_api.c Zeile 381, in Funktion _ssh_send_banner
)
Siehe auch:Verhindern, dass SSH seine Versionsnummer bekannt gibt.
Antwort2
Neuere OpenSSH-Versionen erlauben das Hinzufügen von benutzerdefiniertem Text über VersionAddendum
, aber nicht das Entfernen des Produktnamens/der Produktversion. Dazu müssen Sie den Quellcode patchen.