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