Wie Sie OpenVPN in UCS, aber auch in Debian oder Ubuntu installieren können, um damit Ihre gesamten Authentifizierungs-Prozesse beim Einloggen Ihrer Mitarbeiter ins Netzwerk, auch von außerhalb, zu sichern, erklärt unser Kollege Kevin ausführlich in einem von der Linux Foundation veröffentlichten Tutorial: Secure your Samba Authentications Automatically via OpenVPN

Wir möchten lhnen dieses ausführliche How-To nicht vorenthalten und haben es deshalb für Sie übersetzt:

Sichern Sie Ihre Samba Authentifizierungen automatisch durch OpenVPN ab

Samba 4 ist das Werkzeug der Wahl, um Linux-basiertes Identity Management für verschiedene Kunden zu bieten.

Eine wachsende Zahl von Organisationen stellen jedoch Heimarbeitsplätze zur Verfügung oder verwalten verteilte Umgebungen wie dies zum Beispiel bei Baufirmen der Fall ist, die einen Computer auf jeder Baustelle besitzen, oder bei Versicherungen, die mehrere Ein-Mann-Büros mit je einem Rechner besitzen und verwalten müssen.

Wenn diese Unternehmen in den Genuss der Vorteile von Samba wie die Nutzung von Single Sign-On und Richtlinien kommen möchten, muss der Domäne eine VPN-Lösung hinzugefügt werden, die bereits vor einem Login des Benutzers aktiv wird.

Dieses How-to beschreibt ausführlich, wie Sie OpenVPN zu einer vorhandenen Samba 4-Installation hinzufügen können, um automatisch Client-Authentifizierungen über ein nicht vertrauenswürdiges Netzwerk abzusichern.

Voraussetzung

Die meisten Linux-Distributionen kommen vorinstalliert mit der benötigten Software.

Für dieses Tutorial sind wir davon ausgegangen, dass Sie bereits Samba 4 und eine Zertifizierungsstelle auf Ihrem Server installiert haben. Wenn Sie noch auf der Suche nach einer Distribution mit Samba 4 und einer integrierten Zertifizierungsstelle sind, können Sie dafür in wenigen Schritten Univention Corporate Server installieren, der auch das Benutzermanagement einfach macht.

Bei Debian oder Ubuntu können Sie mit den easy-rsa Tools die Zertifizierungsstelle manuell erstellen.

Der Artikel Build a Real VPN with OpenVPN bietet Ihnen eine Einführung, wie man OpenVPNs Public Key Infrastructure (PKI) einrichtet.

Darüber hinaus bietet die OpenVPN-Dokumentation in Debian unter /usr/share/doc/openvpn/examples/easy-rsa/2.0/ viele nützliche Werkzeuge für die Einrichtung einer Zertifizierungsstelle für OpenVPN.

Der Server oder die virtuelle Maschine benötigt eine feste IP oder nutzt einen Dienst, wie z. B. DynDNS, um aus dem Internet lokalisierbar zu sein, ohne dass der Endnutzer zusätzliche Schritte vornehmen müsste.

Installation von OpenVPN

OpenVPN ist ein Open Source-basierter virtueller Netzwerk-Daemon, dessen Client es einem Computer ermöglicht, sicher auf einen Remote-Server zuzugreifen. Die meisten Distributionen haben OpenVPN in ihrem Repository enthalten. So kann es über das Paketverwaltungssystem auf Debian-basierten Systemen wie Debian, Ubuntu oder UCS installiert werden:

$ sudo apt-get install openvpn

Konfigurieren eines OpenVPN Servers

Beim Start von OpenVPN scannt die Software das Verzeichnis /etc/openvpn für alle Dateien, die auf „.conf“ enden und startet einen separaten Serverprozess für jede einzelne. Dadurch sollten die folgenden Konfigurationsdateien, die in „/etc/openvpn/clientconnect .conf“ kopiert wurden, beim Neustart des OpenVPN automatisch ausgeführt werden.

Bitte beachten Sie, dass Zeilen, die mit „#“ beginnen, einen Kommentar bezeichnen, und dass Sie die Werte an Ihre Umgebung anpassen müssen.

## Die folgenden Einträge sollten auf Ihre Zertifikatinformationen verweisen.
## Verschlüsselungsparameter
dh /etc/openvpn/dh2048.pem
## Zertifikat der Zertifikatstelle
ca /etc/univention/ssl/ucsCA/CAcert.pem
## Serverzertifikat
cert /etc/univention/ssl/master/cert.pem
## Privater Schlüssel für das Serverzertifikat
key /etc/univention/ssl/master/private.key
## Zertifikatssperrliste
crl-verify/etc/openvpn/crl.pem

## Encryption Cypher, der für VPN verwendet wird
cipher AES-256-CBC

## zu nutzender Komprimierungsalgorithmus
comp-lzo

## Einem Gerät immer dieselbe IP geben
ifconfig-pool-persist ipp.txt

## Eine Route für das Server-Netzwerk auf dem Client anlegen
push "route 10.210.0.0 255.255.0.0"
push "redirect-gateway def1"

## Stellen Sie den aktuellen Server als DNS-Server für Domänenserver ein
## Ändern Sie die IP auf die interne IP des Servers
push "dhcp-option DNS 10.210.140.219"
## Schieben Sie die Domain des Servers als DNS-Domain
push "dhcp-option DOMAIN outsidevpn.univention.com"

## Zusätzliche Serverkonfiguration
keepalive 10 120
persist-key
persist-tun

## Konfiguriere die Logdatei und die Ausführlichkeit
verb 1
mute 5
status /var/log/openvpn-status.log

## Der Port, auf den der VPN-Server hören soll
port 1194

## Das Netzwerk, das für die Kommunikation innerhalb des VPN verwenden werden soll.
server 172.24.1.0 255.255.255.0

## Zusätzliche Netzwerkeinstellungen
management /var/run/management-udp unix
dev tun
topology subnet
proto udp

In den meisten Fällen muss die diffie hellman Parameterdatei erstellt werden. Der passende Befehl dafür ist

für UCS:

$ sudo openssl dhparam -out "/etc/openvpn/dh2048.pem" 2048

für Debian / Ubuntu:

$ sudo ./easyrsa gen-dh

Bei UCS müssen die widerrufenen Zertifikate zwischen den Formaten umgewandelt werden.

$ sudo -- sh -c "/usr/bin/wget -qO /etc/openvpn/ca.crl http://$(/usr/sbin/ucr get ldap/master)/ucsCA.crl && /usr/bin/Openssl crl -inform der -outform pem -in /etc/openvpn/ca.crl -out /etc/openvpn/crl.pem"

Da Zertifikate beim Ausstellen zurückgezogen werden könnten, wäre es ratsam, einen Cron Job einzurichten, um die Liste regelmäßig umzuwandeln.

Firewall

Möglicherweise müssen Sie auch die Firewall öffnen. Bitte beachten Sie, dass in diesem Artikel davon ausgegangen wird, dass der Port in der obigen Konfiguration unverändert bleibt. Wenn nicht, ändern Sie diesen bitte auch in den folgenden Befehlen.

In UCS können Sie dieses über die Configuration Registry erreichen.

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

Bei Debian und Ubuntu können Sie den Port manuell zu Ihrer IP-Tabellenkonfiguration hinzufügen.

$ sudo iptables -A INPUT -p "udp" --dport 1194 -j ACCEPT

Erstellung der Client-Konfiguration

Die Client-Konfiguration besteht aus zwei Teilen – eine für die Client-Zertifikate und eine für die Konfigurationsdatei.

Die Client-Zertifikate sind einfach einzurichten:

Auf Debian-/Ubuntu-Servern erstellen die folgenden Befehle die Zertifikate für einen einzelnen Client.

$ sudo /usr/share/doc/openvpn/examples/easy-rsa/2.0/pkitool clientname

Auf dem UCS Master erstellt der folgende Befehl die Zertifikate für alle aktuellen und zukünftigen Clients. Sie werden gespeichert in „/etc/univention/ssl/“

$ sudo ucr set ssl/host/objectclass= 'univentionDomainController, univentionMemberServer, univentionClient, univentionMobileClient, univentionCorporateClient, univentionWindows'
$ sudo univention-directory-listener-ctrl resync gencertificate

Die Client-Konfigurationsdatei selbst ist für jedes System dieselbe. Passen Sie die folgenden Einstellungen Ihren Bedürfnissen an und speichern Sie sie als clientconfig.opnv ab.

## Client Protokoll und Devices
client
dev tun
proto udp

## Serveradresse und Port
## Ändern Sie die IP entsprechend Ihrer externen Adresse
remote 52.211.178.248 1194

## Hostname des Servers
verify-x509- name master name-prefix

## Client Konfiguration
resolv-retry infinite
nobind
persist-key
persist-tun

## Zertifikatsnamen und Locations
ca CAcert.pem
cert cert.pem
key private.key

## Verschlüsselungskonfiguration
cipher AES-256-CBC
comp-lzo

## Protokollierung Verbosity
verb 3

Kopiere diese Konfigurationsdatei, das Root-CA, auf UCS /etc/univention/ssl/ucsCA/CAcert.pem und die Client-Zertifikate nach C: \Programme\OpenVPN\config\

Autostart des VPN Clients

Um VPN automatisch auf dem Client zu starten, gehen Sie zur Systemsteuerung, wählen Sie „kleine Symbole“ als Ansicht, gehen Sie dann zu Computerverwaltung und dann zu Services.

Hier wählen Sie den OpenVPN-Dienst, klicken mit der rechten Maustaste auf Eigenschaften und ändern den Starttyp auf „automatisch“. Beim nächsten Neustart startet die obige Konfiguration für OpenVPN automatisch.

Domain Join

Angesichts der Tatsache, dass NetBIOS nicht ohne zusätzliche manuelle Änderungen übertragen wird, muss der Domain-Join mit dem vollständigen Domain-Namen abgeschlossen werden.

Nach einem Neustart sollten Sie in der Lage sein, sich beim Client als Domänenbenutzer anzumelden.

Sicherheitsbedenken

Obwohl dieses Setup die beste Möglichkeit darstellt, auf recht einfache Weise eine Verbindung von einem Computer zu einem externen Samba-basierten Domänencontroller herzustellen, stellt es auch ein Risiko dar.

Ein gestohlener PC wird dabei immer Zugriff auf die Domäne behalten und dem Dieb so die Möglichkeit geben, zahlreiche Benutzernamen und Passwort-Kombinationen zu testen. Starke Passwort-Richtlinien sowie organisationsweite Richtlinien in Bezug auf gestohlene Computer können helfen, dieses Risiko zu minimieren. Die Erweiterung des Setups mit Smart Card-verschlüsselten Zertifikaten würde jedoch die sicherste Option darstellen.

Schlussfolgerung

Die Automatisierung der VPN-Verbindung in Verbindung mit Samba-basierten Domänencontrollern bietet einen bequemen und dennoch sicheren Zugriff auf zentrale Authentifizierungs- und Richtliniendienste. Diese Technik ermöglicht es Offsite-Benutzern und -Computern, sich mit zentralisierten Anmeldedaten zu authentifizieren und domänenweite Einstellungen hochzuladen. Es trägt damit zur Durchsetzung von Compliance-Richtlinien bei. Gleichzeitig verbessert es die Benutzererfahrung durch die Verringerung der Anzahl an Anmeldedaten und Schritten, die erforderlich sind, um produktiv zu werden.

In Verbindung mit UCS bietet die Kombination von OpenVPN und Samba obendrein eine einfach zu bedienende Linux-basierte Identity Management Lösung.

Nähere Informationen zu OpenVPN mit UCS erhalten Sie im Univention App Katalog.

Bei weiteren Fragen, nehmen Sie Kontakt zu uns auf oder hinterlassen hier direkt einen Kommentar.

OpenVPN mit UCS als virtuelles Image testen!

 

UCS Core Edition jetzt kostenfrei einsetzen!

Zum Downloadbereich
Kevin Dominik Korte

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