GNU/Linux >> Belajar Linux >  >> Panels >> OpenVPN

Konfigurasikan Otentikasi Berbasis OpenVPN LDAP

Dalam panduan ini, kita akan mempelajari cara mengonfigurasi Otentikasi Berbasis OpenVPN LDAP. Identifikasi dan otentikasi pengguna biasanya merupakan langkah pertama dalam menerapkan kontrol akses. Server OpenVPN mendukung beberapa protokol autentikasi dan dengan demikian dapat dikonfigurasi untuk mendapatkan informasi klien penghubung dari server LDAP, dan untuk menggunakan informasi tersebut sebagai dasar untuk mengautentikasi klien selain penggunaan sertifikat dan kunci Klien.

Selain itu, dengan otentikasi OpenLDAP, masalah keharusan membuat sertifikat klien OpenVPN individual untuk setiap koneksi klien dapat dihilangkan.

Pelajari cara menginstal dan mengatur server OpenLDAP di CentOS 8 dengan mengikuti tautan di bawah ini;

Instal dan Siapkan OpenLDAP di CentOS 8

Mengonfigurasi Otentikasi Berbasis OpenVPN LDAP

Instal plugin OpenVPN untuk otentikasi LDAP

Untuk mengonfigurasi otentikasi berbasis LDAP OpenVPN, Anda perlu menginstal plugin OpenVPN untuk otentikasi LDAP. Plugin ini disebut openvpn-auth-ldap dan mengimplementasikan otentikasi nama pengguna/sandi melalui LDAP untuk OpenVPN.

Pada CentOS 7, Anda memerlukan repo EPEL untuk menginstal plugin;

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

Pada sistem Ubuntu;

apt install openvpn-auth-ldap

Pada CentOS 8, sayangnya, repo EPEL tidak menyediakan paket ini pada tulisan ini.

Dalam demo ini, kami menjalankan server OpenVPN pada sistem CentOS 7.

Setelah instalasi openvpn-auth-ldap paket, Anda sekarang harus memiliki modul yang diperlukan di bawah /usr/lib64/openvpn direktori.

Modul juga dapat ditemukan di bawah, /usr/lib/openvpn , direktori.

Paket ini juga menginstal file konfigurasi otentikasi LDAP OpenVPN, /etc/openvpn/auth/ldap.conf .

Pada sistem Ubuntu, Anda akan menemukan contoh konfigurasi auth OpenVPN LDAP di bawah;

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

Konfigurasikan server OpenVPN untuk Otentikasi Berbasis LDAP

Setelah Anda memiliki plugin yang diperlukan, hal berikutnya adalah mengonfigurasi server OpenVPN untuk otentikasi berbasis LDAP.

Buka file konfigurasi otentikasi berbasis OpenVPN LDAP dan tentukan spesifikasi server OpenLDAP Anda;

Buat cadangan konfigurasi.

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

Jika direktori/file tidak ada, buat saja;

mkdir /etc/openvpn/auth

Setelah selesai, salin contoh file konfigurasi;

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

Selanjutnya, buka file konfigurasi untuk diedit.

vim /etc/openvpn/auth/ldap.conf

Di bawah ini adalah contoh konfigurasi kami (tanpa baris komentar) sesuai dengan pengaturan server OpenLDAP kami. Buat konfigurasi yang sesuai;

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

Berkenaan dengan autentikasi grup, jika Anda ingin menerapkan kontrol akses OpenVPN yang lebih halus sehingga hanya pengguna tertentu yang mengautentikasi melalui OpenLDAP yang dapat terhubung ke server OpenVPN, Anda dapat memanfaatkan keanggotaan grup OpenLDAP.

Misalnya, di server OpenLDAP kami, kami memiliki grup khusus VPN yang hanya berisi pengguna yang diizinkan untuk terhubung ke 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

Lihat cara membuat keanggotaan grup OpenLDAP dengan mengikuti panduan di bawah ini;

Cara Membuat Grup Anggota OpenLDAP

Oleh karena itu, untuk mengaktifkan autentikasi keanggotaan grup, setel nilai RequireGroup opsi untuk benar dan mengedit bagian grup sehingga konfigurasi Anda mungkin terlihat seperti;

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

Dalam hal ini, hanya pengguna koromicha dan johndoe dapat terhubung ke server OpenVPN.

Simpan dan keluar dari konfigurasi setelah melakukan perubahan yang sesuai.

Selanjutnya, konfigurasikan server OpenVPN untuk menggunakan OpenLDAP untuk otentikasi dengan menambahkan baris di bawah ini ke file konfigurasi server OpenVPN.

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

Anda cukup menambahkan baris ini ke file konfigurasi server OpenVPN sebagai berikut;

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

Pastikan untuk menyetel jalur yang benar ke modul. Misalnya, di Ubuntu 18.04/20.04, jalurnya adalah /usr/lib/openvpn/openvpn-auth-ldap.so .

Oleh karena itu, barisnya akan terlihat seperti;

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

Aktifkan Otentikasi Nama Pengguna/Kata Sandi Klien

Selanjutnya, edit file konfigurasi klien untuk menyertakan auth-user-pass arahan untuk mengaktifkan metode otentikasi nama pengguna/sandi.

Misalnya, ini adalah contoh file konfigurasi Klien kami berdasarkan penyiapan server OpenVPN kami.

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

Mulai ulang layanan OpenVPN Server;

systemctl restart [email protected]

Verifikasi Otentikasi LDAP Klien OpenVPN

Konfigurasi kita sekarang selesai. Untuk memverifikasi bahwa semuanya baik-baik saja, mulai koneksi OpenVPN pada klien;

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

Jika otentikasi gagal;

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

Di Server OpenVPN, Anda akan melihat baris seperti itu di log;

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'

Coba sambungkan ke server OpenVPN sebagai janedoe , yang tidak diizinkan vpnonly kelompok. Ini akan otomatis gagal.

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

Besar. Anda telah berhasil mengonfigurasi klien OpenVPN Anda untuk mengautentikasi melalui server OpenLDAP.

Itu menandai akhir dari panduan kami tentang cara mengonfigurasi Otentikasi Berbasis OpenVPN LDAP. Selamat menikmati.

Tutorial Terkait

Tetapkan Alamat IP Statis untuk Klien OpenVPN

Hubungkan ke OpenVPN menggunakan Network Manager di CentOS 8/Ubuntu 18.04

Siapkan Server OpenVPN di CentOS 8

Siapkan VPN IPSEC menggunakan StrongSwan di Debian 10

OpenVPN
  1. Konfigurasikan server OpenVPN Anda di Linux

  2. Cara Termudah Untuk Menginstal Dan Mengonfigurasi Server OpenVPN Di Linux

  3. Konfigurasikan LDAP Client di Ubuntu 20.04 - Panduan langkah demi langkah?

  1. Cara Mengonfigurasi Otentikasi Berbasis Kunci SSH Di Linux

  2. Cara Mengonfigurasi Bypass Otentikasi SMTP di SmarterMail

  3. Konfigurasikan Klien OpenVPN untuk menggunakan Server DNS tertentu

  1. Instal dan Konfigurasi Klien OpenVPN di Rocky Linux 8

  2. Konfigurasikan OpenVPN untuk Meminta Kredensial saat Masuk di Sistem Windows

  3. Instal dan Konfigurasikan Klien OpenVPN di CentOS 8/Ubuntu 18.04