Kapitel 21

Virtueller Server

IN DIESEM KAPITEL

  • Serverinstallation
  • Statische Einbindung
  • DHCP-Festlegung
  • DNS-Eintrag im LAN

Im Kapitel 20 wird ein virtueller Router für das virtuelle Labornetzwerk vorgestellt. Damit ist es möglich, ein virtuelles lokales Netzwerk in einem PC zu erstellen, das zwar Zugang zum Internet hat, aber vom lokalen Netzwerk abgetrennt ist. So können keine Schäden am Netzwerk entstehen und es ist auch nicht möglich, die Server von außen zu erreichen. In diesem Kapitel soll nun ein Server erstellt werden, der im internen Netzwerk arbeitet.

Installation

Der Server soll wiederum ein Linux-Server sein. Die meisten Server kommen prima ohne grafische Oberfläche aus, was natürlich extrem ressourcenschonend ist. Für solche Systeme ohne grafische Oberflächen bieten sich Debian oder ein Ubuntu-Server besonders an.

Sie können aber auch einen sparsamen Desktop wie beispielsweise MATE verwenden. Allein die Möglichkeit, mehrere Terminals im Fenster nebeneinander zu haben, kann bei der Wartung, beim Testen und bei der Installation hilfreich sein.

Das Erzeugen einer virtuellen Linux-Maschine wurde bereits in Kapitel 19 und in Kapitel 20 beschrieben. Darum muss das in diesem Kapitel nicht wiederholt werden.

Netzwerkeinstellungen in der VirtualBox

Der Server hat genau wie ein normaler Client nur einen Netzwerkadapter. Damit der Server im virtuellen Netzwerk arbeitet, müssen die Netzwerkeinstellungen in VirtualBox umgestellt werden. Dazu klicken Sie die Server-VM in VirtualBox mit der rechten Maustaste an, wählen ÄNDERN und suchen nach NETZWERK.

  1. Da der Anschluss im lokalen Netzwerk laufen soll, wählen Sie bei dem Anschluss INTERNES NETZWERK.
  2. Als Name verwenden Sie den, den Sie auch im Router für das lokale Netzwerk verwendet haben.

Ab diesem Zeitpunkt wird der Server nur noch problemlos booten, wenn zuvor die virtuelle Router-Maschine gestartet wurde. Der Hintergrund ist, dass der Server ansonsten keinen DHCP-Server findet und sich nur schwer damit abfindet.

Nach dem Start des Servers überprüfen Sie den Status.

  • Der Server sollte eine IP-Adresse aus dem Pool des DHCP-Servers im Router haben. Kontrollieren Sie dies mit dem Befehl ip a. Ansonsten ist die DHCP-Konfiguration des Routers defekt.
  • Es sollte ein Ping auf den Router gelingen. Wenn Sie sich an die Beispiele gehalten haben, ist das 192.168.1.1.
  • Auch der Ping ins Internet auf die Adresse 8.8.8.8 sollte klappen. Schwierigkeiten deuten darauf hin, dass das Routing oder das NAT des Routers nicht klappt.
  • Schließlich sollte auch der Ping auf einen Internetnamen wie www.willemer.de klappen. Ansonsten geht es dem DNS auf dem Router nicht gut.

Statische Adresse

Genau wie ein Router sollte auch ein Server möglichst eine gleichbleibende IP-Adresse haben.

Adresse selbst festlegen

Die feste Adresse kann über eine statische Adresse erfolgen, die im Server selbst festgelegt wird. Wie schon in Kapitel 20 beschrieben, verwendet Debian dazu die Deklaration in /etc/network, Ubuntu und Linux Mint verwenden /etc/netplan. Im Gegensatz zum Router benötigt der Server allerdings noch Gateway und DNS-Server, falls er mal auf das Internet zugreifen will.

  • Festlegen der Adressen über network/interfaces

    auto lo
    iface lo inet loopback

    allow-hotplug enp0s3
    iface enp0s3 inet static
    address 192.168.1.50
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameserver 192.168.1.1

    Sie starten die Netzwerkkonfiguration durch den folgenden Befehl neu:

    # systemctl restart networking

    http://willemer.de/informatik/net/interfaces.htm

  • Festlegen der Adressen über netplan

    network:
    version: 2
    renderer: NetworkManager
    ethernets:
    enp0s3:
    dhcp4: no
    addresses:
    - 192.168.1.50/24
    nameservers:
    addresses: [192.168.1.1]
    routes:
    - to: default
    via: 192.168.1.1

    Nach dieser Eingabe kann die Konfiguration aktiv geschaltet werden.

    # netplan apply

    http://willemer.de/informatik/srvlinux/netplan.htm

Ein erneuter Aufruf von ip a sollte enp0s3 nun die Adresse 192.168.1.50 anzeigen.

Server per DHCP festlegen

Wenn nun jeder Server seine eigene Adresse festlegt, erfolgt dies außerhalb der Adressvergabe durch den DHCP-Server, und so etwas ist niemals gut. Es hat vor allem den Nachteil, dass dieser Server auf die IP-Adresse auch dann festgelegt ist, wenn er in ein anderes Umfeld umgesetzt werden soll. Es wäre besser, die IP-Adresse würde im Router in der DHCP-Konfiguration festgelegt, in der bereits die IP-Adressvergabe für das lokale Netzwerk erfolgt.

Dazu wird im DHCP-Server eingetragen, welche Hardware-Adresse der Netzwerkadapter des Servers hat. Immer wenn dieser Netzwerkadapter nach einer IP-Adresse fragt, sorgt der DHCP-Server dafür, dass er immer wieder dieselbe IP-Adresse erhält.

Dazu benötigen Sie natürlich zunächst die Hardware-Adresse, die Sie aus der Ausgabe des Befehls ip a unter link oder ether erfahren.

# ip a
...
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
link/ether 08:00:27:0e:f8:91 brd ff:ff:ff:ff:ff:ff

Hier ist es die Adresse 08:00:27:0e:f8:91. Diese muss auf dem Router in der Datei /etc/dhcp/dhcpd.conf für einen Host eingetragen werden, hier unter dem Namen meinserver. Die IP-Adresse wird auf 192.168.1.50 festgelegt.

host meinserver {
hardware ethernet 08:00:27:0e:f8:91;
fixed-address 192.168.1.50;
}

Starten Sie nun den DHCP-Server auf dem Router, damit er die Konfiguration einliest.

# systemctl start isc-dhcp-server

Nun müssen Sie dem Server entweder das virtuelle Netzwerkkabel abziehen und wieder einstecken oder ihn neu starten. Anschließend sollte er auf der Adresse 192.168.1.50 stehen.

# ip a
...
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
link/ether 08:00:27:0e:f8:91 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.50/24 brd 192.168.2.255 scope global ...

Den Server im Namensdienst DNS eintragen

Der DNS-Server im Router sorgt derzeit nur dafür, dass die Computer im lokalen Netzwerk an den DNS des Providers kommen. Aber er kann darüber hinaus auch im lokalen Netzwerk Namen festlegen. Gerade bei einem Server ist es ja sinnvoll, dass er einen Namen trägt und nicht nur über seine IP-Adresse bekannt ist.

Wenn Sie sich die Beschreibung des DNS-Servers in Kapitel 8 ansehen, wissen Sie, dass Sie zwei neue Zonen einrichten müssen. Die eine Zone bildet den Namen auf die Nummer ab und die andere die Nummer auf den Namen. Zonen werden in der Datei /etc/bind/named.conf.local eingetragen.

// named.conf.local
zone "willemer.edu" {
type master;
file "/etc/bind/db.willemer.edu";
};

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1";
};

Für jede der beiden Zonen muss also eine Datei angelegt werden. Mit der Datei db.willemer.edu geht es los. Sie legt für jeden Namen eine Nummer fest. Entscheidend ist die letzte Zeile.

; db.willemer.edu
$TTL 86400
@ IN SOA admin.willemer.edu. root.localhost. (
123 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS localhost.
server IN A 192.168.1.50

Somit wird jedes Mal, wenn der Name »server« im lokalen Netzwerk benutzt wird, die IP-Adresse 192.168.1.50 verwendet.

In manchen Fällen wird auch die Rückmeldung benötigt, also welchen Namen der Host mit der IP-Adresse 192.168.1.50 trägt. Dies wird in der Datei db.192.168.1 festgelegt.

; db.192.168.1
$TTL 604800
@ IN SOA admin.willemer.edu. root.localhost. (
14 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
50 IN PTR server.willemer.edu.

Der Netzwerkanteil der IP-Adresse ergibt sich aus der Zonendefinition in der Datei named.conf.local. Hier in der Datei db.192.168.1 wird nur noch der Hostanteil, die 50 auf den FQHN (fully qualified host name) server.willemer.edu, abgebildet.

Damit der DNS-Server diese Einträge auch zur Kenntnis nimmt, ist ein Neustart des DNS-Servers erforderlich:

# systemctl restart bind9