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

So verwenden Sie Port Knocking zum Sichern des SSH-Dienstes unter Linux

Port Knocking ist eine raffinierte Technik, um den Zugriff auf einen Port zu kontrollieren, indem nur legitimen Benutzern der Zugriff auf den Dienst gewährt wird, der auf einem Server ausgeführt wird. Es funktioniert so, dass die Firewall bei der richtigen Reihenfolge der Verbindungsversuche gerne den geschlossenen Port öffnet.

Die Logik hinter dem Port-Knocking besteht darin, Ihr Linux-System vor automatisierten Port-Scannern zu schützen, die nach offenen Ports suchen. In diesem Handbuch untersuchen wir, wie Sie Port Knocking installieren und für einen sicheren SSH-Dienst konfigurieren können. Zu Demonstrationszwecken verwenden wir Ubuntu 18.04 .

Schritt 1:Knockd installieren und konfigurieren

Melden Sie sich zunächst bei Ihrem Linux-System an und installieren Sie knockd Daemon wie gezeigt.

$ sudo apt install knockd

Öffnen Sie nach der Installation die knockd.conf Konfiguration mit Ihrem bevorzugten Texteditor. Hier verwenden wir den vim-Befehlszeilen-Texteditor.

$ sudo vim /etc/knockd.conf

Die Standardkonfigurationsdatei wird wie folgt angezeigt.

Unter dem [openSSH] Abschnitt müssen wir die standardmäßige Klopfsequenz ändern – 7000,8000,9000 – zu etwas anderem. Dies liegt daran, dass diese Werte bereits bekannt sind und die Sicherheit Ihres Systems gefährden können.

Zu Testzwecken haben wir die Werte auf 10005, 10006, 10007 gesetzt . Dies ist die Sequenz, die verwendet wird, um den SSH-Port von einem Client-System aus zu öffnen.

In der dritten Zeile – beginnend mit command , ändern Sie -A zu -I direkt nach /sbin/iptables Befehl und vor INPUT .

Und zuletzt unter [closeSSH] Ändern Sie erneut die Standardreihenfolge in Ihre bevorzugte Auswahl. Dies ist die Sequenz, die verwendet wird, um die SSH-Verbindung zu schließen, sobald der Benutzer fertig ist und sich vom Server abmeldet.

Hier ist unsere vollständige Konfiguration.

Wenn Sie fertig sind, speichern Sie die Änderungen und beenden Sie.

Eine weitere Konfiguration, die wir ändern müssen, ist /etc/default/knockd . Öffnen Sie es erneut mit Ihrem Texteditor.

$ sudo vim /etc/default/knockd

Suchen Sie die Zeile START_KNOCKD=0 . Kommentieren Sie es aus und setzen Sie den Wert auf 1 .

Gehen Sie als Nächstes zur Zeile KNOCKD_OPTS=”-i eth1” Kommentieren Sie es aus und ersetzen Sie den Standardwert eth1 Wert mit der aktiven Netzwerkschnittstelle Ihres Systems. Um Ihre Netzwerkschnittstelle zu überprüfen, führen Sie einfach die IP-Adresse oder den Befehl ifconfig aus.

Für unser System enp0s3 ist die aktive Netzwerkkarte.

Die vollständige Konfiguration ist wie abgebildet.

Speichern Sie die Änderungen und beenden Sie.

Starten Sie dann und aktivieren Sie knockd Daemon wie gezeigt.

$ sudo systemctl start knockd
$ sudo systemctl enable knockd

Um den Status von knockd zu überprüfen Daemon, führen Sie den folgenden Befehl aus:

$ sudo systemctl status knockd

Schritt 2:SSH-Port 22 auf Firewall schließen

Da das Ziel des knockd service den Zugriff auf den SSH-Dienst entweder gewähren oder verweigern soll, werden wir den SSH-Port auf der Firewall schließen. Aber lassen Sie uns zuerst den Status der UFW-Firewall überprüfen.

$ sudo ufw status numbered

Aus der Ausgabe können wir deutlich erkennen, dass SSH Port 22 ist auf beiden IPv4 geöffnet und IPv6 Protokolle mit der Nummer 5 und 9 bzw..

Wir müssen diese beiden Regeln wie gezeigt löschen, beginnend mit dem höchsten Wert – der 9 ist .

$ sudo ufw delete 9
$ sudo ufw delete 5

Wenn Sie jetzt versuchen, sich aus der Ferne beim Server anzumelden, erhalten Sie einen Verbindungszeitüberschreitungsfehler wie gezeigt.

Schritt 3:Konfigurieren Sie einen Knock-Client für die Verbindung mit dem SSH-Server

Im letzten Schritt konfigurieren wir einen Client und versuchen, uns anzumelden, indem wir zuerst die Klopfsequenz senden, die wir auf dem Server konfiguriert haben.

Aber zuerst installieren Sie knockd Daemon, genau wie Sie es auf dem Server getan haben.

$ sudo apt install knockd

Sobald die Installation abgeschlossen ist, senden Sie die Klopfsequenz mit der gezeigten Syntax

$ knock -v server_ip knock_sequence

In unserem Fall bedeutet dies:

$ knock -v 192.168.2.105 10005 10006 10007

Abhängig von Ihrer Sequenz sollten Sie eine ähnliche Ausgabe wie bei uns erhalten. Dies zeigt, dass die Klopfversuche erfolgreich waren.

An diesem Punkt sollten Sie in der Lage sein, sich erfolgreich mit SSH beim Server anzumelden.

Sobald Sie Ihre Arbeit auf dem Remote-Server erledigt haben, schließen Sie den SSH-Port, indem Sie die schließende Klopfsequenz senden.

$ knock -v 192.168.2.105 10007 10006 10005

Alle Versuche, sich beim Server anzumelden, schlagen wie gezeigt fehl.

Abschlussgedanken

Damit ist dieser Leitfaden zur Nutzung von Port-Knocking zur Sicherung des SSH-Dienstes auf Ihrem Server abgeschlossen. Ein besserer und einfacherer Ansatz wäre die Konfiguration der Kennwort-SSH-Authentifizierung mithilfe von SSH-Schlüsselpaaren. Dadurch wird sichergestellt, dass sich nur der Benutzer mit dem privaten Schlüssel bei dem Server authentifizieren kann, auf dem der öffentliche Schlüssel gespeichert ist.


Ubuntu
  1. So installieren Sie den SSH-Dienst (Secure Shell) unter Kali Linux

  2. So ändern Sie den SSH-Port unter Linux

  3. So ändern Sie den SSH-Port unter Lubuntu 20.04 Linux

  4. Wie verwende ich Chromecast?

  5. So sichern Sie den SSH-Dienst mit Port Knocking

So ändern Sie den SSH-Port unter Linux

So verwenden Sie systemctl unter Linux

So aktivieren Sie den SSH-Dienst unter Rocky Linux 8 / CentOS 8

So installieren Sie Mosh Shell als SSH-Alternative unter Linux

So ändern Sie den SSH-Port unter Linux – eine einfache Anleitung

So führen Sie eine sichere Redis-Installation unter Linux durch