Iptables-Regeln
Revision as of 11:01, 24 November 2025 by 62.91.65.109 (talk) (→alle Regeln besitzen ein Target (Ziel))
Contents
Iptables-Grundlagen
Chains
PREROUTING – Pakete, die in Empfang genommen wurden
INPUT – eingehende Pakete, bevor sie an die Empfängeranwendung ausgeliefert werden
OUTPUT – ausgehende Pakete, die soeben von einer Netzwerkanwendung erzeugt wurden
POSTROUTING – Pakete, die gerade über die Netzwerkschnittstelle gesendet werden sollen
FORWARD – Pakete, die nicht für den lokalen Rechner bestimmt sind, sondern die dieser per
IP-Forwarding (Routing) weiterleitet
Tabellen
nat – ermöglicht die Änderung von IP-Adressen und/oder Ports
Die zulässigen Chains sind OUTPUT, POSTROUTING und PREROUTING.
filter – Diese Tabelle bestimmt die Regeln für erlaubte und verbotene Datenpakete.
Die zulässigen Chains sind INPUT, OUTPUT und FORWARD
mangle – Über diese Tabelle können Sie Datenpaket-Header beliebig modifizieren.
Sie kann mit allen fünf Chains zusammenarbeiten.
alle Regeln besitzen ein Target (Ziel)
ACCEPT – Das Datenpaket wird akzeptiert, also an den nächsten Verarbeitungsschritt weitergereicht
DROP – Das Paket wird ersatzlos verworfen.
REJECT – Dieses Target verwirft auch das Paket, versendet aber zusätzlich eine Ablehnungsmitteilung an den Absender.
QUEUE – Das Paket wird aus dem Kernel in den Userspace weitergereicht,
wo es von einer spezialisierten Anwendung weiterverarbeitet werden kann.
RETURN – Das Paket wird in der ursprünglichen, aufrufenden Chain weiterverarbeitet;
dieses Target entspricht einem Rücksprung aus einem Unterprogramm und eignet sich
somit für benutzerdefinierte Regeln, die an bestimmten Stellen eingeschoben werden.
Kommandozeilenparameter von iptables
-t table oder --table table – Auswahl der Tabelle. -t filter verwendet zum Beispiel die Tabelle filter. -A chain oder --append chain – Die Regel wird an die angegebene Chain angehängt. -A PREROUTING. -I chain [Regelnummer] oder --insert chain [Regelnummer] – fügt eine neue Regel vor der angegebenen ein oder an den Anfang der Chain, wenn keine Nummer angegeben wird.
Iptables-Regeln
Iptables installieren
apt-get update apt-get install iptables
Iptables anzeigen
iptables -L -v
Iptables erstellen
iptables -A <chain> -i <interface> -p <protocol (tcp/udp) > -s <source> --dport <port no> -j <target>
Bsp. für ssh und http(s)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -P INPUT DROP
Etablierte Verbindungen zulassen
iptables -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT
$WAN muss durch die Bezeichnung der NIC ersetzt werden.
Dabei kann mit der Option --state folgende, meist genutzte Möglichkeiten eingestellt werden:
NEW - Das Datenpaket ist dem Server neu, in der Regel durch eine neue Verbindung.
ESTABLISHED - Das Datenpaket ist beim Server bereits ein- und ausgegangen.
RELATED - Das Datenpaket hat eine neue Verbindung gestartet, ist aber in einer bestehenden Verbindung involviert,
z. B. eine FTP-Datenübertragung oder ein ICMP-Fehler.
Pakete anhand der Source-Adresse filtern
iptables -A INPUT -s 10.10.10.1 -j DROP hier kann auch mit Ranges gearbeitet werden: iptables -A INPUT -m iprange --src-range 10.10.10.1-10.10.10.255 -j DROP
Regeln löschen
Alle Regeln löschen iptables -F Einzelne spezifische Regeln werden mit der Option -D gelöscht. Dabei muss zunächst die Nummer der Regel herausgefunden werden: iptables -L --line-numbers Anschließend kann eine spezielle Regel gelöscht werden: iptables -D INPUT 3
Regeln persistent Speichern
Um Regeln persistent zu halten, muss das Tool: Iptables-persistent installiert werden. Dieses sorgt dafür, dass gespeicherte Regeln bei einem Neustart geladen werden. apt-get install iptables-persistent Die Regeln werden in folgenden Dateien gespeichert. Es wird zwischen IPv4 und IPv6 differenziert: /etc/iptables/rules.v4 /etc/iptables/rules.v6 Um die aktuell geltenden Regeln zu speichern, muss folgender Befehl genutzt werden: iptables-save > /etc/iptables/rules.v4 ### oder ip6tables-save > /etc/iptables/rules.v6 Bei einem Neustart werden somit die Regeln automatisch geladen.