GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verhindern Sie, dass SSH seine Versionsnummer ankündigt

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:

  1. Ändern Sie die Standardportnummer.
  2. Root-Anmeldungen verbieten.
  3. Protokoll 2 erzwingen (vorausgesetzt, dass dies nicht standardmäßig der Fall ist).
  4. 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 werden

Der vierte hängt davon ab, welche Firewall-Software Sie verwenden.

Lösung 5:

Wie oben erwähnt, ist das Ändern einer Versionsnummer

  1. Schwierig
  2. Sicherheit durch Unklarheit
  3. 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.


Linux
  1. Wie man SSH unter Linux von Android aus macht

  2. C-Bibliothek zum Lesen der EXE-Version von Linux?

  3. Verhindert, dass die aktuell ausgeführte Linux-Aufgabe nach dem Abmelden von SSH beendet wird

  4. So verhindern Sie, dass ein Prozess Dateien schreibt

  5. SSH - So fügen Sie den Befehl -t in die Datei ~/.ssh/config ein

So verhindern Sie ein Timeout von SSH

Ubuntu – Wie verhindert man, dass Firefox unter Ubuntu 16.04 auf Version 57 aktualisiert?

So verhindern Sie, dass SSH-Verbindungen aufgrund von Inaktivität getrennt werden, wenn Sie MobaXterm verwenden

So verhindern Sie, dass SSH die Verbindung trennt, wenn es eine Weile inaktiv war

Wie konfiguriere ich D-Bus und SSH X-Forwarding, um zu verhindern, dass SSH beim Beenden hängen bleibt?

Wie installiere ich zwei verschiedene Versionen von Java auf demselben Computer von EPEL