Die gehäuften Ausfälle bei den Amazon Web Services (AWS) und die Angriffe auf das globale DNS haben gleichermaßen gezeigt, wie gefährdet sogar so große und vermeintlich professionell abgesicherte Netzwerke sein können. Und sie haben die Notwendigkeit vor Augen geführt, sensible Netzwerke unbedingt über mehrere Standorte zu verteilen. Eine besondere Bedeutung hat eine solche Verteilung, wenn eine zentralisierte Benutzerauthentifizierung eingesetzt wird. Denn hier beträfe der Ausfall eines einzigen nur an einer Stelle betriebenen Services, die Accounts sämtlicher, im Falle von Amazon, Zigtausender Nutzer und deren Berechtigungen.

Deswegen möchte ich im Folgenden ein Möglichkeit aufzeigen, wie Sie Ihr Netzwerk, auch wenn dies vermutlich nicht ganz die Größenordnung von Amazon oder DNS hat, gegen technische Ausfälle oder kriminelle Attacken absichern.

Erfahren Sie in einer einfach zu folgenden Schritt-für-Schritt Anleitung, wie Sie dafür mehrere Samba 4 basierende Server verbinden und zu Ihrer eigenen, sicheren Multi-Server Umgebung gelangen. Eine gute Ergänzung zu diesem Thema bietet der Artikel Sichere Samba Authentifizierungen mit OpenVPN, in dem ich die sichere Authentifizierung bei Cloud Domain Controllern erklärt habe.

Sie können diese Anleitung sowohl für eine Installation von UCS an zwei Standorten verwenden als auch für die Verbindung von zwei UCS Instanzen in unterschiedlichen Rechenzentren nutzen – zum Beispiel bei AWS.

Der Einsatz mehrerer Server schützt ihr Netzwerk vor dem Ausfall eines einzigen Datacenters und ermöglicht es, die IT weiter zu nutzen, auch wenn ein einzelner Server aus dem Netzwerk nicht verfügbar ist. Gleichzeitig können Sie auch die Server, aus Netzwerksicht, näher an den Arbeitsplätzen positionieren und dadurch den Login effektiver gestalten und die Produktivität erhöhen.

Dabei gilt im Umkehrschluss aber auch, dass eine falsche Konfiguration das Netzwerk im besten Fall über Gebühr beansprucht und im schlimmsten Fall dazu führt, dass es gar nicht mehr funktionsfähig ist.

Anforderungen

Server 1

Für die nun folgende Anleitung nehmen wir als gegeben, dass ein Samba 4 Domain Controller bereits zur Verfügung steht, in diesem Fall basierend auf UCS. Univention Corporate Server (UCS) bietet ein umfangreiches, aber gleichzeitig einfach zu nutzendes Identity Management System, das ein vorkonfiguriertes Samba 4 mitliefert. Das Nutzer- und Rechtemanagement von UCS basiert auf einem Domainkonzept, das grundsätzlich bereits auf mehrere Server ausgelegt ist. In diesem Beispiel übernimmt Server 1 die Rolle des UCS Masters oder Backup.

Server 2

Weiterhin gehen wir für das beschriebene Beispielszenario davon aus, dass Server 2 am Zielstandort steht. Bitte beachten Sie bei der Konfiguration Ihres eigenen Szenarios, dass Sie den Punkt „Automatisch Joinen/Automatic Join“ im Setup deaktivieren müssen. Bei der Softwareauswahl sollten Sie außerdem den AD-Kompatiblen Domain Controller ausgewählt haben.

$ sudo apt-get install samba

VPN Geräte

Das Beispielszenario funktioniert sowohl mit zwei dedizierten VPN Servern als auch mit OpenVPN auf den Domain Controllern. Beides bietet Vor- und Nachteile im Betrieb der Domain.

Der erste Schritt: Einrichten einer VPN-Verbindung

Als erstes müssen Sie nun die VPN Verbindung zwischen den beiden Netzwerken erstellen.

Screenshot UCS Installation

Installation

Samba nutzt verschiedene Ports und Protokolle, um zwei Server zu verbinden. Dies sind unter anderem LDAP, Kerberos und DNS. Durch Nutzung eines VPNs lässt sich die Anzahl der Verbindungen, die über das Internet laufen, auf eine einzige reduzieren, wodurch es deutlich einfacher wird, diese abzusichern. OpenVPN ist hier das Tool der Wahl. Mehr Informationen zu den Gründen dafür finden Sie im bereits oben erwähnten Artikel Sichere Samba Authentifizierungen mit OpenVPN.

Wenn Sie OpenVPN noch nicht installiert haben, können Sie dies durch folgenden Befehl nachholen:

$ sudo apt-get install openvpn

In den meisten Fällen nutzt OpenVPN den Port 1194 für die Verbindung von Endgeräten. Wir verwenden für unsere Beispielinstallation daher 1195 für die Verbindung, um eine Kollision der beiden Dienste zu verhindern. Denken Sie daran, dass Sie diesen Port auch in einer eventuellen Firewall öffnen müssen.

Auf dem UCS System lässt sich der Port wie folgt öffnen:

$ sudo ucr set security/packetfilter/udp/1195/all=ACCEPT
$ sudo service univention-firewall restart

Konfiguration

Als erstes muss ein geheimer Schlüssel erstellt werden, mit dem die Verbindung gesichert wird. Dazu kann folgender Befehl genutzt werden:

$ sudo openvpn --genkey --secret /etc/openvpn/static.key

Beide Seiten brauchen eine fast identische Konfiguration, die in /etc/openvpn/server2server.conf gespeichert werden kann.

## Topology and protocol settings
dev tun
proto udp
management /var/run/management-udp unix

## the shared secret for the connection
secret /etc/openvpn/static.key

## Encryption Cypher to use for the VPN
cipher AES-256-CBC

## Compression algorithm to use
comp-lzo

## The port on which the VPN Server should listen on
port 1195

## The address used internally by OpenVPN
ifconfig 10.255.255.10 10.255.255.11

## Route traffic to remote network
## The network should be the one, used by the remote server
route 10.200.10.0 255.255.255.0

## Additional server configuration
keepalive 10 120
persist-key
persist-tun

## Configure the logfile and the verbosity
verb 1  
mute 5
status /var/log/openvpn-status.log

Bei dem zweiten Server müssen die Adressen in der „route“ und „ifconfig“ Zeile getauscht werden. Auch muss der Befehl „remote“ hinzugefügt werden. Die sich daraus ergebende, komplette Konfig-Datei sieht wie folgt aus:

## Topology and protocol settings
dev tun
proto udp
management /var/run/management-udp unix

## the shared secret for the connection
secret /etc/openvpn/static.key

## Encryption Cypher to use for the VPN
cipher AES-256-CBC

## Compression algorithm to use
comp-lzo

## The external DNS name or IP of the other VPN
remote vpnserver.univention.com 1195

## The address used internally by OpenVPN
ifconfig 10.255.255.11 10.255.255.10

## Route traffic to remote network
## The network should be the one, used by the remote server
route 10.200.10.0 255.255.255.0

## Additional server configuration
keepalive 10 120
persist-key
persist-tun

## Configure the logfile and the verbosity
verb 1  
mute 5
status /var/log/openvpn-status.log

Verbindung erstellen

Nachdem die Konfiguration erstellt wurde, muss der geheime Schlüssel auf den zweiten Server kopiert werden. Danach muss der OpenVPN Dienst auf Server 1 und dann auf Server 2 neu mit folgendem Befehl gestartet werden:

$ sudo service openvpn restart

Änderungen an Server 1

Nachdem die VPN-Verbindungen erstellt wurden, muss der zweite Server der Domain beitreten. Dafür sind zwei kleine Änderungen an Server 1 notwendig.

Als erstes muss der zweite Server als sekundärer DNS Server eingetragen werden. Dadurch ist sichergestellt, dass die Replikation immer die Endpunkte finden kann. Falls Ihre Domain bereits aus mehreren Servern besteht, sollte dieser Eintrag an mindestens einem Server pro Standort durchgeführt werden.

Auf UCS lässt sich der Nameserver durch folgenden Befehl anpassen:

$ sudo ucr set nameserver2=10.200.10.11

Join von Server 2

Vorbereitungen

Wie auf Server 1, sollte auch auf Server 2 das andere System als DNS Fallback dienen. Dabei empfehle ich Ihnen, folgende Reihenfolge der DNS Server beizubehalten: Der erste DNS Server ist der Server selbst, dann folgt der DC-Master und zuletzt kann ein weiterer DNS Server gesetzt werden. Letztes natürlich unter der Voraussetzung, dass die Domäne mehr als zwei Server hat.

Auch hier lautet der Befehl:

$ sudo ucr set nameserver2=10.210.237.171

Sie sollten außerdem den Zeit Server setzen, sodass beide Uhren gleich laufen.

$ sudo ucr set timeserver=10.210.237.171

Als letzten Schritt müssen Sie, falls Ihr Server eine neue AD-Site aufbauen soll, diese jetzt konfigurieren. Sites dienen dazu, Endgeräten eine Präferenz für einen bestimmten Server oder eine Gruppe von Servern zu geben. Dadurch lässt sich die Last zwischen Servern basierend auf der Netzwerkentfernung verteilen.

Auf einem UCS System muss dies vor dem Join mit folgendem Befehl passieren:

ucr set samba4/join/site=my_secondsite

Domain Join

Jetzt ist es an der Zeit, dass der zweite Server der Domain beitritt. Dazu muss nur der Univention Join aufgerufen werden, bevor Sie die Installation Ihrer neuen, sicheren Serverumgebung erfolgreich beenden können.

$ sudo univention-join

Zusammenfassung

Ich hoffe, dass ich Ihnen mit dieser Schritt-für-Schritt Anleitung helfen konnte, eine auf mehrere Standorte verteilte Serverumgebung aufzubauen. Auf den ersten Blick sicher eine komplexe Aufgabe, die Sie mit der oben beschriebenen Anleitung aber sicher meistern sollten. Im Ergebnis rechtfertigt das sehr viel robustere und oft auch schnellere Netzwerk meiner Meinung nach auf jeden Fall die Aufwände, einen Domain Controller in der Cloud oder an einem anderen Standort zu platzieren. Außerdem können Sie eine Nutzer- und Rechteverwaltung, die über einen Cloud-Anteil verfügt, als Endpunkt für weitere Cloud-Dienste wie zum Beispiel G-Suite oder Office 365 benutzen, ohne dass sie von der Verbindung zu einem zentralen Standort abhängig ist.

Mit UCS lassen sich dabei viele der komplexen Aufgaben deutlich vereinfachen. So kann man schnell eine einheitliche Domäne erstellen, die alle Anforderungen an Verfügbarkeit und Compliance erfüllt, auch wenn man mehrere Standorte oder Cloud-Umgebungen wie AWS berücksichtigen muss.

Kevin Dominik Korte studierte Informatik an der Jacobs University Bremen und schloss 2011 mit einem Master of Science ab. Anschließend arbeitete er zwei Jahre im Professional Services Team von Univention. Seit Oktober 2013 ist er President of Univention North America Inc. und für die Geschäftsentwicklung in den USA verantwortlich.

Was ist Ihre Meinung? Hinterlassen Sie einen Kommentar!

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