Auf der Netfilter-Website befinden sich Links zu offiziellen und empfohlenen Dokumentationen .
Dies ist kein neues Thema, die Ressourcen sind grenzenlos .
Die meisten grundlegenden Befehle sind ziemlich intuitiv und können leicht auf die Manpage verweisen .
netfilter, die Kernel-Technologie, die die Paketfilterung ermöglicht, ist weit fortgeschritten. Es gibt zusätzliche Tabellen, mit denen Pakete entstellt, übersetzt und auf andere Weise das Routing beeinflusst werden können. Das iptablesDienstprogramm ist das Userland-Tool für die Interaktion mit Netfilter. Wenn Sie mehr über erweiterte Funktionen erfahren möchten, empfehlen wir Ihnen, auf die oben genannte Dokumentation zu verweisen. Für eine Einführung in die Grundfunktionalität lesen Sie bitte weiter.
So listen Sie alle vorhandenen Regeln auf:
iptables -L -n
-n Verhindert, dass Iptables IPS auflösen, was zu einer schnelleren Ausgabe führt.
Die Standardtabelle ist die filterTabelle, mit der grundlegende Firewallregeln auf die drei Ketten angewendet werden. Die drei Standardketten in der filterTabelle sind INPUT, OUTPUTund FORWARD.
Die Ketten sind weitgehend selbsterklärend. Die INPUT-Kette wirkt sich auf eingehende Pakete aus, die OUTPUT-Kette auf lokal generierte Pakete und schließlich auf FORWARD-Pakete, die durch das System geleitet werden.
Unter den Zielen, die Sie angeben können, können Sie DROPPakete, dh einfach ignorieren und nicht antworten. Sie können REJECTPakete senden, bei denen eine ICMP-Antwort an die Quelle der Ablehnung gesendet wird. Schließlich können Sie ACCEPTsie, wodurch die Pakete weiterleiten können.
Oft mit einer Außenverkleidung Firewall die Standardauswahl wird DROPim Gegensatz zu REJECT, da sie die sichtbaren Fußabdruck Ihres Netzwerks über das Internet reduziert. Beispielsweise würde eine IP, die Dienste ansonsten auf einen bestimmten Host beschränkt, eine geringere Sichtbarkeit aufweisen DROP.
Beachten Sie, -Abedeutet an das Ende der Kette anzuhängen. Wenn Sie nach oben einfügen möchten, können Sie verwenden -I. Alle Regeln werden von oben nach unten abgearbeitet. -Dzum Löschen.
Auf DROPein eingehendes Paket von 192.168.235.235:
iptables -A INPUT -s 192.168.235.235 -j DROP
Dies springt zu dem DROPZiel für alle Protokolle, die von dieser IP stammen.
Akzeptieren:
iptables -A INPUT -s 192.168.235.235 -j ACCEPT
So verhindern Sie den Zugriff auf diese IP von Ihrem lokalen Server oder Netzwerk aus:
iptables -A OUTPUT -d 192.168.235.235 -j DROP
Sie können das -pProtokoll, die -sQuelle des Pakets, das -dZiel des Pakets, den Zielport --dport, den Quellport --sportund viele andere Flags angeben , die sich auf die Behandlung der Pakete durch die Regel auswirken.
Wenn Ihre Standard - INPUTPolitik war DROPund Sie wollten alle am ermöglichen 192.168.123.0/24Subnetz Zugriff SSH auf Ihrem Server, hier ein Beispiel:
iptables -A INPUT -s 192.168.123.0/24 -p tcp --dport 22 -j ACCEPT
Richtig, Sie können auch die CIDR-Notation verwenden !
Im Allgemeinen gilt die beste Standardrichtlinie DROPfür alle Ketten. Jede Kette hat eine Standardrichtlinie, die durch das -PFlag angegeben wird . Auch wenn Sie Ihre Richtlinie auf Standard festgelegt haben DROP, wird empfohlen, dass der endgültige Eintrag in einer Kette ebenfalls ein ist DROP.
So ändern Sie beispielsweise die Richtlinie DROPfür die Ketten INPUT, FORWARD und OUTPUT:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Seien Sie vorsichtig , wenn Sie die Standardrichtlinie von DROP for INPUT auf einem Remote-System festlegen, ohne sich zuvor den SSH-Zugriff zu erlauben, können Sie den Zugriff auf das System verhindern. Auf einem Remote-System können Sie aus Sicherheitsgründen eine temporäre crontab angeben, um alle 5 Minuten alle Regeln zu löschen.
So löschen Sie alle Regeln und lassen den gesamten Datenverkehr zu:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -X
iptables -F
Beachten Sie, dass -Xalle erstellten Ketten entfernt werden. -Flöscht alle Regeln.
Es gibt native Tools zum Speichern und Wiederherstellen der Regeln. Insbesondere iptables-saveund iptables-restore. Die meisten modernen Linux-Distributionen haben saveund restorefunktionieren in einer mit dem System gelieferten iptables init-Datei.
Es gibt andere Best Practices für die Firewall, z. B. das Verwerfen von fehlerhaften Paketen und andere Arten von unerwünschtem Datenverkehr. Dies ist ein Vorteil der Verwendung eines Front-End-Dienstprogramms wie Shorewall , da viele dieser Richtlinien standardmäßig implementiert werden. Trotzdem stimme ich Ihrem Ansatz zu und bevorzuge es, meine eigenen Regeln auch direkt beizubehalten. Dieselben Best Practices können ohne Front-End implementiert werden.