Dieses Kapitel stammt von Roland Seuhs <roland@wertkarten.net>. Vielen Dank an Roland für diesen Beitrag.
Anmerkung von Heimo Schön: Für AON-Kunden sei hier angemerkt, daß Sie Sie ein Gateway betreiben dürfen. IMHO finden sich in den AGB von AON keine Ausschließungsgründe für ein Gateway, aber sehr deutliche Worte spricht der Absatz 1 im Punkt 9 bezüglich Einzelplatznutzung. Kunden anderer Provider sollten Ihre AGB genau studieren bevor Sie ein Gateway installieren, denn auch Masquerading ist kein einwandfreier Schutz, denn anhand Ihres Surf-Verhaltens kann man schön nachvollziehen ob hier nur ein User oder mehrere verschiedene User surfen.
However, der Einsatz eines Gateways erhöht AFAIK auch die Sicherheit Ihres Internetzugangs. Die Sicherheit der Kunden könnte auch im Interesse des Providers sein, also nehme ich an, das ein Gateway, bei normaler Nutzung als Einzelplatzsystem, zumindest geduldet wird. (Danke Georg Lippitsch <georg.lippitsch@gmx.at> für die anregende Diskussion dieser Anmerkung)
Ein Gateway ist im Prinzip nichts anderes als Netzwerkpakete von einen Netzwerk in ein anderes zu transportieren. Um auf zwei Netzwerke zugreifen zu können, muß ein Gatewayrechner zwei Geräte zu Verfügung haben um Netzwerke anzusprechen. Also zum Beispiel zwei Netzwerkkarten, oder eine Netzwerkkarte und ein Modem. Wenn beide Netzwerke auf dem Rechner bereits laufen und funktionieren, kann man den Gateway aufsetzen. Wenn Sie ein lokales Netzwerk haben und ein Rechner in diesen Netz verfügt über einen Internetanschluß, so können Sie dann mit allen anderen Rechnern im Netz ebenfalls auf das Internet zugreifen, wenn Sie diesen Rechner als sogenannten Gatewayrechner betreiben. Da die Lizenzgebühren für Windows NT als Gateway sehr teuer sind, bietet sich Linux für diesen Zweck geradezu an.
Nun stellt sich folgendes Problem: Die lokalen Netzwerkadressen (z.B. 192.168.x.x) werden nicht ins Internet geroutet. - Logischerweise, denn diese Adressen müssen offiziell nicht angemeldet werden und sind für lokale Netzwerke reserviert. Man hätte tausende gleiche IP Adressen wenn diese ins Internet geroutet werden. Die Lösung ist IP Maskierung. Bei diesem Verfahren werden die Pakete mit der IP Adresse des Gateways weitergeschickt. Um bei den vom Internet zurückgeschickten Paketen unterscheiden zu können welches Paket zu welchen Computer weitergeleitet werden soll, werden den Rechnern verschiedene Ports zugeordnet. (Die Antworten aus dem Internet gehen dann an diese Ports und werden dann vom Gateway an die jeweiligen Rechner weitergeleitet) Der Rechner, der die Pakete schickt, merkt nicht, daß der Gatewayrechner die Pakete an andere weiterleitet. Es werden Pakete an die selbe IP Adresse, aber an verschiedene Ports geschickt. - Aber das kann durchaus auch beim »normalen« Betrieb passieren; So benutzen z.B. Telnet, ftp und http verschiedene Ports.
Um IP Maskierung einzurichten, muß man (neben einen Internetzugang und einen lokalen Netz) unter Umständen den Kernel neu konfigurieren. - Bei modernen Distributionen (z.B. SuSE 6.3 ist das jedoch nicht erforderlich) Probieren Sie es einfach aus; Falls sich die Module nicht laden lassen, müssen sich folgende Optionen bei der Neukompilation anwählen:
* Prompt for development and/or incomplete code/drivers
CONFIG_EXPERIMENTAL
- this will allow you to select experimental
IP Masquerade code compiled into the kernel
* Enable loadable module support
CONFIG_MODULES
- allows you to load ipmasq modules such as ip_masq_ftp.o
* Networking support
CONFIG_NET
* Network firewalls
CONFIG_FIREWALL
* TCP/IP networking
CONFIG_INET
* IP: forwarding/gatewaying
CONFIG_IP_FORWARD
* IP: firewalling
CONFIG_IP_FIREWALL
* IP: masquerading
CONFIG_IP_MASQUERADE
* IP: ipportfw masq support
CONFIG_IP_MASQUERADE_IPPORTFW
- recommended
* IP: ipautofw masquerade support
CONFIG_IP_MASQUERADE_IPAUTOFW
- optional
* IP: ICMP masquerading
CONFIG_IP_MASQUERADE_ICMP
- support for masquerading ICMP packets, recommended.
* IP: always defragment
CONFIG_IP_ALWAYS_DEFRAG
- highly recommended
* Dummy net driver support
CONFIG_DUMMY
- recommended
* IP: ip fwmark masq-forwarding support
CONFIG_IP_MASQUERADE_MFW
- optional
Falls diese Optionen in Ihren Kernel nicht vorhanden sind, kompilieren
Sie einen neuen Kernel. Bevor Sie den Computer neu starten, fügen Sie
folgende Zeilen in ein geeignetes (soll beim booten ausgeführt werden;
z.B. /sbin/init.d/boot.local
für SuSE, Sie können aber auch das Netzwerk
Start Skript nehmen) Skript ein. Schalten Sie außerdem noch IP-forwarding
ein: Unter SuSE setzen Sie die Variable
"IP_FORWARD" in /etc/rc.config auf »yes« setzen
Unter RedHat wird es folgendermaßen eingeschalten:
echo 1 > /proc/sys/net/ipv4/ip_forward
Sie sollten das aber auch unter SuSE machen, weil viele Programme diese Datei überprüfen.
Wenn Ihr Kernel nun geeignet ist um IP-Maskierung zu betreiben, dann geben Sie folgendes ein und achten Sie auf Fehlermeldungen:
# IP Maskierung: ############################
# Module laden:
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_cuseeme
/sbin/modprobe ip_masq_vdolive
# Forwarden einschalten (nur einmal notwendig:
#echo 1 > /proc/sys/net/ipv4/ip_forward
# Einstellungen machen:
ipchains -P forward DENY
ipchains -A forward -s 192.168.x.0/255.255.255.0 -j MASQ
Die letzte Zeile erlaubt dem Netz 192.168.x.0 IP-Maskierung zu
benutzen. Wenn alles klappt, dann tragen sie obiges in /sbin/init.d/boot.local
(bei SuSE) oder in ein anderes geeignetes Skript ein.
Zuerst werden die benötigten Kernelmodule geladen. Dann werden die Einstellungen zur Sicherheit gesetzt:
ipchains -P forward DENY
Diese Zeile bestimmt, daß die Standardeinstellung für alle Rechte die Verweigerung der IP Maskierung ist. Andernfalls könnte jemand seine Identität verschleiern indem er Pakete durch Ihr Gateway schickt. (Ist zwar für einen Wählleitungszugang unwahrscheinlich, aber die Konsequenzen können sehr ärgerlich sein, wenn jemand Illegales über Ihr Gateway gemacht hat.) Prinzipiell sollte man nur das nötigste erlauben, also erlauben wir IP Maskierung nur für unser lokales Netz mit
ipchains -A forward -s <Netzwerk>/<Netzmaske> -j MASQ
Selbstverständlich können Sie IP-Maskierung auch nur für einzelne Rechner zulassen:
ipchains -A forward -s <Rechner>/<Netzmaske> -j MASQ
Bedenken Sie aber, daß jemand, der auf einen von den Rechnern über das Netz einloggen kann, trotzdem die IP Maskierung benutzen kann. Wenn Sie die IP-Maskierung ausprobieren, versuchen Sie zuerst einmal IP Nummern anstatt normaler Namen; Vielleicht stimmt Ihre Nameservereinstellung nicht.
Dieses Kapitel beschreibt die Einrichtung der Maschinen, die über das Netz IP-Maskierung nutzen wollen: (Clients)
SuSE-User mit YaST:
-> Administration des Systems
-> Netzwerk konfigurieren
-> Netzwerk Grundkonfiguration
-> F6 (IP-Adressen) bei dem
entsprechenden Netz drücken
-> Adresse default-Gateway eintragen:
(=Adresse des Servers)
/usr/sbin/rcroute restart
Den Eintrag
default <IP-Adresse des Servers>
in /etc/route.conf
eintragen und Routing neu starten mit
/sbin/init.d/route restart
Weiterführende Anregungen zu Masquerading und auch zu ICQ finden Sie im Linux IP Masquerade HOWTO
Masquerading und Microsoft Netmeeting finden Sie hier