2.6.2.4. IPTables Übereinstimmungsoptionen
Verschiedene Netzwerkprotokolle bieten verschiedene spezielle Übereinstimmungsoptionen, die konfiguriert werden können, um auf bestimmte Pakete zuzutreffen, die diese Protokolle verwenden. Das Protokoll muss jedoch zuerst im
iptables
-Befehl spezifiziert werden. So aktiviert -p <protocol-name>
z. B. Optionen für das angegebene Protokoll. Beachten Sie, dass Sie auch die Protokoll-ID anstelle des Protokollnamens verwenden können. Werfen Sie einen Blick auf die folgenden Beispiele, die jeweils denselben Effekt haben:
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
iptables -A INPUT -p 5813 --icmp-type any -j ACCEPT
iptables -A INPUT -p 5813 --icmp-type any -j ACCEPT
Die Definition von Diensten wird in der Datei
/etc/services
geliefert. Im Interesse der Lesbarkeit wird die Verwendung der Dienstnamen anstelle der Portnummern empfohlen.
Warnung
Sichern Sie die
/etc/services
-Datei, um ein unerlaubtes Bearbeiten zu verhindern. Ist diese Datei editierbar, können Angreifer sie dazu missbrauchen, Ports auf Ihrem Rechner zu aktivieren, die Sie geschlossen hatten. Um diese Datei abzusichern, führen Sie als Root folgende Befehle aus:
chown root.root /etc/services chmod 0644 /etc/services chattr +i /etc/services
[root@myServer ~]# chown root.root /etc/services
[root@myServer ~]# chmod 0644 /etc/services
[root@myServer ~]# chattr +i /etc/services
Auf diese Weise wird verhindert, dass die Datei umbenannt oder gelöscht wird, bzw. Links zu ihr erstellt werden.
2.6.2.4.1. TCP-Protokoll
Folgende Übereinstimmungsoptionen stehen für das TCP-Protokoll zur Verfügung (
-p tcp
):
--dport
— Definiert den Ziel-Port für das Paket.Verwenden Sie den Namen eines Netzwerkdienstes (wie z. B. www oder smtp), eine Portnummer oder einen Bereich von Portnummern, um diese Option zu konfigurieren.Um einen Bereich von Portnummern anzugeben, trennen Sie die zwei Nummern durch einen Doppelpunkt (:
), z. B.:-p tcp --dport 3000:3200
. Der größtmögliche Bereich ist0:65535
.Sie können auch ein Ausrufezeichen (!
) vor der--dport
-Option verwenden, um mit allen Paketen, die nicht diesen Netzwerkdienst oder diesen Port verwenden, übereinzustimmen.Um die Namen und Aliasse von Netzwerkdiensten und den von ihnen verwendeten Portnummern zu durchsuchen, werfen Sie einen Blick auf die/etc/services
-Datei.Die Übereinstimmungsoption--destination-port
ist dasselbe wie--dport
.--sport
— Setzt den Ursprungsport des Pakets unter Verwendung derselben Optionen wie--dport
. Die Übereinstimmungsoption--source-port
ist dasselbe wie--sport
.--syn
— Gilt für alle TCP-Pakete, die eine Kommunikation initialisieren sollen, allgemein SYN-Pakete genannt. Alle Pakete, die Nutzdaten enthalten, werden nicht bearbeitet.Wird ein Ausrufezeichen (!
) vor der--syn
-Option verwendet, wird die Regel nur auf Pakete angewendet, bei denen es sich nicht um SYN-Pakete handelt.--tcp-flags <tested flag list> <set flag list>
— Ermöglicht TCP-Paketen mit bestimmten Bits (Flags), mit einer Regel übereinzustimmen.Die Übereinstimmungsoption--tcp-flags
akzeptiert zwei Parameter. Beim ersten Parameter handelt es sich um eine Maske, eine kommagetrennte Liste mit Flags, die im Paket zu untersuchen sind. Der zweite Parameter ist eine kommagetrennte Liste mit Flags, die gesetzt sein müssen, um eine Übereinstimmung mit der Regel zu erhalten.Mögliche Flags sind:ACK
FIN
PSH
RST
SYN
URG
ALL
NONE
Eineiptables
-Regel, die folgende Spezifikation enthält, trifft beispielsweise nur auf TCP-Pakete zu, in denen das SYN-Flag aktiviert und die ACK- und FIN-Flags deaktiviert sind:--tcp-flags ACK,FIN,SYN SYN
Verwenden Sie das Ausrufezeichen (!
) hinter--tcp-flags
, um den Effekt der Übereinstimmungsoption umzukehren.--tcp-option
— Versucht eine Übereinstimmung anhand von TCP-spezifischen Optionen, die innerhalb eines bestimmten Pakets eingestellt werden können. Diese Übereinstimmungsoption kann ebenfalls mit dem Ausrufezeichen (!
) umgekehrt werden.