Sorry an alle von Euch, die noch immer geschockt sind vom Uebergang von 2.0 (ipfwadm) auf 2.2 (ipchains). Es gibt gute und schlechte Neuigkeiten.
Zuerst einmal kannst Du ipfwadm und ipchains wie gewohnt weiterbenutzen. Um das zu tun, musst Du das 'ipchains.o' oder 'ipfwadm.o' Kernelmodul aus der letzten netfilter-Distribution laden (insmod). Diese beiden schliessen sich gegenseitig aus (Du bist gewarnt) und sollten nicht mit anderen netfilter-Modulen kombiniert werden.
Sobald eins dieser Module installiert ist, kannst Du ipchains und ipfwadm wie gewohnt benutzen, mit den folgenden Unterschieden:
Fuer Hacker:
Das ist das, was die meisten Leute wollen. Wenn Du durch eine PPP-Verbindung eine dynamische IP-Adresse hast (wenn Du das nicht weisst, dann hast Du eine), moechtest Du Deinem Rechner einfach sagen, dass alle Pakete, die aus Deinem internen Netzwerk kommen, so aussehen sollen, als ob sie von dem Rechner mit der PPP-Verbindung kommen wuerden.
# Das NAT-Modul laden (dies zieht all die andern mit).
modprobe iptable_nat
# In der NAT-Tabelle (-t nat) eine Regel fuer alle an ppp0 (-o ppp0)
# ausgehenden Pakete hinter dem Routing (POSTROUTING), die maskiert
# werden sollen, anhaengen (-A).
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# IP-Forwarding aktivieren
echo 1 > /proc/sys/net/ipv4/ip_forward
Beachte, dass Du hier keine Pakete filterst: hierzu lese das Packet- Filtering-HOWTO: Kombinieren von NAT und Paketfiltern.
Das ist eine verzwicktere Sache, und ich habe mir hier keine grossen Sorgen um die Rueckwaerts-Kompatibilitaet gemacht. Um Port-Forwarding zu verwenden, kannst Du einfach 'iptables -t nat' benutzen. Unter Linux 2.2 haettest Du es zum Beispiel so machen koennen:
# Linux 2.2
# TCP-Pakete, die an 1.2.3.4 Port 8080 gehen, an 192.168.1.1 Port 80
# weiterleiten
ipmasqadm portfw -a -P tcp -L 1.2.3.4 8080 -R 192.168.1.1 80
Jetzt wuerdest Du folgendes tun:
# Linux 2.4
# Eine Pre-Routing (PREROUTING) Regel an die NAT-Tabelle (-t nat) an-
# haengen (-A), die besagt, dass alle TCP-Pakete (-p tcp) fuer 1.2.3.4
# (-d 1.2.3.4) Port 8080 (--dport) auf 192.168.1.1:80
# (--to 192.168.1.1:80) gemappt werden (-j DNAT).
iptables -A PREROUTING -t nat -p tcp -d 1.2.3.4 --dport 8080 \
-j DNAT --to 192.168.1.1:80
Wenn Du willst, dass diese Regel auch lokale Verbindung veraendert (ich meine, wenn sogar auf dem NAT-Rechner selbst ein Telnet auf 1.2.3.4 Port 8080 an 192.168.1.1 Port 80 geleitet wird), kannst Du diese Regel in die OUTPUT-Kette (fuer lokal ausgehende Pakete) einfuegen:
# Linux 2.4
iptables -A OUTPUT -t nat -p tcp -d 1.2.3.4 --dport 8080 \
-j DNAT --to 192.168.1.1:80