GNU/Linux >> Linux Esercitazione >  >> Panels >> OpenVPN

Configura l'autenticazione basata su LDAP OpenVPN

In questa guida impareremo come configurare l'autenticazione basata su LDAP OpenVPN. L'identificazione e l'autenticazione degli utenti è solitamente il primo passo nell'implementazione del controllo degli accessi. Il server OpenVPN supporta più protocolli di autenticazione e quindi può essere configurato per ottenere informazioni sul client di connessione da un server LDAP e utilizzare tali informazioni come base per l'autenticazione del client oltre all'uso dei certificati e delle chiavi del client.

Inoltre, con l'autenticazione OpenLDAP, è possibile eliminare il problema di dover generare certificati client OpenVPN individuali per ogni client connesso.

Scopri come installare e configurare il server OpenLDAP su CentOS 8 seguendo il link sottostante;

Installa e configura OpenLDAP su CentOS 8

Configura l'autenticazione basata su LDAP OpenVPN

Installa il plug-in OpenVPN per l'autenticazione LDAP

Per configurare l'autenticazione basata su LDAP OpenVPN, è necessario installare il plug-in OpenVPN per l'autenticazione LDAP. Il plugin si chiama openvpn-auth-ldap e implementa l'autenticazione nome utente/password tramite LDAP per OpenVPN.

Su CentOS 7, sono necessari repository EPEL per installare il plug-in;

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

Sui sistemi Ubuntu;

apt install openvpn-auth-ldap

Su CentOS 8, sfortunatamente, i repository EPEL non forniscono questo pacchetto al momento della stesura di questo documento.

In questa demo, stiamo eseguendo un server OpenVPN sul sistema CentOS 7.

Dopo l'installazione di openvpn-auth-ldap pacchetto, ora dovresti avere i moduli richiesti sotto /usr/lib64/openvpn directory.

I moduli possono essere trovati anche in /usr/lib/openvpn , directory.

Il pacchetto installa anche il file di configurazione dell'autenticazione LDAP OpenVPN, /etc/openvpn/auth/ldap.conf .

Sui sistemi Ubuntu, troverai la configurazione di autenticazione LDAP OpenVPN di esempio in;

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

Configura il server OpenVPN per l'autenticazione basata su LDAP

Una volta installati i plug-in necessari, la prossima cosa sarebbe configurare il server OpenVPN per l'autenticazione basata su LDAP.

Apri il file di configurazione dell'autenticazione basata su LDAP OpenVPN e definisci le specifiche del tuo server OpenLDAP;

Crea un backup della configurazione.

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

Se la directory/il file non esiste, creane semplicemente uno;

mkdir /etc/openvpn/auth

Una volta fatto, copia il file di configurazione di esempio;

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

Quindi, apri il file di configurazione per la modifica.

vim /etc/openvpn/auth/ldap.conf

Di seguito è riportata la nostra configurazione di esempio (senza righe commentate) secondo la configurazione del nostro server OpenLDAP. Effettua le tue configurazioni appropriate;

<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>

Per quanto riguarda l'autenticazione di gruppo, se desideri applicare un controllo dell'accesso OpenVPN più dettagliato in modo tale che solo utenti specifici che si autenticano tramite OpenLDAP possano connettersi al server OpenVPN, puoi utilizzare l'appartenenza al gruppo OpenLDAP.

Ad esempio, nel nostro server OpenLDAP, abbiamo un gruppo solo VPN che contiene solo gli utenti autorizzati a connettersi al server OpenVPN;

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

Scopri come creare l'appartenenza a un gruppo OpenLDAP seguendo la guida di seguito;

Come creare gruppi di membri OpenLDAP

Pertanto, per abilitare l'autenticazione dell'appartenenza al gruppo, imposta il valore di RequireGroup opzione per true e modificare la sezione del gruppo in modo tale che la configurazione possa sembrare;

<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 questo caso, solo l'utente koromicha e johndoe può connettersi al server OpenVPN.

Salva ed esci dalla configurazione dopo aver apportato le modifiche appropriate.

Quindi, configura il server OpenVPN per utilizzare OpenLDAP per l'autenticazione aggiungendo la riga seguente al file di configurazione del server OpenVPN.

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

Puoi semplicemente aggiungere questa riga al file di configurazione del server OpenVPN come segue;

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

Assicurati di impostare il percorso corretto per il modulo. Ad esempio, su Ubuntu 18.04/20.04, il percorso è /usr/lib/openvpn/openvpn-auth-ldap.so .

Quindi, la riga sarebbe simile a;

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

Abilita autenticazione nome utente/password client

Quindi, modifica il file di configurazione del client per includere auth-user-pass direttiva per abilitare il metodo di autenticazione nome utente/password.

Ad esempio, questo è un nostro file di configurazione client di esempio basato sulla configurazione del nostro server OpenVPN.

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

Riavvia il servizio OpenVPN Server;

systemctl restart [email protected]

Verifica l'autenticazione LDAP del client OpenVPN

La nostra configurazione è ora completata. Per verificare che tutto sia a posto, avvia la connessione OpenVPN sul 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

Se l'autenticazione fallisce;

...
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

Sul server OpenVPN, vedrai una tale riga nei registri;

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'

Prova a connetterti al server OpenVPN come janedoe , che non è nel vpnonly gruppo. Questo fallirà automaticamente.

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

Grande. Hai configurato correttamente i tuoi client OpenVPN per l'autenticazione tramite il server OpenLDAP.

Questo segna la fine della nostra guida su come configurare l'autenticazione basata su LDAP OpenVPN. Divertiti.

Esercitazioni correlate

Assegna indirizzi IP statici ai client OpenVPN

Connettiti a OpenVPN utilizzando Network Manager su CentOS 8/Ubuntu 18.04

Configura il server OpenVPN su CentOS 8

Configura la VPN IPSEC usando StrongSwan su Debian 10

OpenVPN
  1. Un modo più semplice per installare e configurare il server OpenVPN in Linux

  2. Come configurare l'autenticazione basata su chiave SSH in Linux

  3. Configura i client OpenVPN per utilizzare un server DNS specifico

  4. Installa e configura il client OpenVPN su Rocky Linux 8

  5. Configura OpenVPN per richiedere le credenziali all'accesso su sistemi Windows

Come installare e configurare OpenVPN su OpenSUSE Leap 42.1

Come configurare OpenVPN su Ubuntu 16.04

Configura la replica multimaster OpenLDAP su Linux

Configura client LDAP su Ubuntu 16.04 / Debian 8

Come configurare il client LDAP su Ubuntu 20.04

Come configurare e configurare un server OpenVPN su Ubuntu 22.04