Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
ArchLinux - ip_forward - Router
Die Konfiguration eines Linux-Servers als Router ermöglicht es, z.B. eine Internet-Verbindung, welche an einem Server besteht, mit weiteren Servern im Netzwerk zu teilen, ohne das jeder einzelne Server eine eigene Verbindung in das Internet selbst herstellen muss.
Beschreibung | Externer Link |
---|---|
Homepage | https://www.archlinux.de/ |
Herunterladen | https://www.archlinux.de/download |
Dokumentation | https://wiki.archlinux.de/title/Hauptseite |
Installation | https://wiki.archlinux.de/title/Anleitung_für_Einsteiger |
- Internet sharing | https://wiki.archlinux.org/index.php/Internet_sharing |
Als Beispiel sollen hier ein Server als Router konfiguriert werden und ein weiterer Server die Internet-Verbindung des Routers nutzen:
/\/\/\/\/\/\ +--------------------------+ +-------------------------------------------------+ | Internet | <-- | net1 <-> Router <-> net0 | <-- | net0 <-> Server ohne eigene Internet Verbindung | \/\/\/\/\/\/ +--------------------------+ +-------------------------------------------------+
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer root
zu werden, geben Sie bitte nachfolgenden Befehl ein:
$ su - Password:
/etc/sysctl.d/30-ipforward.conf
Damit der Server, welcher als Router fungieren soll, auch in die Lage versetzt werden kann, dass dieser auch den Netzwerkverkehr eines anderen Servers im Netzwerk forwarden (durch reichen) kann, ist es erforderlich eine Konfigurationsdatei unter nachfolgendem Pfad mit nachfolgendem Namen
/etc/sysctl.d/30-ipforward.conf
im Dateisystem zu erstellen und mit nachfolgendem Inhalt zu versehen:
net.ipv4.ip_forward=1 net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.forwarding=1
/etc/iptables/iptables.rules
Damit der Server, welcher als Router fungieren soll, auch das Routing im Netzwerk durchführen kann, sind nachfolgende Firewall-Regeln zwingend erforderlich, auch wenn bis dato noch keine Firewallregeln konfiguriert wurden.
Nachfolgende Regeln können durch nachfolgende Befehle gesetzt werden:
# iptables -t nat -A POSTROUTING -o net1 -j MASQUERADE
Aktivieren des NAT Mechanismus, damit die IP-Adresse des Servers, welcher als Router fungieren soll, als Absendeadresse für den dahinter liegenden Server verwendet wird und nicht dessen IP-Adresse.
# iptables -A FORWARD -i net0 -o net1 -m state --state RELATED,ESTABLISHED -j ACCEPT
Erlaubnis zum forwarden (durch reichen) von Anfragen vom Netzwerkinterface net0
welches zum Server ohne eigene Internetverbindung zeigt, an das Netzwerkinterface net1
, welches mit dem Internet verbunden ist.
# iptables -A FORWARD -i net1 -o net0 -j ACCEPT
Erlaubnis zum forwarden (durch reichen) von Antworten vom Netzwerkinterface net1
, welches mit dem Internet verbunden ist, an das Netzwerkinterface net0
welches zum Server ohne eigene Internetverbindung zeigt.
WICHTIG - Persistieren der neuen Regeln!
Nachfolgender Befehl speichert die neuen Firewallregeln zusammen mit ggf. bereits vorhandenen Firewallregeln:
# iptables-save > /etc/iptables/iptables.rules
Ein Test, ob die neuen Firewallregebl gespeichert wurden, kann durch Laden der zuvor gespeicherten Regeln mit nachfolgendem Befehl erfolgen:
# iptables-restore /etc/iptables/iptables.rules
Ein minimaler Firewallregelsatz könnte wie in nachfolgendem Beispiel gezeigt aussehen:
/etc/iptables/iptables.rules
# Generated by iptables-save v1.8.5 on Wed Sep 2 15:35:07 2020 *nat :PREROUTING ACCEPT [9:674] :INPUT ACCEPT [1:84] :OUTPUT ACCEPT [2:212] :POSTROUTING ACCEPT [0:0] -A POSTROUTING -o net1 -j MASQUERADE COMMIT # Completed on Wed Sep 2 15:35:07 2020 # Generated by iptables-save v1.8.5 on Wed Sep 2 15:35:07 2020 *filter :INPUT ACCEPT [34:2356] :FORWARD ACCEPT [10:700] :OUTPUT ACCEPT [23:2720] -A FORWARD -i net0 -o net1 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i net1 -o net0 -j ACCEPT COMMIT # Completed on Wed Sep 2 15:35:07 2020