Ping ist ein Netzwerkverwaltungsprogramm, das zum Testen der Verfügbarkeit eines Systems in einem IP-Netzwerk verwendet wird. Ping wird auch verwendet, um die Qualität der Netzwerkverbindung zu testen, indem die Umlaufzeit und Paketverluste überwacht werden.
Andererseits verwenden Netzwerkeindringlinge und Hacker Ping auch, um Netzwerksubnetze zu identifizieren, um potenzielle Hosts zu finden oder um ICMP-Flood-Angriffe durchzuführen. Daher empfiehlt es sich, Ping-Anfragen an Ihre Server zu blockieren, um jegliche Art von Angriff zu verhindern.
Hier bei LinuxAPT, als Teil unserer Server Management Services , helfen wir unseren Kunden regelmäßig bei Linux-bezogenen Aufgaben.
In diesem Zusammenhang werden wir untersuchen, wie Ping-Anfragen an Linux Server blockiert werden können.
Wie blockiert / entsperrt man Ping-Anfragen an Linux Server?
Hier arbeiten wir mit Ubuntu 20.04 LTS mit einem Benutzer mit sudo-Berechtigungen.
Ping sendet ein ICMP-Paket (Echo-Request) an das Zielsystem und erhält dann ein Antwort-ICMP-Paket (Echo-Reply). Unter Linux sendet der Ping-Befehl weiterhin ICMP-Pakete, bis Sie ihn mit Strg+C stoppen.
Um Ping-Anfragen zu blockieren, müssen Sie die an Ihren Server gesendeten ICMP-Echo-Anfragen ignorieren/blockieren.
Es gibt zwei Möglichkeiten, wie Sie ICMP-Echo-Anforderungen an den Linux-Server blockieren/entblocken können.
ich. Durch Kernel-Parameter.
ii. Durch iptables.
Fangen wir jetzt an.
Wie blockiert/entsperrt man Ping-Anfragen durch Kernel-Parameter?
Über Kernel-Parameter können Sie Ping-Anfragen vorübergehend oder dauerhaft blockieren. Kernel-Parameter können über den Befehl sysctl, das Verzeichnis /sys/proc und die Datei /etc/sysctl.conf geändert werden.
Wie blockiert/entsperrt man Ping-Anfragen vorübergehend?
Der Befehl sysctl in Linux wird zum Lesen und Schreiben von Kernelparametern im Verzeichnis /proc/sys verwendet. Mit diesem Befehl können wir Kernelparameter einrichten, um Ping-Anfragen zu blockieren/entblocken. Der Kernel-Parameter net.ipv4.icmp_echo_ignore_all steuert, ob das System auf den ICMP-Echo-Request antworten soll. Der Standardwert ist „0“, was bedeutet, dass auf die ICMP-Anfrage geantwortet wird.
So blockieren Sie die Ping-Anfrage mit dem Befehl sysctl:
Um die Ping-Anfrage zu blockieren, geben Sie im Terminal den folgenden Befehl ein:
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1
Dieser Befehl setzt den Kernel-Parameter auf '1', was bedeutet, dass alle ICMP-Anfragen ignoriert werden.
Jetzt werden alle Ping-Anfragen an Ihr System blockiert und der Absender erhält keine Antwort.
So entsperren Sie den Ping-Request-sysctl-Befehl:
Um die Ping-Anforderungen zu entsperren, führen Sie denselben Befehl erneut aus, indem Sie den Parameterwert auf den Standardwert „0“ ändern:
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=0
Alternativ können Sie die Ping-Anforderungen blockieren, indem Sie den Wert des Kernel-Parameters im Verzeichnis /proc/sys mit dem echo-Befehl ändern.
Um diese Methode zu verwenden, müssen Sie den Befehl jedoch als root ausführen.
Geben Sie dann im Terminal den folgenden Befehl aus:
$ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Um die Ping-Anfragen zu entsperren, lautet der Befehl:
$ echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Wie kann man Ping-Anfragen dauerhaft blockieren?
Kernel-Parameter können auch über die Datei /etc/sysctl.conf geändert werden. Mit dieser Datei können Sie Ping-Anfragen an Ihren Server dauerhaft blockieren.
So blockieren Sie die Ping-Anfrage über die Datei sysctl.conf:
ich. Um die Ping-Anfrage an Ihr System zu blockieren, bearbeiten Sie die Datei /etc/sysctl.conf:
$ sudo nano /etc/sysctl.conf
ii. Fügen Sie dann die folgende Zeile in die Datei ein:
net.ipv4.icmp_echo_ignore_all = 1
iii. Speichern und schließen Sie die Datei.
iv. Geben Sie dann den folgenden Befehl im Terminal ein, um diese Konfiguration ohne Neustart anzuwenden:
$ sysctl -p
So entsperren Sie die Ping-Anforderung über die Datei sysctl.conf:
ich. Bearbeiten Sie zum Entsperren von Ping-Anforderungen die Datei /etc/sysctl.conf:
$ sudo nano /etc/sysctl.conf
ii. Ändern Sie dann den Wert von net.ipv4.icmp_echo_ignore_all auf „0“:
net.ipv4.icmp_echo_ignore_all = 0
iii. Speichern und schließen Sie die Datei.
iv. Geben Sie dann den folgenden Befehl im Terminal ein, um diese Konfiguration ohne Neustart anzuwenden:
$ sysctl -p
Wie blockiert/entsperrt man Ping-Anfragen mit iptables?
Iptables ist ein Firewall-Dienstprogramm in Linux, das eingehenden und ausgehenden Datenverkehr basierend auf bestimmten Regeln steuert. Es ist im Ubuntu-System vorinstalliert. Falls es im System fehlt, können Sie es mit dem folgenden Befehl im Terminal installieren:
$ sudo apt install iptables
So blockieren Sie die Ping-Anfrage mit iptables:
ich. Um Ping-Anfragen an Ihr System zu blockieren, geben Sie den folgenden Befehl im Terminal ein:
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j REJECT
Dabei wird das A-Flag verwendet, um eine Regel in iptables hinzuzufügen, und icmp-type 8 ist die ICMP-Typnummer, die für die Echoanforderung verwendet wird.
Der obige Befehl fügt eine Regel in der Firewall hinzu, die alle eingehenden Ping-Anfragen an Ihr System blockiert. Durch Hinzufügen dieser Regel wird jedem, der die Ping-Anfrage an Ihr System sendet, die Meldung „Zielport nicht erreichbar“ angezeigt.
ii. Wenn Sie nicht möchten, dass diese Meldung erscheint, verwenden Sie den folgenden Befehl und ersetzen Sie REJECT durch DROP:
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j DROP
Jetzt sendet jemand die Ping-Anfrage an Ihr System.
So entsperren Sie die Ping-Anfrage mit iptables:
ich. Um Ping-Anfragen an Ihren Server zu entsperren, geben Sie den folgenden Befehl in Terminal ein:
$ sudo iptables -D INPUT -p icmp --icmp-type 8 -j REJECT
Wobei das D-Flag verwendet wird, um eine Regel in iptables zu löschen, und icmp-type 8 die ICMP-Typnummer ist, die für eine Echoanforderung verwendet wird.
ii. Um diese Regeln nach einem Systemneustart dauerhaft zu machen, benötigen Sie das Paket iptables-persistent. Führen Sie den folgenden Befehl im Terminal aus, um iptables-persistent zu installieren:
$ sudo apt install iptables-persistent
Sie werden aufgefordert zu bestätigen, ob Sie mit der Installation fortfahren möchten oder nicht. Drücken Sie y, um fortzufahren, woraufhin das System mit der Installation beginnt und nach Abschluss einsatzbereit ist.
Führen Sie nach dem Hinzufügen oder Löschen einer Regel die folgenden Befehle im Terminal aus, damit sie den Systemneustart überleben.
$ sudo netfilter-persistent save
$ sudo netfilter-persistent reload
Um alle zu Ihren iptables hinzugefügten Regeln anzuzeigen, geben Sie den folgenden Befehl im Terminal ein:
$ sudo iptables -L