Im Katalog suchen

Linux - Wegweiser für Netzwerker

Online-Version

Copyright © 2001 by O'Reilly Verlag GmbH & Co.KG

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser für Netzwerker oder wollen Sie es bestellen, dann klicken Sie bitte hier.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel



Konfiguration von IP-Masquerade

Wenn Sie die Kapitel über Firewalls und Accounting bereits gelesen haben, überrascht es Sie wohl nicht, daß ipfwadm, ipchains und iptables auch zur Konfiguration von Regeln für IP-Masquerade benutzt werden.

Masquerade-Regeln sind eine spezielle Klasse von Filterregeln. Sie können Masquerade nur für solche Datagramme durchführen, die an einem Interface empfangen und an ein anderes Interface geroutet werden. Zur Konfiguration einer Masquerade-Regel bilden Sie eine Regel, die der Weiterleitungsregel bei Firewalls sehr ähnlich ist, allerdings mit speziellen Optionen, die dem Kernel mitteilen, wie das Masquerading der Datagramme vor sich gehen soll. Der Befehl ipfwadm benutzt dafür die Option -m, ipchains nimmt statt dessen -j MASQ, und iptables erwartet -j MASQUERADE, um anzuzeigen, daß die zur Regel passenden Datagramme einer Masquerade-Operation unterzogen werden sollen.

Ein kleines Beispiel: Eine Informatik-Studentin an der Groucho-Marx-Universität hat zu Hause eine Reihe von Computern herumstehen und sie zu einem kleinen Ethernet-LAN vernetzt. Als Netzwerkadresse hat sie eine der offiziell reservierten, privaten IP-Adressen genommen. Ihr Quartier teilt sie mit anderen Studentinnen, die alle an einem Zugang ins Internet interessiert sind. Da das Studentenleben nun mal oft alles andere als üppig ist, können sie sich keine dauerhafte Internetverbindung leisten. Sie könnten zwar auch getrennte einfache Dialup-PPP-Verbindungen ins Internet aufbauen, aber sie ziehen es alle vor, eine einzige gemeinsame Verbindung zu nutzen, um per IRC zu chatten, im Web zu surfen und sich Dateien per FTP direkt auf ihren Rechner herunterzuladen. Die Lösung hierfür lautet natürlich IP-Masquerade.

Die Studentin konfiguriert einen Linux-Rechner für die Unterstützung der Dialup-Verbindung und zum Routing für das LAN. Die zugewiesene IP-Adresse, die sie bei der Einwahl erhält, interessiert sie kaum. Sie konfiguriert den Linux-Router für IP-Masquerade und benutzt eine private Netzwerkadresse für ihr LAN, zum Beispiel 192.168.1.0. Außerdem vergewissert sie sich, daß die Default-Route aller Hosts in ihrem LAN auf den Linux-Router verweist.

Die folgenden ipfwadm-Befehle sind alles, was sie zur Aktivierung des Masquerading in ihrem Netzwerk benötigt:

# ipfwadm -F -p deny # ipfwadm -F -a accept -m -S 192.168.1.0/24 -D 0/0
oder mit ipchains:
# ipchains -P forward -j deny # ipchains -A forward -s 192.168.1.0/24 -d 0/0 -j MASQ
oder mit iptables:
# iptables -t nat -P POSTROUTING DROP # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Wenn nun einer der Hosts im LAN eine Verbindung zu einem Dienst auf einem Remote-Host aufbauen möchte, werden seine Datagramme automatisch vom Linux-Masquerade-Router empfangen und an den Bestimmungsort weitergereicht. Die erste Regel in jedem der Beispiele erhöht die Sicherheit des LANs, denn sie verhindert, daß der Linux-Rechner andere Datagramme routet.

Um die Masquerade-Regeln aufzulisten, die Sie erzeugt haben, benutzen Sie im ipfwadm-Befehl die Option -l, wie wir das schon früher beschrieben hatten, als es um Firewalls ging.

Um die vorhin erzeugte Regel aufzulisten, geben wir folgendes ein:

# ipfwadm -F -l -e
Das sollte folgende Ausgabe ergeben:
# ipfwadm -F -l -e IP firewall forward rules, default policy: accept  pkts bytes type  prot opt  tosa tosx ifname  ifaddress  …     0     0 acc/m all  ---- 0xFF 0x00 any     any        …
Die Option /m in der Ausgabe zeigt an, daß es sich hierbei um eine Masquerade-Regel handelt.

Um die Masquerade-Regeln mit ipchains aufzulisten, benutzen Sie die Option -L. Wenn wir damit die vorhin erzeugte Regel auflisten, erhalten wir folgende Ausgabe:

# ipchains -L Chain input (policy ACCEPT): Chain forward (policy ACCEPT): target     prot opt     source                destination           ports MASQ       all  ------  192.168.1.0/24        anywhere              n/a  Chain output (policy ACCEPT):

Alle Regeln mit dem Ziel MASQ sind Masquerade-Regeln.

Schließlich listen wir Regeln mit iptables so auf:

# iptables -t nat -L Chain PREROUTING (policy ACCEPT) target     prot opt source               destination  Chain POSTROUTING (policy DROP) target     prot opt source               destination MASQUERADE  all  --  anywhere             anywhere           MASQUERADE  Chain OUTPUT (policy ACCEPT) target     prot opt source               destination
Auch hier sind Masquerade-Regeln durch das Ziel MASQUERADE gekennzeichnet.

Zeitparameter für IP-Masquerade setzen

Sobald eine neue Verbindung aufgebaut ist, stellt die IP-Masquerade-Software einen Zuordnungskatalog über die beteiligten Hosts zusammen. Sie können sich die Hosts jederzeit ansehen, indem Sie die Datei /proc/net/ip_masquerade inspizieren. Nach einer gewissen Zeit der Inaktivität verlieren diese Zuordnungen allerdings ihre Gültigkeit.

Die Timeout-Werte können Sie mit ipfwadm einstellen. Die allgemeine Syntax dafür ist:

ipfwadm -M -s <tcp> <tcpfin> <udp>

Bei ipchains:

ipchains -M -S <tcp> <tcpfin> <udp>

Die iptables-Implementierung benutzt standardmäßig erheblich größere Timeout-Werte, die Sie aber nicht verändern können.

Jeder dieser Werte wird in Sekunden angegeben und entspricht einem Timer, der von der IP-Masquerade-Software benutzt wird. Die folgende Tabelle enthält eine Zusammenstellung der Timer und ihrer Bedeutungen:

Name Bedeutung
tcp

TCP-Session-Timeout. Wie lange eine TCP-Verbindung untätig sein kann, bevor ihre Zuordnung entfernt wird.

tcpfin

TCP-Timeout nach FIN. Wie lange eine Zuordnung gültig bleibt, nachdem eine TCP-Verbindung unterbrochen wurde.

udp

UDP-Session-Timeout. Wie lange eine UDP-Verbindung untätig sein kann, bevor ihre Zuordnung entfernt wird.





vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel


Weitere Informationen zum Linux - Wegweiser für Netzwerker

Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center


O'Reilly Home|O'Reilly-Partnerbuchhandlungen|Bestellinformationen
Kontakt|Über O'Reilly|Datenschutz

© 2001, O'Reilly Verlag