Lösung 1:
Während es unerschwinglich schwierig ist, die Versionsnummer Ihres SSH-Daemons zu verbergen, können Sie die Linux-Version (Debian-3ubuntu4) leicht verbergen
Fügen Sie die folgende Zeile zu /etc/ssh/sshd_config
hinzu
DebianBanner no
Und starten Sie Ihren SSH-Daemon neu:/etc/init.d/ssh restart
oder service ssh restart
Lösung 2:
Das Ausblenden dieser wird Ihren Server nicht sichern. Es gibt viele weitere Möglichkeiten, einen Fingerabdruck davon zu erhalten, was Ihr System ausführt. Insbesondere bei SSH ist die Versionsankündigung Teil des Protokolls und wird benötigt.
http://www.snailbook.com/faq/version-string.auto.html
Lösung 3:
Fast überall sind identifizierende Banner Teil des kompilierten Codes und haben keine Konfigurationsoptionen, um sie zu ändern oder zu unterdrücken. Sie müssen diese Softwareteile neu kompilieren.
Lösung 4:
Ich bin mir ziemlich sicher, dass Sie die Versionsankündigung nicht wirklich ändern können.
Die besten Methoden zum Sichern von sshd sind:
- Ändern Sie die Standardportnummer.
- Root-Anmeldungen verbieten.
- Protokoll 2 erzwingen (vorausgesetzt, dass dies nicht standardmäßig der Fall ist).
- Die Server auf die weiße Liste setzen, die für SSH zugelassen sind.
Die ersten drei können durch Modifizieren von /etc/sshd_config
durchgeführt werdenDer vierte hängt davon ab, welche Firewall-Software Sie verwenden.
Lösung 5:
Wie oben erwähnt, ist das Ändern einer Versionsnummer
- Schwierig
- Sicherheit durch Unklarheit
- Nicht flexibel
Was ich vorschlage, ist die Implementierung von Port Knocking. Es ist eine ziemlich einfache Technik, um alles zu verbergen, was auf Ihrem Server läuft.
Hier ist eine gute Implementierung:http://www.zeroflux.org/projects/knock
So habe ich es auf meinen Servern (andere Nummern) implementiert, um SSH nur für die Leute zu öffnen, die das „geheime Klopfen“ kennen:
[openSSH]
sequence = 300,4000,32
seq_timeout = 5
command = /opencloseport.sh %IP% 2305
tcpflags = syn
Dies ergibt ein 5-Sekunden-Fenster, in dem die 3 SYN-Pakete in der richtigen Reihenfolge empfangen werden müssen. Wählen Sie Ports, die weit voneinander entfernt und nicht sequentiell sind. Auf diese Weise kann ein Portscanner den Port nicht versehentlich öffnen. Diese Ports müssen nicht von iptables geöffnet werden.
Das Skript, das ich aufrufe, ist dieses. Es öffnet einen bestimmten Port für 5 Sekunden für die IP, die die SYN-Pakete sendet.
#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2 -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2 -j ACCEPT
Es kann wirklich mühsam sein, die SYN-Pakete zu senden, also verwende ich das Skript, um mich mit dem SSH meiner Server zu verbinden:
#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh [email protected]$1 -p $6
(Es ist ziemlich offensichtlich, was hier passiert...)
Nachdem die Verbindung hergestellt wurde, kann der Port geschlossen werden. Hinweis:Verwenden Sie die Schlüssel-Authentifizierung. Andernfalls müssen Sie sehr schnell sein, um Ihr Passwort einzugeben.