Sammlung grundlegender iptables-Regeln für die Linux-Firewall
Der Zweck dieses Leitfadens ist es, einige der gebräuchlichsten iptables-Befehle für Linux-Systeme zu zeigen. iptables ist die Firewall, die in allen Linux-Distributionen integriert ist. Sogar Distributionen wie Ubuntu, das ufw (unkomplizierte Firewall) verwendet, und Red Hat, das firewalld verwendet, übergeben ihre Befehle immer noch an iptables und verwenden sie im Hintergrund.
Die Beherrschung von iptables oder zumindest die Vertrautheit mit einigen der grundlegendsten Befehle ist für Linux-Administratoren unerlässlich. Selbst gelegentliche Linux-Benutzer können davon profitieren, die Grundlagen der iptables-Firewall zu verstehen, da sie möglicherweise irgendwann einige kleinere Konfigurationen vornehmen müssen. Verwenden Sie einige der folgenden Beispiele, um sich mit der iptables-Syntax vertraut zu machen und eine Vorstellung davon zu bekommen, wie sie zum Schutz Ihres Systems funktioniert.
Sie sollten iptables-Regeln nicht auf ein Produktionssystem anwenden, bis Sie mit ihrer Funktionsweise vertraut sind. Seien Sie auch vorsichtig, wenn Sie Regeln auf Remote-Systeme (einen Computer, mit dem Sie eine SSH-Sitzung eingerichtet haben) anwenden, da Sie sich versehentlich aussperren können, wenn Sie die falsche Regel eingeben.
In diesem Tutorial lernen Sie:
- Sammlung grundlegender iptables-Regeln für die Linux-Firewall
Anzeigen der iptables-Regeln, die auf unserem Linux-System konfiguriert sind
Beispiele für iptables-Befehle
Seien Sie sich bewusst, dass die Reihenfolge Ihrer iptables-Regeln wichtig ist. Wenn Ihr System ein Paket mit Netzwerkverkehr empfängt, gleicht iptables es mit der ersten Regel ab, die es kann. Wenn Sie also eine Regel zum Akzeptieren von SSH-Datenverkehr haben, gefolgt von einer Regel zum Verweigern von SSH-Datenverkehr, akzeptiert iptables den Datenverkehr immer, da diese Regel vor der Verweigerungsregel in der Kette steht. Sie können die Reihenfolge der Regeln jederzeit ändern, indem Sie eine Regelnummer in Ihrem Befehl angeben.
Regel: iptables soll alle ausgehenden Netzwerkverbindungen ablehnen
Die zweite Zeile der Regeln lässt nur aktuelle ausgehende und aufgebaute Verbindungen zu. Dies ist sehr nützlich, wenn Sie über SSH oder Telnet am Server angemeldet sind.
iptables -F OUTPUT iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -j REJECTRegel: iptables soll alle eingehenden Netzwerkverbindungen ablehnen
iptables -F INPUT iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -j REJECTRegel: iptables soll alle Netzwerkverbindungen ablehnen
Diese Regel verwirft und blockiert alle Netzwerkverbindungen, unabhängig davon, ob sie eingehend oder ausgehend sind. Noch wichtiger ist, dass dies auch die aktuell bestehenden Verbindungen umfasst.
iptables -F iptables -A INPUT -j REJECT iptables -A OUTPUT -j REJECT iptables -A FORWARD -j REJECTRegel: iptables verwirft eingehende Ping-Anfragen
Diese iptables-Regel verwirft alle eingehenden Ping-Anfragen. Beachten Sie, dass es möglich ist, REJECT anstelle von DROP zu verwenden. Der Unterschied zwischen DROP und REJECT besteht darin, dass DROP das eingehende Paket im Hintergrund verwirft, während REJECT dazu führt, dass ein ICMP-Fehler zurückgegeben wird.
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP-
Regel: iptables verwirft ausgehende Telnet-Verbindungen
Diese iptables-Regel blockiert jeglichen ausgehenden Datenverkehr zu jedem Host, bei dem der Zielport 23 (Telnet) ist.
iptables -A OUTPUT -p tcp --dport telnet -j REJECT Regel: iptables zum Ablehnen eingehender Telnet-Verbindungen
Diese iptables-Regel lehnt alle eingehenden Verbindungsanforderungen an einen lokalen Port 23 ab.
iptables -A INPUT -p tcp --dport telnet -j REJECTRegel: iptables soll ausgehende SSH-Verbindungen ablehnen
Diese iptables-Regel lehnt alle ausgehenden Verbindungen ab, die von einem lokalen Port 22 (ssh) kommen.
iptables -A OUTPUT -p tcp --dport ssh -j REJECTRegel: iptables soll eingehende SSH-Verbindungen ablehnen
Lehnen Sie alle eingehenden Verbindungen zu einem lokalen Port 22 (ssh) ab.
iptables -A INPUT -p tcp --dport ssh -j REJECTRegel: iptables soll den gesamten eingehenden Datenverkehr mit Ausnahme von SSH und lokalen Verbindungen ablehnen
Diese Regeln lehnen alle eingehenden Verbindungen zum Server ab, mit Ausnahme derjenigen über Port 22 (SSH). Es akzeptiert auch Verbindungen an der Loopback-Schnittstelle.
iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport ssh -j ACCEPT iptables -A INPUT -j REJECT-
Regel: iptables akzeptiert eingehende SSH-Verbindungen von einer bestimmten IP-Adresse
Mit dieser iptables-Regel blockieren wir alle eingehenden Verbindungen zu Port 22 (ssh) mit Ausnahme des Hosts mit der IP-Adresse 77.66.55.44. Das bedeutet, dass nur ein Host mit der IP 77.66.55.44 in der Lage sein wird, SSH zu verwenden.
iptables -A INPUT -p tcp -s 77.66.55.44 --dport ssh -j ACCEPT iptables -A INPUT -p tcp --dport ssh -j REJECT Regel: iptables akzeptiert eingehende SSH-Verbindungen von einer bestimmten MAC-Adresse
Mit dieser iptables-Regel blockieren wir alle eingehenden Verbindungen zu Port 22 (ssh) mit Ausnahme des Hosts mit der MAC-Adresse 00:e0:4c:f1:41:6b. Mit anderen Worten, alle SSH-Verbindungen sind auf einen einzelnen Host mit der MAC-Adresse 00:e0:4c:f1:41:6b beschränkt.
iptables -A INPUT -m mac --mac-source 00:e0:4c:f1:41:6b -p tcp --dport ssh -j ACCEPT iptables -A INPUT -p tcp --dport ssh -j REJECTRegel: iptables zum Ablehnen eingehender Verbindungen an einem bestimmten TCP-Port
Die folgende iptables-Regel verwirft den gesamten eingehenden Datenverkehr an TCP-Port 3333.
iptables -A INPUT -p tcp --dport 3333 -j REJECTRegel: iptables soll alle eingehenden Verbindungen auf einer bestimmten Netzwerkschnittstelle verwerfen
Die folgende Regel verwirft eingehenden Datenverkehr auf einer bestimmten Netzwerkschnittstelle, der aus dem Subnetz 192.168.0.0/16 stammt. Dies ist sehr nützlich bei dem Versuch, alle gefälschten IP-Adressen zu löschen. Wenn es sich bei eth0 um eine externe Netzwerkschnittstelle handelt, sollte kein eingehender Datenverkehr aus dem internen Netzwerk auf die eth0-Netzwerkschnittstelle treffen.
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROPRegel: iptables zum Erstellen einer einfachen IP-Maskierung
Mit der folgenden Regel wird ein einfaches IP-Maskierungsgateway erstellt, das allen Hosts im selben Subnetz den Zugriff auf das Internet ermöglicht. Die unten angegebene eth0 ist eine externe Schnittstelle, die mit dem Internet verbunden ist.
echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o $EXT_IFACE -j MASQUERADERegel: Den gesamten eingehenden Telnet-Datenverkehr mit Ausnahme der angegebenen IP-Adresse ablehnen
Die folgende iptables-Regel lehnt den gesamten eingehenden Telnet-Datenverkehr mit Ausnahme der Verbindungsanforderung von IP 222.111.111.222 ab
iptables -A INPUT -t filter ! -s 222.111.111.222 -p tcp --dport 23 -j REJECTRegel: Den gesamten eingehenden SSH-Datenverkehr mit Ausnahme des angegebenen IP-Adressbereichs ablehnen
Die folgende iptables-Regel lehnt den gesamten eingehenden SSH-Datenverkehr ab, mit Ausnahme von Verbindungsanfragen aus dem IP-Adressbereich 10.1.1.90 – 10.1.1.1.100.
Entfernen des Negators "!" aus der folgenden Regel: Lehnen Sie den gesamten SSH-Datenverkehr ab, der aus dem IP-Adressbereich 10.1.1.90 – 10.1.1.100 stammt.
iptables -A INPUT -t filter -m iprange ! --src-range 10.1.1.90-10.1.1.100 -p tcp --dport 22 -j REJECTRegel: iptables soll den gesamten ausgehenden Datenverkehr zu einem bestimmten Remote-Host ablehnen
Die folgende iptables-Regel lehnt den gesamten ausgehenden Datenverkehr zu einem Remotehost mit der IP-Adresse 222.111.111.222 ab
iptables -A OUTPUT -d 222.111.111.222 -j REJECTRegel: iptables um den Zugriff auf eine bestimmte Website zu blockieren
Die folgende iptables-Regel blockiert den gesamten eingehenden Datenverkehr von facebook.com, bei dem der Quellport Port 80/www ist.
iptables -A INPUT -s facebook.com -p tcp --sport www -j DROPBeachten Sie, dass die obige iptables-Regel sowohl den Zugriff auf facebook.com als auch auf www.facebook.com blockiert.
Abschließende Gedanken
In diesem Leitfaden haben wir eine Sammlung grundlegender iptables-Regeln für Linux gesehen. Dazu gehörten einige der gängigsten Regeln, die normalerweise auf Systeme angewendet werden, wie z. B. das Blockieren von SSH-Verbindungen, die nicht von einer bestimmten IP-Adresse stammen. Die Verwendung dieser Regeln trägt dazu bei, Ihren Server vor Angriffen zu schützen und die Sicherheit insgesamt zu erhöhen. Fühlen Sie sich frei, diese Beispiele an Ihre eigenen Szenarien anzupassen.
