Netzwerk - iptables
Allgemein
iptables ist ein Werkzeug um den kernelbasierten Firewallcode
zu konfigurieren.
Wichtigste Features
- verbindungsorientiertes Filtern ist möglich (Chains)
- Firewall- und NAT-funtionalität in verschiedenen Tabellen getrennt und transparent konfigurierbar
- modularisiert, spezielle Protokolle können über entsprechende Module gefiltert werden, z.B. FTP, IRC
- Pakete können an den Userspace weitergegeben werden
- Filterung nicht nur nach Quell- und Zieladressen/-ports, sondern auch nach Verbindungsstatus,
MAC-Adresse, oder bei lokalen Verbindungen UID möglich
Struktur
Verschiedene Ketten, die aber nicht in allen Tabellen gültig sind.
Generell ist die Reihenfolge der Ketten:
INPUT - OUTPUT (bei lokalen Verbindunen)
PREROUTING - FORWARD - POSTROUTING (bei gerouteten Verbindungen)
| Table | Erlaubte Ketten | Zweck |
| filter | INPUT, OUTPUT, FORWARD | IP-/Portfilterung
| nat | PREROUTING, POSTROUTING, OUTPUT | Network Adress Translation |
| mangle | PREROUTING, FORWARD, POSTROUTING, INPUT, OUTPUT | Modifikation von Paketeigenschaften, z.B. TOS, MARK |
Damit IP überhaupt vom Kernel weitergeleitet wird, muss dies freigeschaltet werden:
echo 1> /proc/sys/net/ipv4/ip_forward
Beispiel
Einfaches Masquerading aller Adressen im Netz 192.168.0.0/24, wenn das Ziel nicht 192.168.0.0/24 ist:
# iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -d \! 192.168.0.0/24 -j MASQUERADE
# iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * * 192.168.0.0/24 !192.168.0.0/24
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
DROP aller Verbindungen zu Port 80 für die internen Rechner:
# iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 80 -j DROP
# iptables -L -v -n
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP tcp -- * * 192.168.0.0/24 0.0.0.0/0 tcp dpt:80
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Inhalt
Letzte Änderung am
Don Sep 12 07:41:26 CEST 2002
von Adrian Reyer