Wie richte ich routing und NAT auf einen Ubuntu Server ein?

Wie richte ich routing und NAT auf einen Ubuntu Server ein?

Beachte, dass ich hier von Ubuntu Server Version 18.04 rede! Damit haben wir networkd und netplan (keine interfaces!). Ich gehe davon aus, das zwei Netzwerkkarten eingebaut sind. Eine Karte verbunden mit dem Provider Router und die andere mit dem LAN – wahrscheinlich mit einen Switch. Hier die Karten Konfiguration aus /etc/netplan/50-cloud-init.yaml (die Einzüge bestehen aus Leerzeichen im Viererpack):

network:
    ethernets:
        enp2s0:
            addresses:
            - 192.168.0.2/24
            gateway4: 192.168.0.1
            nameservers:
                addresses: []
                search: []
            optional: false
        enp3s0:
            addresses:
            - 192.168.1.1/24
            nameservers:
                addresses:
                - 8.8.8.8
                - 8.8.4.4
                search:
                - myhome.local
            optional: false
    version: 2

Wobei gateway4 auf den Provider Router zeigt, die Adressen der nameservers auf die öffentlichen Google DNS verweisen und das optional auf false steht: Ich will, dass beim booten des Servers die Netzwerkkarten aktiv und verfügbar sind – notfalls wird gewartet. Setze die Option search auf deinen Netzwerk- Namen. Die addresses der Lan Karten müssen in verschiedenen Subnetzen sein und können auf deinen Rechner natürlich anders heißen! Aktiviere das routing zwischen den Karten in /etc/sysctl.conf:

net.ipv4.ip_forward=1

Zum Abschluss müssen wir noch das NAT aktivieren, weil private Adressen im Internet nicht geroutet werden. Mit NAT werden private Adressen (192.168.) mit der öffentlichen Adresse des Provider Routers getarnt. Wir tragen dazu in die Datei /etc/rc.local folgende Zeile ein:

#!/bin/sh -e
/sbin/iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE
exit 0

Die Datei erstellen, wenn nicht vorhanden. Sie gehört root:root und ist mit 755 zu chmod-en. Bei älteren Ubuntu Server Versionen soll ein systemctl enable rc-local notwendig gewesen sein. Danach einen Server Neustart machen. Damit kommen deine Netzwerkrechner mit einen Switch, über den Server, durch den Provider Router ins Internet.