7.4. FORWARD und NAT Regeln
Den meisten Organisationen wird eine limitierte Anzahl von �ffentlich routbaren IP-Adressen von ihrem ISP zugewiesen. Aufgrund dieser Einschr�nkungen m�ssen die Administratoren kreative Wege finden, den Zugang zum Internet aufzuteilen, ohne dass jedem Knoten am LAN kostbare IP-Adressen zugeteilt werden. Der normale Weg, damit alle Knoten auf einem LAN die Netzwerkdienste intern und extern n�tzen k�nnen, ist die Verwendung von privaten IP-Adressen. Edge Routers (wie Firewalls) k�nnen eingehende �bertragungen vom Internet empfangen und die Pakete zu den gew�nschten LAN-Knoten leiten. Gleichzeitig k�nnen Firewalls/Gateways auch ausgehende Anfragen von einem LAN-Knoten zu dem entfernten Internetdienst leiten. Dieses Weiterleiten des Netzwerkverkehrs kann manchmal gef�hrlich werden, vor allem, wenn moderne Cracking Tools verwendet werden, die interne IP-Adressen austricksen k�nnen und den Computer des externen Angreifers wie einen Netzwerkknoten des LAN erscheinen lassen. Zur Vorbeugung bietet iptables Richtlinien zum Routing und Weiterleiten, die eingesetzt werden k�nnen, um f�lschlicher Verwendung von Netzwerk-Ressourcen vorzubeugen.
Die FORWARD Richtlinie erlaubt einem Administrator zu kontrollieren, wohin die Pakete innerhalb eines LAN geroutet werden k�nnen. Wenn z.B. ein Weiterleiten an den gesamten LAN erlaubt werden soll (angenommen, die Firewall/Gateway hat eine interne IP-Adresse auf eth1), k�nnen die folgenden Regeln eingestellt werden.
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT |
Diese Regel erm�glicht Systemen hinter der Firewall/dem Gateway Zugang zum internen Netzwerk. Der Gateway leitet Pakete von einem LAN-Knoten zu dessem beabsichtigten Ziel-Knoten, indem alle Pakete durch dessen eth1-Ger�t durchlaufen.
| Anmerkung |
---|
| Die IPv4 Richtlinie in Red Hat Enterprise Linux Kernels verhindert standardm��ig die Unterst�tzung von IP-Weiterleitung, was verhindert, dass Boxen, die Red Hat Enterprise Linux ausf�hren, als zugeordnete Edge Router fungieren. F�hren Sie den folgenden Befehl aus, um IP-Weiterleitung einzuschalten: sysctl -w net.ipv4.ip_forward=1 |
Wenn dieser Befehl �ber einen Shell-Prompt ausgef�hrt wird, wird die Einstellung nach einem Neustart nicht behalten. Sie k�nnen permanentes Weiterleiten einstellen, indem Sie die /etc/sysctl.conf Datei bearbeiten. Suchen Sie die folgende Zeile und ersetzen Sie 0 mit 1: F�hren Sie den folgenden Befehl aus, um die �nderung der sysctl.conf Datei zu erm�glichen: sysctl -p /etc/sysctl.conf |
|
Dies erlaubt LAN-Netzwerkknoten, miteinander zu kommunizieren. Es ist ihnen jedoch nicht gestattet, extern (zum Beispiel mit dem Internet) zu kommunizieren. Um LAN-Netzwerkknoten mit privaten IP-Adressen das Kommunizieren mit externen �ffentlichen Netzwerken zu erm�glichen, konfigurieren Sie die Firewall f�r IP-Masquerading. Dies maskiert Anfragen der LAN-Netzwerkknoten mit der IP-Adresse der �u�eren Einstellung der Firewall (in diesem Fall eth0):
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
Die Regel benutzt die NAT-Paketverwaltungstabelle (Packet Matching) (-t nat) und legt die eingebaute POSTROUTING-Kette f�r NAT(-A POSTROUTING) auf dem externen Netzwerkger�t der Firewall fest (-o eth0). POSTROUTING erlaubt es Paketen abge�ndert zu werden, da diese das externe Ger�t der Firewall verlassen. Das -j MASQUERADE-Target-Option ist festgelegt, um die private IP-Adresse eines Knotens mit der externen IP-Adresse der Firewall/des Gateways zu maskieren.
Wenn Sie einen Server in Ihrem internen Netzwerk extern zug�nglich machen m�chten, k�nnen Sie die Target-Option -j DNAT der PREROUTING-Kette in NAT dazu verwenden, Ziel-IP-Adresse und Port festzulegen, wo eingehende Pakete, die um eine Verbindung mit Ihrem internen Service anfragen, weitergeleitet werden k�nnen. Wenn Sie zum Beispiel eingehende HTTP-Anfragen an Ihr Apache HTTP Server Server-System auf IP-Adresse 172.31.0.23 weiterleiten m�chten, f�hren Sie folgenden Befehl aus:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT \
--to 172.31.0.23:80 |
Diese Regel legt fest, dass die NAT-Tabelle die eingebaute PREROUTING-Kette zur Weiterleitung eingehender HTTP-Anfragen ausschlie�lich an die gelistete Ziel-IP-Adresse von 172.31.0.23 benutzt.
| Anmerkung |
---|
| Wenn sich die Standardmethode DROP in Ihrer FORWARD-Kette befindet, m�ssen Sie eine Regel anh�ngen, die das Weiterleiten von eingehenden HTTP-Anfragen erm�glicht, sodass das Ziel-NAT-Routing erm�glicht wird. F�hren Sie dazu folgenden Befehl aus: iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 172.31.0.23 -j ACCEPT |
Die Regel erlaubt das Weiterleiten von eingehenden HTTP-Anfragen von der Firewall zu deren vorgesehenem Ziel auf dem Apache HTTP Server-Server hinter der Firewall. |
7.4.1. DMZs und iptables
iptables-Regeln k�nnen daf�r verwendet werden, den Verkehr zu bestimmten Maschinen zu leiten, wie zum Beispiel einem zweckbestimmten HTTP- oder FTP-Server in einer demilitarisierten Zone (DMZ) — ein spezielles lokales Subnetzwerk, das dazu bestimmt ist Dienste �ffentlich, z.B. im Internet, anzubieten. Um eine Regel f�r das Routen von allen eingehenden HTTP-Anfragen zu einem ausgewiesenen HTTP-Server auf IP-Adresse 10.0.4.2 festzulegen (au�erhalb der 192.168.1.0/24 Reichweite des LAN), ruft Network Address Translation (NAT) eine PREROUTING-Tabelle auf. Damit werden die Pakete an das richtige Ziel weitergeleitet:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT \
--to-destination 10.0.4.2:80 |
Mit diesem Befehl werden alle HTTP-Verbindungen zu Port 80 von au�erhalb des LAN auf den HTTP-Server in ein vom Rest des internen Netzwerks getrenntes Netzwerk geleitet. Diese Art der Netzwerksegmentierung kann sicherer sein, als wenn die HTTP-Verbindungen auf einer Maschine im Netzwerk gestattet werden. Wenn der HTTP-Server so konfiguriert ist, dass er sichere Verbindungen akzeptiert, dann muss auch Port 443 weitergeleitet werden.