GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> OpenVPN

Konfigurieren Sie die OpenVPN-LDAP-basierte Authentifizierung

In diesem Handbuch erfahren Sie, wie Sie die OpenVPN-LDAP-basierte Authentifizierung konfigurieren. Die Identifizierung und Authentifizierung von Benutzern ist normalerweise der erste Schritt bei der Implementierung der Zugriffskontrolle. Der OpenVPN-Server unterstützt mehrere Authentifizierungsprotokolle und kann daher so konfiguriert werden, dass er Verbindungs-Client-Informationen von einem LDAP-Server erhält und diese Informationen zusätzlich zur Verwendung der Client-Zertifikate und -Schlüssel als Grundlage für die Authentifizierung des Clients verwendet.

Außerdem kann mit der OpenLDAP-Authentifizierung das Problem beseitigt werden, dass für jeden sich verbindenden Client individuelle OpenVPN-Client-Zertifikate generiert werden müssen.

Erfahren Sie, wie Sie den OpenLDAP-Server unter CentOS 8 installieren und einrichten, indem Sie dem folgenden Link folgen;

OpenLDAP unter CentOS 8 installieren und einrichten

OpenVPN-LDAP-basierte Authentifizierung konfigurieren

Installieren Sie das OpenVPN-Plugin für die LDAP-Authentifizierung

Um die OpenVPN-LDAP-basierte Authentifizierung zu konfigurieren, müssen Sie das OpenVPN-Plugin für die LDAP-Authentifizierung installieren. Das Plugin heißt openvpn-auth-ldap und es implementiert Benutzername/Passwort-Authentifizierung über LDAP für OpenVPN.

Unter CentOS 7 benötigen Sie EPEL-Repos, um das Plug-in zu installieren;

yum install epel-release
yum install openvpn-auth-ldap

Auf Ubuntu-Systemen

apt install openvpn-auth-ldap

Unter CentOS 8 bieten die EPEL-Repos dieses Paket zum jetzigen Zeitpunkt leider nicht an.

In dieser Demo betreiben wir einen OpenVPN-Server auf einem CentOS 7-System.

Nach der Installation des openvpn-auth-ldap Paket, sollten Sie nun die erforderlichen Module unter /usr/lib64/openvpn haben Verzeichnis.

Die Module sind auch unter /usr/lib/openvpn , Verzeichnis.

Das Paket installiert auch die Konfigurationsdatei für die OpenVPN-LDAP-Authentifizierung, /etc/openvpn/auth/ldap.conf .

Auf Ubuntu-Systemen finden Sie die Beispiel-OpenVPN-LDAP-Authentifizierungskonfiguration unter;

/usr/share/doc/openvpn-auth-ldap/examples/auth-ldap.conf

OpenVPN-Server für LDAP-basierte Authentifizierung konfigurieren

Sobald Sie die erforderlichen Plugins installiert haben, müssen Sie als Nächstes den OpenVPN-Server für die LDAP-basierte Authentifizierung konfigurieren.

Öffnen Sie die OpenVPN LDAP-basierte Authentifizierungskonfigurationsdatei und definieren Sie Ihre OpenLDAP-Serverspezifikationen;

Erstellen Sie ein Backup der Konfiguration.

cp /etc/openvpn/auth/ldap.{conf,.old}

Wenn das Verzeichnis/die Datei nicht existiert, erstellen Sie einfach eines;

mkdir /etc/openvpn/auth

Kopieren Sie anschließend die Beispielkonfigurationsdatei

cp /usr/share/doc/openvpn-auth-ldap/examples/auth-ldap.conf /etc/openvpn/auth/ldap.conf

Als nächstes öffnen Sie die Konfigurationsdatei zum Bearbeiten.

vim /etc/openvpn/auth/ldap.conf

Nachfolgend finden Sie unsere Beispielkonfiguration (ohne kommentierte Zeilen) gemäß unserem OpenLDAP-Server-Setup. Nehmen Sie die entsprechenden Konfigurationen vor;

<LDAP>
	URL		ldap://ldapmaster.kifarunix-demo.com
	BindDN		cn=readonly,ou=system,dc=ldapmaster,dc=kifarunix-demo,dc=com
	Password	[email protected]
	Timeout		15
	TLSEnable	no
	FollowReferrals no
</LDAP>
<Authorization>
	BaseDN		"ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com"
	SearchFilter	"(uid=%u)"
	RequireGroup	false
</Authorization>

Wenn Sie in Bezug auf die Gruppenauthentifizierung eine feinkörnigere OpenVPN-Zugriffskontrolle erzwingen möchten, sodass nur bestimmte Benutzer, die sich über OpenLDAP authentifizieren, eine Verbindung zum OpenVPN-Server herstellen können, können Sie die OpenLDAP-Gruppenmitgliedschaft verwenden.

Zum Beispiel haben wir auf unserem OpenLDAP-Server eine Nur-VPN-Gruppe, die nur Benutzer enthält, die sich mit dem OpenVPN-Server verbinden dürfen;

ldapsearch -Y ExTERNAL -H ldapi:/// -b ou=groups,dc=ldapmaster,dc=kifarunix-demo,dc=com -LLL -Q "(cn=vpnonly)"
dn: cn=vpnonly,ou=groups,dc=ldapmaster,dc=kifarunix-demo,dc=com
objectClass: groupOfNames
cn: vpnonly
member: uid=koromicha,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com
member: uid=johndoe,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com

Sehen Sie, wie Sie eine OpenLDAP-Gruppenmitgliedschaft erstellen, indem Sie der Anleitung unten folgen;

So erstellen Sie OpenLDAP-Mitgliedergruppen

Um die Authentifizierung der Gruppenmitgliedschaft zu aktivieren, legen Sie daher den Wert von RequireGroup fest Option auf true setzen und den Gruppenabschnitt so bearbeiten, dass Ihre Konfiguration folgendermaßen aussieht:

<LDAP>
	URL		ldap://ldapmaster.kifarunix-demo.com
	BindDN		cn=readonly,ou=system,dc=ldapmaster,dc=kifarunix-demo,dc=com
	Password	[email protected]
	Timeout		15
	TLSEnable	no
	FollowReferrals no
</LDAP>
<Authorization>
	BaseDN		"ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com"
	SearchFilter	"(uid=%u)"
	RequireGroup	true
	<Group>
		BaseDN		"ou=groups,dc=ldapmaster,dc=kifarunix-demo,dc=com"
		SearchFilter	"memberOf=cn=vpnonly,ou=groups,dc=ldapmaster,dc=kifarunix-demo,dc=com"
		MemberAttribute	uniqueMember
	</Group>
</Authorization>

In diesem Fall nur Benutzer koromicha und johndoe kann sich mit dem OpenVPN-Server verbinden.

Speichern und beenden Sie die Konfiguration, nachdem Sie die entsprechenden Änderungen vorgenommen haben.

Als nächstes konfigurieren Sie den OpenVPN-Server so, dass er OpenLDAP für die Authentifizierung verwendet, indem Sie die folgende Zeile zur Konfigurationsdatei des OpenVPN-Servers hinzufügen.

plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/auth/ldap.conf

Sie können diese Zeile einfach wie folgt zur OpenVPN-Serverkonfigurationsdatei hinzufügen:

echo "plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/auth/ldap.conf" >> /etc/openvpn/server/server.conf

Achten Sie darauf, den richtigen Pfad zum Modul festzulegen. Unter Ubuntu 18.04/20.04 lautet der Pfad beispielsweise /usr/lib/openvpn/openvpn-auth-ldap.so .

Daher würde die Zeile wie folgt aussehen:

plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth/ldap.conf

Client-Benutzername/Passwort-Authentifizierung aktivieren

Bearbeiten Sie als Nächstes die Client-Konfigurationsdatei so, dass sie den auth-user-pass enthält Direktive zum Aktivieren der Benutzername/Passwort-Authentifizierungsmethode.

Dies ist zum Beispiel eine unserer Beispiel-Client-Konfigurationsdatei, die auf unserem OpenVPN-Server-Setup basiert.

client
tls-client
pull
dev tun
proto udp
remote 192.168.2.132 1194
resolv-retry infinite
nobind
#user nobody
#group nogroup
persist-key
persist-tun
key-direction 1
remote-cert-tls server
comp-lzo
verb 3
auth-nocache
dhcp-option DNS 8.8.8.8
dhcp-option DNS 10.8.0.1
auth SHA512
auth-user-pass
tls-auth /home/johndoe/ta-key
ca /home/johndoe/ca.crt
cert /home/johndoe/johndoe.crt
key /home/johndoe/johndoe.key

Starten Sie den OpenVPN-Serverdienst neu;

systemctl restart [email protected]

LDAP-Authentifizierung des OpenVPN-Clients überprüfen

Unsere Konfiguration ist nun abgeschlossen. Um zu überprüfen, ob alles in Ordnung ist, initiieren Sie die OpenVPN-Verbindung auf dem Client;

sudo openvpn johndoe.ovpn
Sat Apr 18 08:50:11 2020 OpenVPN 2.4.8 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Nov 1 2019
Sat Apr 18 08:50:11 2020 library versions: OpenSSL 1.1.1 FIPS 11 Sep 2018, LZO 2.08
Enter Auth Username: johndoe
Enter Auth Password: *************
...
Sat Apr 18 08:50:26 2020 /sbin/ip addr add dev tun0 10.8.0.60/24 broadcast 10.8.0.255
Sat Apr 18 08:50:26 2020 /sbin/ip route add 192.168.2.132/32 via 10.0.2.2
Sat Apr 18 08:50:26 2020 /sbin/ip route add 0.0.0.0/1 via 10.8.0.1
Sat Apr 18 08:50:26 2020 /sbin/ip route add 128.0.0.0/1 via 10.8.0.1
Sat Apr 18 08:50:26 2020 Initialization Sequence Completed

Wenn die Authentifizierung fehlschlägt;

...
Sat Apr 18 08:53:36 2020 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Sat Apr 18 08:53:36 2020 AUTH: Received control message: AUTH_FAILED
Sat Apr 18 08:53:36 2020 SIGTERM[soft,auth-failure] received, process exiting

Auf dem OpenVPN-Server sehen Sie eine solche Zeile in den Protokollen;

tail -f /var/log/openvpn/openvpn.log
...
192.168.56.1:53489 [johndoe] Peer Connection Initiated with [AF_INET]192.168.56.1:53489
johndoe/192.168.56.1:53489 OPTIONS IMPORT: reading client specific options from: /etc/openvpn/ccd/johndoe
johndoe/192.168.56.1:53489 PLUGIN_CALL: POST /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so/PLUGIN_CLIENT_CONNECT status=0
johndoe/192.168.56.1:53489 OPTIONS IMPORT: reading client specific options from: /tmp/openvpn_cc_565148162b7cd88618c8c5e6efba7007.tmp
johndoe/192.168.56.1:53489 MULTI: Learn: 10.8.0.60 -> johndoe/192.168.56.1:53489
johndoe/192.168.56.1:53489 MULTI: primary virtual IP for johndoe/192.168.56.1:53489: 10.8.0.60
johndoe/192.168.56.1:53489 PUSH: Received control message: 'PUSH_REQUEST'

Versuchen Sie, sich als janedoe mit dem OpenVPN-Server zu verbinden , der nicht im erlaubten vpnonly Gruppe. Dies wird automatisch fehlschlagen.

sudo openvpn janedoe.ovpn
Sat Apr 18 10:00:05 2020 OpenVPN 2.4.8 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Nov 1 2019
Sat Apr 18 10:00:05 2020 library versions: OpenSSL 1.1.1 FIPS 11 Sep 2018, LZO 2.08
Enter Auth Username: janedoe
Enter Auth Password: **************
...
Sat Apr 18 10:00:19 2020 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Sat Apr 18 10:00:19 2020 AUTH: Received control message: AUTH_FAILED
Sat Apr 18 10:00:19 2020 SIGTERM[soft,auth-failure] received, process exiting

Toll. Sie haben Ihre OpenVPN-Clients erfolgreich für die Authentifizierung über den OpenLDAP-Server konfiguriert.

Damit endet unser Leitfaden zur Konfiguration der OpenVPN-LDAP-basierten Authentifizierung. Viel Spaß.

Verwandte Tutorials

Feste IP-Adressen für OpenVPN-Clients zuweisen

Verbinden Sie sich mit OpenVPN mit Network Manager unter CentOS 8/Ubuntu 18.04

OpenVPN-Server auf CentOS 8 einrichten

Richten Sie IPSEC VPN mit StrongSwan auf Debian 10 ein

OpenVPN
  1. Konfigurieren Sie Ihren OpenVPN-Server unter Linux

  2. Konfigurieren Sie den LDAP-Client auf Ubuntu 20.04 - Schritt-für-Schritt-Anleitung?

  3. So konfigurieren Sie die Umgehung der SMTP-Authentifizierung in SmarterMail

  4. Installieren und konfigurieren Sie den OpenVPN-Client unter CentOS 8/Ubuntu 18.04

  5. Installieren und konfigurieren Sie den OpenVPN-Server FreeBSD 12

So installieren und konfigurieren Sie OpenVPN auf OpenSUSE Leap 42.1

So konfigurieren Sie OpenVPN unter Ubuntu 16.04

Konfigurieren Sie die OpenLDAP Multi-Master-Replikation unter Linux

Konfigurieren Sie den LDAP-Client auf Ubuntu 16.04 / Debian 8

So konfigurieren Sie den LDAP-Client unter Ubuntu 20.04

So richten Sie einen OpenVPN-Server unter Ubuntu 22.04 ein und konfigurieren ihn