Wenn Sie über einen öffentlich zugänglichen Server verfügen, können Hacker Ihre IP-Adresse leicht scannen und nach offenen Ports (insbesondere Port 22, der für SSH verwendet wird) auf Ihrem Server suchen. Eine Möglichkeit, Ihren Server vor Hackern zu schützen, ist der Knockd. Knockd ist ein Port-Klop-Server. Es überwacht den gesamten Datenverkehr auf einem Ethernet oder anderen verfügbaren Schnittstellen und wartet auf spezielle Sequenzen von Port-Hits. Clients wie Telnet oder Putty initiieren Port-Hits, indem sie ein TCP oder Paket an einen Port auf dem Server senden.

In diesem Artikel werden wir uns ansehen, wie wir mit knockd Dienste ausblenden können, die auf einem Linux-Server laufen.

Installieren Sie Knockd auf einem Linux-Server

Knockd ist in den meisten Distributionen verfügbar. Auf einem Debian / Ubuntu / Ubuntu-basierten Server können Sie den Befehl apt-get, um knockd zu installieren.

 sudo apt-get install klopfte 

Für Benutzer von Fedora, CentOS oder REHL können Sie den Befehl yum :

 yum install geklopft 

Installiere und konfiguriere Iptables

Wenn Iptables nicht auf Ihrem Server installiert sind, installieren Sie es jetzt.

 sudo apt-get installieren iptables iptables-persistent 

Das Paket iptables-persistent übernimmt das automatische Laden von gespeicherten iptables.

Als Nächstes müssen Sie bereits bestehende Verbindungen sowie aktuelle Sitzungen über iptables zulassen. Verwenden Sie den folgenden Befehl, um diese Aufgabe zu erreichen:

 iptables -A INPUT -m conntrack --cctstate ESTABLISHED, RELATED -j ACCEPT 

Als nächstes müssen Sie alle eingehenden Verbindungen zu Port 22 SSH blockieren.

 iptables -A INPUT -p tcp --dport 22 -j REJECT 

Speichern Sie nun die Firewall-Regeln mit den folgenden Befehlen:

 netfilter-persistent speichern netfilter-persistent reload 

Sie können überprüfen, ob Sie tatsächlich Port 22 blockiert haben, indem Sie sich über Ihren Computer mit Ihrem Server verbinden.

 ssh my-server-ip 

Konfigurieren Sie Knockd

Jetzt ist es an der Zeit, die Standardeinstellungen zu konfigurieren. Es befindet sich unter "/etc/knockd.conf". Wechseln Sie dazu mit dem folgenden Befehl in die knockd-Konfigurationsdatei:

 cd / etc sudo leafpad klopf.conf 

Zur Veranschaulichung benutze ich den Editor für Blätter. Auf Ihrem Server können Sie Nano oder Vi verwenden.

Der Screenshot zeigt die geklopfte Konfigurationsdatei.

  • Optionen : In diesem Feld finden Sie Konfigurationsoptionen für Knockd. Wie Sie im obigen Screenshot sehen können, wird syslog für die Protokollierung verwendet.
  • OpenSSH : Dieses Feld besteht aus Sequenz-, Sequenz-Timeout-, Befehls- und TCP-Flags.
  • Sequenz : Es zeigt die Port-Sequenz an, die vom Client als Muster zum Einleiten einer Aktion verwendet werden kann.
  • Sequenz-Timeout : Zeigt die Gesamtzeit an, die Clients zugewiesen wurde, um die erforderliche Port-Klopfsequenz abzuschließen.
  • Befehl : Dies ist der Befehl, der ausgeführt wird, sobald die Klopffolge durch den Client mit dem Muster im Sequenzfeld übereinstimmt.
  • TCP_FLAGS : Dies ist das Flag, das bei den vom Client ausgegebenen Stößen gesetzt werden muss. Wenn das Flag falsch war, aber das Klopfmuster bkorrekt ist, wird die Aktion nicht ausgelöst.

Hinweis : Der Befehl iptables im Abschnitt OpenSSH in der Knockd-Konfigurationsdatei verwendet die Option -A, um diese Regel an das Ende der INPUT-Kette anzuhängen. Dadurch werden alle verbleibenden Verbindungen unterbrochen.

Um es zu verhindern, ersetzen Sie es wie folgt:

 command = / sbin / iptables -I EINGABE 1 -s% IP% -p tcp --dport 22 -j AKZEPTIEREN 

Dieser Befehl stellt sicher, dass eine neue Regel am Anfang der INPUT-Kette hinzugefügt wird, um SSH-Verbindungen zu akzeptieren.

Aktivieren und starten Sie Knockd Service

Verwenden Sie das folgende Verfahren, um den Knockd-Dienst in "/ etc / default / knock" zu aktivieren.

Ändern Sie den Wert von 0 auf 1, wie im Screenshot gezeigt.

 START_KNOCKD = 1 

Speichern und schließen Sie anschließend die Datei "/ etc / default / knockd".

Als Nächstes können Sie den Dienst knockd mit einem der folgenden Befehle starten:

 Sudo Service klopfte Start 

oder

 sudo systemctl start geklopft 

Zeit, um Ihren Linux-Server zu testen

Jetzt ist es Zeit, Ihren Linux SSH Server zu testen. Verwenden Sie Folgendes auf Ihrem Computer, um Port 22 unter einer angegebenen IP-Adresse zu öffnen. (Sie müssen auch knockd auf Ihrem Computer installieren)

 klop -v my-server-ip 7000 8000 9000 

Sie müssen "my-server-ip" durch die IP-Adresse Ihres Servers ersetzen.

Sie können jetzt mit dem folgenden Befehl eine Verbindung zu Port 22 SSH herstellen:

 ssh my-server-ip 

Nachdem Sie alles über Port 22 beendet haben, können Sie es mit dem folgenden Befehl schließen:

 klop -v my-server-ip 9000 8000 7000 

Fazit

Mit knockd können Sie sicher sein, dass Ihr SSH-Server mit ausgeklügelten Scannern sicher vor Angreifern geschützt ist. Außerdem sind Sie vollständig für Ihren SSH-Server verantwortlich.