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!