![]() |
|
Linux - Wegweiser für NetzwerkerOnline-VersionCopyright © 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. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
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:
#
oder mit ipchains:
ipfwadm -F -p deny
# ipfwadm -F -a accept -m -S 192.168.1.0/24 -D 0/0
#
oder mit iptables:
ipchains -P forward -j deny
# ipchains -A forward -s 192.168.1.0/24 -d 0/0 -j MASQ
#
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.
iptables -t nat -P POSTROUTING DROP
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
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:
#
Das sollte folgende Ausgabe ergeben:
ipfwadm -F -l -e
#
Die Option 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 …
/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:
#
Auch hier sind Masquerade-Regeln durch das Ziel 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
MASQUERADE
gekennzeichnet.
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. |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Weitere Informationen zum Linux - Wegweiser für Netzwerker
Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center
© 2001, O'Reilly Verlag