Howto configure Debian 10 for basic routing operations
Unter NAT versteht man Network Address Traslation. Der Sinn dahinter ist es Netzwerkadressen umzuschreiben. Es kann zwischen Source NAT (SNAT), umschreiben der Quell Adresse und Destination NAT, umschreiben der Ziel Adresse unterschieden werden. Bei SNAT und DNAT wird standardmäßig immer eine Adresse auf genaue eine andere Adresse abgebildet. Für einen Zugang zum Internet muss jedoch eine öffentliche IP Adresse auf mehrere interne IP Adressen abgebildet werden. - Hierfür gibt es eine Sonderform von SNAT mit der Bezeichnung Masquerading.
Folgendes virtuelles Netzwerk dient zum Testen der Konfiguration:
PC1 und PC2 befinden sich in einem eigenen LAN Segment bzw. einem internen Netzwerk. PC3 fungiert als Firewall und benötigt 3 Schnittstellen. Die Namen der Schnittstellen können mit dem dmesg
Befehl herausgefunden werden. Damit PC1 und PC2 sich mit dem Internet verbinden können muss ein Gateway in der IP Konfiguration eingetragen werden. Das erfolgt in der /etc/network/interfaces
Datei.
Folgendes Beispiel zeigt die Konfigruation von PC1:
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.250
Zuerst muss Fowarding in der Firewall aktiviert werden. Um Forwarding auf einer Firewall zu aktivieren folgendes Kommando auf der Konsole ausführen.
echo 1 > /proc/sys/net/ipv4/ip_forward
Der Status des IP Forwardings kann mit folgeden Kommand angezeigt werden. - Ist der Status auf 1 so ist das Forwarding aktiviert.
cat /proc/sys/net/ipv4/ip_forward
Nun sollte das Pingen zwischen den beiden äußeren Pc's möglich sein. Damit PC1 und PC2 ins Internet können muß Masquerading auf dem Routing PC aktiviert werden. Das erfolgt in Debian ab der Version 10 mittels NFT. (Net Filter Tables).
Falls das Paket nftables nicht installiert ist muss es mittels des Kommandos apt install nftables
nachinstalliert werden. Folgendes Kommando dient zum aktivieren von Masquerading für das IP Netz 192.168.1.0/24. Als Output Interface wird eth0 festgelegt.
nft add table nat
nft add chain nat postrouting { type nat hook postrouting priority 100 \;}
nft add rule nat postrouting ip saddr 192.168.1.0/24 oif ens33 masquerade