Server EDGE – Ubuntu als Gateway einrichten.

Im ersten Schritt haben wir den Server EDGE mit Ubuntu 16.04 LTS aufgesetzt. Jetzt geht es darum diesen Server seiner eigentlichen Bestimmung zuzuführen. Er soll die Verbindung zwischen dem virtuellen TestLab und dem physikalischen Netzwerk mit der Verbindung ins Internet herstellen. Dazu müssen wir die Netzwerkschnittstellen konfigurieren und noch einiges mehr erledigen. Machen wir uns an die Arbeit.

Update des Servers und Konfiguration der Netzwerkschnittstellen

Bevor wir mit dem Konfigurieren beginnen sollten wir unser Ubuntu auf den neuesten Stand bringen. Dazu melden wir uns über das Terminal an unserem EDGE Server an. Wer das nachbauen möchte sollte an dieser Stelle die IP-Adresse 192.168.1.107 durch die seines Servers ersetzen. Die IP-Adresse erfährt ihr am schnellsten im DHCP Log eures Routers.

Anschließend holen wir uns mit den folgenden zwei Kommandos die Updates und installieren diese:

Einrichten der Netzwerkschnittstellen (NIC)

In nächsten Schritt müssen wir unsere Netzwerkschnittstellen einrichten. Während die Netzwerkschnittstelle, die direkt mit unserem Router im physikalischen Netzwerk verbunden ist, ihre IP-Adresse über den dort vorhandenen DHCP Server bekommt, soll die mit dem internen Netzwerk verbundene die statische IP-Adresse 192.168.56.2 erhalten. Wir öffnen also die Konfigurationsdatei für die Interfaces mit dem Befehl:

sudo nano /etc/network/interfaces

Hier passen wir den Inhalt der Datei wie folgt an:

Mit der Tastenkombination STRG+O speichern wir die Änderungen und mit STRG+X verlassen wir den Nano Text-Editor wieder. Anschließend starten wir mit sudo reboot den Server einmal neu durch um die Änderungen wirksam werden zu lassen.

Installation und Einrichten von dnsmasq

Auf unserem Router benötigen wir jetzt noch einen DNS und DHCP Server. Der DNS Server soll die DNS-Anfragen die unser Domänen-Controller nicht auflösen kann ins physikalische Netz weiterleiten, damit sie von dort an einen öffentlichen DNS-Server weitergeleitet werden. Der DHCP Server soll die Clients im internen Netzwerk mit IP-Adressen versorgen. Dafür gibt es dnsmasq von Simon Kelly, der nicht nur ein DHCP ist, sondern auch direkt einen DNS-Forwarder mitbringt. Mit der Kommandozeile sudo apt install dnsmasq starten wir die Installation.

Wir werden noch gefragt, ob wir die Installation durchführen wollen und damit auch zusätzlichen Speicherplatz auf der Festplatten belegen wollen. Das bestätigen wir mit Yes, we can! Anschließend rufen wir mit der Kommandozeile sudo nano /etc/dnsmasq.conf die Konfigurationsdatei auf, um unseren Server mal so eben Quick & Dirty zu konfigurieren.

Hier fügen wir am Ende der Datei folgenden Text ein:

Unsere Änderungen speichern wir mit der Tastenkombination STRG-O und der Bestätigung mit der Entertaste. Mit STRG-X verlassen wir den nano-Text-Editor.

Jetzt müssen wir nur noch unseren dnsmasq-Dienst einmal neu starten um die Änderungen wirksam werden zu lassen. Das machen wir mit der Kommandozeile sudo systemctl reload dnsmasq.

Einrichten der Firewall und des Routings

Richard W. Brown hat in seinem Blog die gleiche glorreiche Idee wie ich gehabt – ich bin erst bei der Recherche auf seine Seite gestoßen – und die Lösung meines Problems hier veröffentlicht: https://blogging.dragon.org.uk/test-networking-lab-ubuntu-on-16-04/. Nun ist nicht jeder der englischen Sprache mächtig und darum der finale Kniff hier in Deutsch. Richard beginnt seine Anleitung mit einem Skript zum Stoppen der Dienste. Allerdings packt er dieses Skript in den Ordner /root/bin. Als normaler Nutzer habe ich über die Bash darauf keinen Zugriff. Darum verwende ich hier das Verzeichnis /etc/init.d. Also beginnen wir mit dem Script zum Beenden der Dienste. Dazu legen wir uns mit der Kommandozeile sudo nano /etc/init.d/fw.stop eine neue Datei an.

In diese Datei fügen wir dann folgenden Text ein:

Die Datei wieder mit STRG+O und STRG+X speichern und schließen.

Mit dem Kommando sudo chmod +x /etc/init.d/fw.stop müssen wir jetzt noch unser kleines Script ausführbar machen.

Mit diesem Skript können wir jetzt zu jedem Zeitpunkt unseren Router mit dem Kommando sudo /etc/init.d/fw.stop beenden. Jetzt müssen wir die Datei sysctl.conf anpassen, um das Port-Forwarding zu aktivieren. Dazu öffnen wir die Datei mit folgenden Kommando:

Hier suchen wir uns die Zeile #net.ipv4.ip_forward=1 und kommentieren diese durch das entfernen des Vorgestellten #-Zeichens aus. Anschließend speichern und schließen wir die Datei mit STRG+O und STRG+X.

Nun müssen wir drei Regeln für hinterlegen, damit Pakete überhaupt nach draußen gelangen und Antworten an die richtige Adresse geleitet werden. Also fügen wir nacheinander folgende drei Kommandos in der Basch aus:

Und mit dem Kommando

speichern wir die Regel. Das ganze hat allerdings einen gewaltigen Haken. Starten wir unseren Server einmal neu durch, ist es aus mit dem Routing. Wir wollen aber nicht, dass uns nach jedem Neustart die DAUs aus dem internen Netzwerk auf den Wecker gehen, weil sie nicht zu Google oder Facebook kommen. Also brauchen wir ein kleines Skript, welches die Regeln nach jedem Neustart wieder sauber setzt.

Anlegen des Startskriptes

Also erstellen wir uns im Verzeichnis /etc/init.d eine neue Datei mit dem Namen fw.rules_common.

In diese Datei fügen wir dann folgenden Text ein:

Die Datei wieder mit STRG+O und STRG+X speichern und schließen und anschließend mit dem folgenden Kommando

Als vorletzten Schritt müssen wir jetzt unser Skript für den Systemstart bekannt machen. Dazu geben wir in der Bash folgendes Kommando ein:

Das war es. Jetzt routed der Router auch nach einem Neustart. Viel Spaß beim nachbauen.

Ein Gedanke zu „Server EDGE – Ubuntu als Gateway einrichten.“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.