Inzwischen haben Sie wahrscheinlich Ihren Standard-SSH-Port geändert. Trotzdem können Hacker Portbereiche leicht scannen, um diesen Port zu entdecken - aber mit Port-Klopfen können Sie Port-Scanner täuschen. Es funktioniert so, dass Ihr SSH-Client versucht, eine Verbindung zu einer Folge von Ports herzustellen, die alle Ihre Verbindung ablehnen, aber einen angegebenen Port entsperren, der Ihre Verbindung zulässt. Sehr sicher und einfach zu installieren. Port Knocking ist eine der besten Möglichkeiten, um Ihren Server vor nicht autorisierten SSH-Verbindungsversuchen zu schützen.
In diesem Artikel erfahren Sie, wie Sie das Klopfen von Ports einrichten. Es wurde für Debian 7 (Wheezy) geschrieben, funktioniert aber möglicherweise auch mit anderen Versionen von Debian und Ubuntu.
Schritt 1: Installieren der erforderlichen Pakete
Ich gehe davon aus, dass Sie bereits einen SSH-Server installiert haben. Wenn nicht, führen Sie die folgenden Befehle als root aus:
apt-get update
apt-get install openssh-server
apt-get install knockd
Installieren Sie dann iptables.
apt-get install iptables
Es müssen nicht viele Pakete installiert werden - das macht es zur perfekten Lösung, um sich vor Brute-Force-Versuchen zu schützen und gleichzeitig einfach einzurichten.
Schritt 2: Konfigurieren von iptables zur Verwendung dieser Funktion
Da Ihr SSH-Port nach dem Herstellen einer Verbindung geschlossen wird, müssen wir sicherstellen, dass der Server es Ihnen ermöglicht, verbunden zu bleiben, während andere Verbindungsversuche blockiert werden. Führen Sie diese Befehle auf Ihrem Server als root aus.
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j DROP
apt-get install iptables-persistent
iptables-save
Dadurch können vorhandene Verbindungen bestehen bleiben, aber alles andere an Ihrem SSH-Port blockiert werden.
Jetzt konfigurieren wir knockd.
Hier geschieht die Magie - Sie können auswählen, welche Ports zuerst geklopft werden müssen. Öffnen Sie einen Texteditor für die Datei /etc/knockd.conf.
nano /etc/knockd.conf
Es wird einen Abschnitt geben, der wie der folgende Block aussieht.
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
In diesem Abschnitt können Sie die Reihenfolge der Ports ändern, die geklopft werden müssen. Im Moment bleiben wir bei den Ports 7000, 8000 und 9000. Ändern Sie das seq_timeout = 5in seq_timeout = 10und für den closeSSHAbschnitt das Gleiche für die seq_timeoutLeitung. Es gibt auch eine Sequenzzeile in dem closeSSHAbschnitt, die Sie ebenfalls ändern müssen.
Wir müssen knockd aktivieren, also öffnen Sie Ihren Editor erneut als root.
nano /etc/default/knockd
Ändern Sie die 0 im Abschnitt START_KNOCKDin 1, speichern Sie sie und beenden Sie sie.
Jetzt fang an zu klopfen:
service knockd start
Groß! Alles ist installiert. Wenn Sie die Verbindung zu Ihrem Server trennen, müssen Sie die Ports 7000, 8000 und 9000 anklopfen, um erneut eine Verbindung herzustellen.
Schritt 3: Probieren wir es aus
Wenn alles korrekt installiert wurde, sollten Sie keine Verbindung zu Ihrem SSH-Server herstellen können.
Sie können das Klopfen von Ports mit einem Telnet-Client testen.
Windows-Benutzer können Telnet über die Eingabeaufforderung starten. Wenn Telnet nicht installiert ist, rufen Sie den Abschnitt "Programme" in der Systemsteuerung auf und suchen Sie "Windows-Funktionen aktivieren oder deaktivieren". Suchen Sie im Funktionsbereich "Telnet-Client" und aktivieren Sie ihn.
Geben Sie in Ihrem Terminal / Ihrer Eingabeaufforderung Folgendes ein:
telnet youripaddress 7000
telnet youripaddress 8000
telnet youripaddress 9000
Tun Sie dies alles in zehn Sekunden, da dies das in der Konfiguration festgelegte Limit ist. Versuchen Sie nun, über SSH eine Verbindung zu Ihrem Server herzustellen. Es wird zugänglich sein.
Führen Sie die Befehle in umgekehrter Reihenfolge aus, um den SSH-Server zu schließen.
telnet youripaddress 9000
telnet youripaddress 8000
telnet youripaddress 7000
Fazit
Das Beste an der Verwendung des Port-Knockings ist, dass, wenn es neben der Authentifizierung mit privatem Schlüssel konfiguriert wird, praktisch keine Chance besteht, dass jemand anderes hineinkommt, es sei denn, jemand kennt die Ports und den privaten Schlüssel.