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

So sichern Sie den SSH-Dienst mit Port Knocking

Wenn Sie Benutzern den Zugriff auf bestimmte Dienste auf Ihrem Server ermöglichen möchten, ohne eine Firewall zu öffnen, können Sie Port-Knocking verwenden. Port Knocking ist eine Methode, mit der Sie Ihren Dienst vor unbefugten Benutzern schützen können. Port-Knocking lässt eingehende Verbindungen zu, wenn eine korrekte Reihenfolge von Verbindungsversuchen empfangen wird.

In diesem Beitrag sichern wir den offenen SSH-Port 22 mit Port-Knocking. Dieser Port wird nur geöffnet, wenn jemand nacheinander die Ports 7000, 8000, 9000 anfordert.

Voraussetzungen

  • Ein Ubuntu 20.04-Server auf der Atlantic.Net Cloud Platform
  • Ein auf Ihrem Server konfiguriertes Root-Passwort

Schritt 1 – Atlantic.Net Cloud-Server erstellen

Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 20.04 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.

Sobald Sie sich bei Ihrem Ubuntu 20.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.

apt-get update -y

Schritt 2 – Knockd installieren und konfigurieren

apt-get install knockd -y

Bearbeiten Sie nach der Installation des Pakets die Standardkonfigurationsdatei für das Port-Knocking:

nano /etc/knockd.conf

Suchen Sie die unten gezeigte Standardsequenz:

        sequence    = 7000,8000,9000
        sequence    = 9000,8000,7000

Und ersetzen Sie sie durch die folgende Sequenz:

        sequence    = 7777,8888,9999
        sequence    = 9999,8888,7777

Suchen Sie außerdem die folgende Zeile:

        command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

Und ersetzen Sie es durch die folgende Zeile:

        command     = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

In der obigen Konfigurationsdatei wird die Sequenz 7777, 8888, 9999 verwendet, um Port 22 für ein Client-System zu öffnen, und die Sequenz 9999, 8888, 7777 wird verwendet, um Port 22 für ein Client-System zu schließen.

Bearbeiten Sie als Nächstes die Datei /etc/default/knockd Konfigurationsdatei:

nano /etc/default/knockd

Ändern Sie die folgenden Zeilen:

# Start the Knockd service
START_KNOCKD=1

# Name of your network interface
KNOCKD_OPTS="-i eth0"

Speichern und schließen Sie die Datei, wenn Sie fertig sind, starten Sie dann den Knockd-Dienst neu und aktivieren Sie ihn, um beim Systemneustart zu starten:

systemctl restart knockd
systemctl enable knockd

Überprüfen Sie als Nächstes den Status des Knockd-Dienstes mit dem folgenden Befehl:

systemctl status knockd

Beispielausgabe:

● knockd.service - Port-Knock Daemon
     Loaded: loaded (/lib/systemd/system/knockd.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-08-15 13:26:31 UTC; 5s ago
       Docs: man:knockd(1)
   Main PID: 6555 (knockd)
      Tasks: 1 (limit: 2353)
     Memory: 296.0K
     CGroup: /system.slice/knockd.service
             └─6555 /usr/sbin/knockd -i eth0

Aug 15 13:26:31 ubuntu2004 systemd[1]: Started Port-Knock Daemon.
Aug 15 13:26:31 ubuntu2004 knockd[6555]: starting up, listening on eth0

Schritt 3 – Iptables installieren und konfigurieren

Knockd verwendet die Iptables-Regel, um den SSH-Port zu öffnen und zu schließen, daher müssen Sie das Iptables-Paket auf Ihrem Server installieren.

Führen Sie den folgenden Befehl aus, um das Iptables-Paket zu installieren:

apt-get install iptables iptables-persistent -y

Erstellen Sie nach der Installation des Pakets eine Iptables-Regel, um den SSH-Port 22 für alle Benutzer zu blockieren:

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j REJECT

Speichern Sie als Nächstes die Iptables-Regel und laden Sie sie mit dem folgenden Befehl neu:

netfilter-persistent save
netfilter-persistent reload

An diesem Punkt ist Port Knocking für OpenSSH auf Ihrem Server konfiguriert.

Schritt 4 – OpenSSH-Verbindung vom Client-System prüfen

Gehen Sie als nächstes zum Client-System und prüfen Sie, ob der OpenSSH-Port 22 blockiert ist oder nicht.

Sie können dies mit dem NMAP-Befehl überprüfen:

nmap your-server-ip

Sie sollten sehen, dass Port 22 auf dem Server gefiltert wird.

Nmap scan report for your-server-ip
Host is up (0.38s latency).
Not shown: 998 closed ports
PORT   STATE    SERVICE
21/tcp open     ftp
22/tcp filtered ssh
Nmap done: 1 IP address (1 host up) scanned in 277.58 seconds

Versuchen Sie nun, sich mit SSH vom Client-Rechner aus mit Ihrem Server zu verbinden:

ssh [email protected]

Sie sollten die Nachricht "Verbindung verweigert" sehen:

ssh: connect to host your-server-ip port 22: Connection refused

Schritt 5 – Konfigurieren Sie Knockd auf dem Client, um den SSH-Server zu verbinden

Jetzt müssen Sie den Knock-Client auf dem Client-System installieren, um sich mit dem SSH-Server zu verbinden.

Führen Sie zunächst den folgenden Befehl aus, um das Knockd-Clientpaket zu installieren:

apt-get install knockd -y

Verwenden Sie nun die folgende Klopfsequenz, um den SSH-Port 22 auf dem Server zu öffnen.

knock -v your-server-ip 7777 8888 9999

Wenn Ihr Server eine korrekte Sequenz empfängt, die Sie in der Knockd-Konfigurationsdatei definiert haben, öffnet er den SSH-Port 22 für Ihren Client-Rechner und Sie können sich mit dem SSH-Server verbinden.

ssh [email protected]

Nachdem Sie Ihre Aufgabe auf dem Remote-SSH-Server abgeschlossen haben, können Sie die folgende Sequenz vom Client-Computer verwenden, um den SSH-Port wieder zu schließen.

knock -v your-server-ip 9999 8888 7777

Schlussfolgerung

In der obigen Anleitung haben Sie gelernt, wie Sie einen SSH-Server mit Port-Knocking sichern. Sie können die gleiche Methode verwenden, um andere Ports auf einem Linux-Server zu sichern. Probieren Sie es auf VPS-Hosting von Atlantic.Net aus!


Linux
  1. SSH zu einem anderen Port als 22:So geht's (mit Beispielen)

  2. So aktivieren Sie den SSH-Dienst in Ubuntu 22.04 LTS

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

  4. Wie kann man mit einem anderen Server per SSH auf einen Server zugreifen?

  5. So sichern Sie Ihren Ubuntu-Server mit der CSF-Firewall

So verwalten Sie Ubuntu Server mit SSH aus der Ferne

So installieren Sie den SSH-Server in Ubuntu 20.04

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

So führen Sie SSH zum Server über Linux

So sperren Sie Ihren CentOS-Server mit IPTables

So sichern Sie SSH mit Fail2Ban