Firewalling unter Linux
Die Befehle und Optionen des Programms ipchains
Befehle und Optionen übergibt man in folgender Reihenfolge an ipchains: ipchains <Befehl> <Option1> <Option2> <Option3> u.s.w.
Eine Liste der Befehle von ipchains:
Befehl | Kurzbezeichnung | Parameter | Beschreibung |
---|---|---|---|
--add | -A | <name_der_regelliste> | Hängt die nachfolgende Regel an die Regelliste an |
--delete | -D | <n_d_rl> <Position/Regel> | Löscht die Regel aus der Regelliste. Es muss entweder die Position der Regel (1-n) oder die Regel selbst angegeben werden. |
--insert | -I | <n_d_rl> <Position> <Regel> | Fügt die Regel an der angegebenen Position in die Regelliste ein. Wählt man als Position 1, so wird die Regel an den Anfang der Regelliste geschrieben. |
--replace | -R | <n_d_rl> <Position> <Regel> | Ersetzt die Regel an der angegebenen Position in der Regelliste durch die neue Regel. |
--list | -L | [ <n_d_rl> ] | Zeigt alle Regellisten oder die Regelliste und all ihre Regeln an. |
--flush | -F | [ <n_d_rl> ] | Löscht alle Regellisten oder alle Regeln in der angegebenen Regelliste. |
--zero | -Z | [ <n_d_rl> ] | Setzt Null-Zähler in allen Regellisten oder nur in der angegebenen Regelliste |
--check | -C | <n_d_rl> | Testet die Reaktion der Regelliste auf dieses Paket |
--new | -N | <n_d_rl> | Legt eine neue (nicht-Standard) Regelliste an |
--delete | -X | <n_d_rl> | Löscht eine leere (!) nicht-Standard Regelliste |
--policy | -P | <n_d_rl> <ACCEPT/REJECT/DENY> | Legt die Standard-Aktion für die Regelliste fest. Diese wird nur ausgeführt, wenn keine der vorhandenen Regeln auf das Paket zutrifft. |
--masquerade | -M | -L | Gibt eine Liste der aktuellen masqerading-Verbindungen aus |
--masquerade | -M | -S <tcp-Zeit> <tcpfin-Zeit> <udp-Zeit> | Setzt die »masquerading timeout«-Zeiten (in Sekunden) |
Eine Liste der Optionen von ipchains:
Option | Kurzbezeichnung | Parameter | Beschreibung |
---|---|---|---|
--bidirectional | -b | Erstellt automatisch auch eine Regel für die entgegengesetzte Richtung, bei der die Quell- und Zieladresse vertauscht sind, um den Pakettransfer in beide Richtungen zu erlauben. | |
--proto | -p | [!] <Protokoll> | Protokoll der Pakete (Protokollnummer oder Kurzbezeichnung, wie tcp, udp, icmp, u.s.w.) |
--source | -s | [!] <address>[/<mask>] [!] [<port>[:<port>]] | Spezifiziert die Quell-Adresse und (optional) den Quell-Port |
--source-port | [!] [<port>[:<port>]] | Spezifiziert den Quell-Port der Pakete, wenn die Angabe -s in der Regel fehlen sollte | |
--destination | -d | [!] <address>[/<mask>] [!] [<port>[:<port>]] | Spezifiziert die Ziel-Adresse und (optional) den Ziel-Port |
--destination-port | [!] [<port>[:<port>]] | Spezifiziert den Ziel-Port der Pakete, wenn die Angabe -d in der Regel fehlen sollte | |
--icmp-type | [!] <typ> | Legt den ICMP-Paket-Typ der Pakete fest (Nummer oder Bezeichnung des Typs angeben) | |
--interface | -i | [!]<Netzwerkschnittstelle> [+] | Legt die Netzwerkschnittstelle fest (z.B. eth0, ppp0). Ein + repräsentiert alle Schnittstellen dieses Typs. Beachte: In der forward-Regelliste das Interface, an welches das Paket weitergeleitet werden soll (also das Ziel des Forwarding)! |
--jump | -j | <n_d_rl / ACCEPT / REJECT / DENY / MASQ / [<port>] REDIRECT> | Aktion, die mit den Paketen ausgeführt wird, auf die die Regel passt. Diese Pakete können auch an eine nicht-Standard Regelliste weitergegeben werden. Trifft in einer solchen nicht-Standard Regelliste keine Regel auf das Paket zu, so wird es wieder an die Ursprungsliste zurückgegeben und diese weiter abgearbeitet. |
--numeric | -n | Gibt die Nummern von IP-Adressen und Ports aus | |
--log | -l | Dieses Paket wird in einer Logdatei (/var/log/messages) durch syslogd vermerkt | |
--output | -o | [<maximale_Groesse>] | Gib passende Pakete auf dem »netlink device« aus |
--TOS | -t | <neue Besetzung des ToS-Feldes> | Ändert das ToS-Feld im Paket |
--verbose | -v | Erzeugt eine ausführliche Ausgabe | |
--exact | -x | Zeigt die Paket- und Byte-Zähler an | |
[!] --fragment | [!] -f | Beachte nur das zweite oder alle weiteren Paketfragmente | |
[!] --syn | [!] -y | Bezeichnet TCP-Pakete, bei denen das SYN-Bit gesetzt und die ACK und FIN-Bits nicht gesetzt sind. Also nur die Pakete, die eine TCP-Verbindung aufbauen wollen. | |
[!] --version | [!] -V | Gib die Paketversion aus |
Hinweise zu den Befehlen und Optionen:
Das Zeichen »!« negiert die jeweilige Option (Eigenschaft des Pakets). So steht z.B. ! -p www
für alle Protokolle außer www, ! -y
steht für alle Pakete, deren SYN-Bit nicht gesetzt ist, usw.
IP-Adressen und Subnetze lassen sich als Adresse/Netzmaske entweder in der Form 192.168.0.0/255.255.255.0 oder in der Form 192.168.0.0/24 angeben, wobei ich die erste empfehlen würde.
Anstatt einen einzelnen Port kann man mit Hilfe eines »:« auch einen ganzen Bereich von Ports angeben. Beispiel: 1000:2000 repräsentiert alle Ports mit einer Nummer von 1000 bis 2000.
1024: bedeutet alle Ports mit einer Nummer >= 1024
:1024 bedeutet alle Ports mit einer Nummer <= 1024
Die Port-Nummern können auch durch die Namen der entsprechenden Dienste ersetzt werden, sofern in der Datei /etc/services eine eindeutige Zuordnung der Namen zu den Port-Nummern stattfindet.
Falls Sie das Protokoll hinter -p angeben wollen, so können Sie eine Liste der möglichen Protokolle in der Datei /etc/protocols einsehen.
Bei der Angabe der Netzwerk-Schnittstelle hinter -i repräsentiert ein »+« anstelle der Interfacenummer alle Netzwerk-Schnittstellen dieses Typs. Also repräsentiert z.B. ppp+ alle Modems, eth+ alle Ethernet-Netzwerkkarten usw.).