Wenn die Iptables des Kernels vollständig leer sind ( iptables -F
), wird dies tun, was Sie fragen:
# iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP
Dies besagt, dass alle LAN-Adressen mit TCP-Port 22 kommunizieren dürfen, dass localhost die gleiche Überlegung erhält (ja, 127. * nicht nur 127.0.0.1) und dass Pakete von jeder anderen Adresse, die nicht mit diesen ersten beiden Regeln übereinstimmen, kurzerhand abgelegt werden der kleine Eimer . Sie können REJECT
anstelle von DROP
eine aktive Zurückweisung (TCP RST) verwenden, anstatt TCP-Port 22 zu einem schwarzen Loch für Pakete zu machen.
Wenn Ihr LAN den 192.168.0. * -Block nicht verwendet, müssen Sie natürlich die IP-Adresse und die Maske in der ersten Zeile ändern, um sie an das IP-Schema Ihres LAN anzupassen.
Diese Befehle tun möglicherweise nicht das, was Sie möchten, wenn in Ihrer Firewall bereits einige Regeln konfiguriert sind. (Sagen Sie dies iptables -L
als root, um es herauszufinden.) Es kommt häufig vor, dass eine der vorhandenen Regeln die Pakete erfasst, die Sie filtern möchten, sodass das Anhängen neuer Regeln keine Auswirkungen hat. Während Sie verwenden können , -I
statt -A
mit dem iptables
Befehl neuen Regeln in der Mitte einer Kette spleißen , anstatt sie anhängt, dann ist es in der Regel besser, um herauszufinden , wie die Ketten beim Systemstart bevölkert bekommen und das Verfahren zu ändern , so immer Ihre neuen Regeln in installiert werden die richtige Reihenfolge.
RHEL 7+
Bei neueren RHEL-Systemen ist dies am besten über die Verwendung firewall-cmd
der entsprechenden GUI möglich. Hiermit wird dem firewalld
Daemon des Betriebssystems mitgeteilt, was Sie möchten. Dies ist das, was tatsächlich aufgefüllt und bearbeitet wird, was Sie über sehen iptables -L
.
RHEL 6 und früher
Auf älteren RHEL-Systemen können Sie die Firewall-Ketten am einfachsten bei der Bestellung ändern, indem Sie sie bearbeiten /etc/sysconfig/iptables
. Die GUI- und TUI-Firewall-Tools des Betriebssystems sind recht simpel. Wenn Sie also anfangen, komplexere Regeln wie diese hinzuzufügen, ist es besser, zu guten alten Konfigurationsdateien zurückzukehren. Beachten Sie, dass Sie Ihre Änderungen verlieren können, wenn Sie jemals die Firewall-Tools des Betriebssystems verwenden, um die Konfiguration zu ändern, da dieses möglicherweise nicht weiß, wie es mit handgefertigten Regeln wie diesen umgeht.
Füge so etwas zu dieser Datei hinzu:
-A RH-Firewall-1-INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 22 -j DROP
Wo Sie es hinzufügen, ist das schwierige Stück. Wenn Sie in dieser Datei eine Zeile finden, von der die Rede ist --dport 22
, ersetzen Sie sie einfach durch die drei obigen Zeilen. Andernfalls sollte es wahrscheinlich vor der ersten vorhandenen Zeile mit der Endung enden -j ACCEPT
. Im Allgemeinen müssen Sie sich mit der Funktionsweise von iptables vertraut machen. An diesem Punkt ist die richtige Einfügemarke offensichtlich.
Speichern Sie diese Datei und sagen Sie dann, dass Sie service iptables restart
die Firewall-Regeln neu laden möchten. Stellen Sie sicher, dass Sie dies tun, während Sie in der Konsole angemeldet sind, falls Sie die Änderungen fetten! Sie möchten sich nicht von Ihrem Computer ausschließen, während Sie über SSH angemeldet sind.
Die Ähnlichkeit zu den obigen Befehlen ist kein Zufall. Der größte Teil dieser Datei besteht aus Argumenten für den iptables
Befehl. Die Unterschiede zu den oben genannten bestehen darin, dass der iptables
Befehl gelöscht wird und der INPUT
Kettenname zur speziellen RHEL-spezifischen RH-Firewall-1-INPUT
Kette wird. (Wenn Sie die Datei genauer untersuchen möchten, sehen Sie weiter oben in der Datei, wo sie die INPUT
Kette im Wesentlichen umbenannt haben . Warum? Kann ich nicht sagen.)