Da man NAT/Masquerading ohnehin eingeschaltet haben wird, um mit einem
LAN-Host über den Linux-Router online gehen zu können, ist prinzipiell nur eine
einzige zusätzliche Zeile notwendig. Sie wird in das iptables-Skript oder
einfach an die Datei /etc/ppp/ip-up angehängt:
iptables -A
PREROUTING -t nat -p tcp
-d $4
--dport 4662 -j DNAT
--to
192.168.0.10
wobei $4 eine Variable ist, die die öffentliche
IP-Adresse des Routers enthält (bei DSL und dem smpppd von SuSE steht diese
IP-Adrese in der Variablen $4) und die IP-Adresse
192.168.0.10 die private IP-Adresse des Rechners im LAN
ist, auf dem der eDonkey2000-Client läuft. Falls sie von der eigenen
Konfiguration abweicht, ist statt dieser die passende einzutragen. Diese Zeile
wird dann in der Datei /etc/ppp/ip-up eingetragen.
Die Variable $4, die die öffentliche IPO-Adresse enthält, existiert nur
während der Ausführung des Skriptes /etc/ppp/ip-up. Will man z.B. direkt
beim Systemstart die Firewall konfigurieren, ohne das schon die momentane
öffentliche IP-Adresse vorliegt (weil z.B. noch keine Verbindung zum ISP
hergestellt wurde), arbeitet man vorteilhafter mit der Definition des
Netzwerkdevices, über welchen die Verbindung nach außen läuft. Im Falle einer
PPPoE-Übertragung lautet der Name dieses Devices meist "ppp0". Man kann nun die
obige iptables-Anweisung so umschreiben, daß statt der Quell-IP-Adresse
(öffentliche IP-Adresse, die aber beim booten noch nicht bekannt ist) der Name
des nach außen verbindenden PPP-Devices benutzt wird. Der Vorteil ist, daß
dieser Name stets gleich bleibt.
Man tauscht "-d $4" einfach gegen "-i ppp0" aus:
iptables -t nat
-A PREROUTING -p tcp
-i ppp0
--dport 4662 -j DNAT
--to
192.168.0.10
iptables wird bei SuSE-Linux 8.0 und darüber gern in der Datei /etc/init.d/iptables
konfiguriert. Dort befinden sich üblicherweise alle angewandten iptables-Befehle.
Wenn man zur Konfiguration der Firewal bei einem SuSE-Linux 8.0 und höher
nicht iptables direkt programmiert, sondern die mitgelieferte SeSEfirewall2
benutzt, sollte eine Weiterleitung unbedingt dort vorgenommen werden. Die zu
editierende Konfigurationsdatei ist /etc/sysconfig/SuSEfirewall2 und die zu
editierende Zeile lautet z.B.: (die Zeile steht etwas unterhalb der Mitte in der
recht großen Datei)
FW_FORWARD_MASQ="0/0,192.168.0.10,tcp,4662"
Die einzelnen Teile der Zeile bedeuten:
FW_FORWARD_MASQ="Quell-IP,Ziel-IP,Protokoll,Port",
wobei 0/0 als Abkürzung für sämtliche IP-Adressen
(also das gesamte Internet, Quelle) steht,
192.168.0.10 für eine willkürlich ausgesuchte IP-Adresse des privaten LANs
zu der weitergeleitet werden soll (Ziel), tcp
für das Protokoll (es gibt hauptsächlich TCP, UDP und ICMP)
und der Port 4662 als Beispiel dient.
Mehrere verschiedene Weiterleitungen können durch ein Leerzeichen voneinander
getrennt einfach hintereinander geschrieben werden. Es ist auf die
Anführungsstriche vor der ersten Quell-IP und nach dem letzten Port zu achten!
Nach einer Veränderung der /etc/sysconfig/SuSEfirewall2 ist die Firewall mit dem
Befehl
rcSuSEfirewall2 restart
neu zu starten. Auf die Groß/Kleinschreibung ist zu achten!
|