Saya memiliki sistem OpenVPN yang berfungsi pada Ubuntu 12.04 dan saya ingin menambahkan Google Authenticator untuk keamanan ekstra.
Ini adalah konfigurasi openvpn saya saat ini:
dev tun proto udp port 1096 ca ubuserv04-ca.crt cert ubuserv04.crt kunci ubuserv04.key dh dh1024.pem server 10.10.0.0 255.255.255.0 tekan "redirect-gateway def1" tekan "rute 192.168.0.0 255.255.255.0" tekan "dhcp-option DNS 8.8.8.8" tekan "dhcp-option DNS 8.8.4.4" mengapung log-append /var/log/openvpn-otp-1096-status.log
(Ini hanya pengaturan uji, saya tahu saya harus mengubah aspek tertentu tetapi ini berfungsi untuk saat ini.)
Pada klien saya punya:
dev tun klien proto udp remote my.server.fqdn 1096 resolv-coba lagi tak terbatas ca ubuserv04-ca.crt cert user1.crt kunci user1.key kata kerja 3
Pengaturan di atas berfungsi dengan baik: tidak ada kesalahan, cepat, stabil.
Saya telah mencoba beberapa howtos untuk menjalankan Google Authenticator tetapi saya akhirnya menemukan pemecahan masalah sisi dalam artikel-artikel itu setiap waktu. Saya tidak ingin mengautentikasi terhadap basis data pengguna / kata sandi server lokal, hanya sistem yang sudah saya miliki plus Google Authenticator.
Saya menjalankan Google Authenticator; Saya menginstalnya menggunakan apt-get install libpam-google-authenticator dan telah menggunakannya sebelumnya untuk mengotentikasi sesi ssh. Itu bekerja dengan baik, tetapi saya sekarang telah menonaktifkan itu karena itu hanya server uji dan tes tertentu selesai.
Harap spesifik. Saya tahu saya harus menambahkan plugin ke konfigurasi ovpn server saya dan bahwa saya harus menambahkan sesuatu ke /etc/pam.d/openvpn tapi apa sebenarnya?
Bantuan apa pun akan sangat dihargai!
/informasi tambahan
Saya telah mengikuti artikel ini: http://www.howtoforge.com/securing-openvpn-with-a-one-time-password-otp-on-ubuntu Alih-alih mengkompilasi dari sumber saya telah menginstal Google Authenticator dengan apt -Dapat menginstal libpam-google-authenticator. Saya juga sudah membaca, tetapi tidak digunakan dalam kasus ini, artikel ini: http://www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/ dan http : //zcentric.com/2012/10/09/google-authenticator-with-openvpn-for-2-factor-auth/ . Dan saya sudah membaca di PAM, seperti yang disarankan;)
Sekarang, inilah beberapa pengembang yang menarik.
/etc/pam.d/openvpn memiliki ini:
akun [sukses = 2 new_authtok_reqd = selesai default = abaikan] pam_unix.so akun [sukses = 1 new_authtok_reqd = selesai default = abaikan] pam_winbind.so akun pam_deny.so yang diperlukan akun diperlukan pam_permit.so auth diperlukan pam_google_authenticator.so
Sesuai howto saya menyalin aslinya dari /etc/pam.d/common-account dan menambahkan baris terakhir. Sekarang jika saya mengomentari baris terakhir, koneksi OpenVPN berhasil. Jika baris terakhir tidak dikomentari, /var/log/auth.log mencatat ini:
PAM tidak dapat dlopen (pam_google_authenticator.so): /lib/security/pam_google_authenticator.so: simbol yang tidak ditentukan: pam_get_item PAM menambahkan modul yang salah: pam_google_authenticator.so
dan /var/log/openvpn-otp-1096.log mencatat ini:
PLUGIN_CALL: fungsi plugin PLUGIN_AUTH_USER_PASS_VERIFY gagal dengan status 1: /usr/lib/openvpn/openvpn-auth-pam.so Kesalahan Automatis TLS: Auth Nama Pengguna / Verifikasi kata sandi gagal untuk rekan menggunakan konteks SSL / TLS AUTH-PAM: LATAR BELAKANG: pengguna 'martin' gagal mengautentikasi: Modul tidak diketahui
Masalahnya tampaknya antara PAM dan Google Authenticator.
Google mencantumkan masalah dengan plugin lain, tetapi saya tidak dapat menemukan informasi mengenai Google Authenticator secara khusus.
sumber
libpam-google-authenticator
untuk otentikasi menggunakan Google Authenticator di PAM. Ini tidak ada gunanya di OpenVPN karena Anda menggunakan sertifikat di sana. Saya sarankan Anda membaca tentang apa itu PAM - Anda akan mengerti bahwa itu tidak ada hubungannya dengan OpenVPN dalam kasus Anda.Jawaban:
Oke, Google adalah teman saya.
Saya melakukan ini:
Tambahkan ini ke Makefile, tepat setelah lisensi:
Kemudian
Selain itu, pastikan /home/username/.google_authenticator tidak memiliki hak sama sekali kecuali hak baca untuk pengguna yang akan menggunakannya.
Sekarang saya harus memasukkan nama pengguna saya itu nama pengguna lokal saya di server (akun shell saya) sebagai nama pengguna OpenVPN saya dan kode Google Authenticator 6 digit sebagai kata sandi.
Sekarang berhasil.
Terima kasih atas waktu Anda :)
(Bagaimana saya bisa menandai posting ini sebagai diselesaikan? Apakah saya hanya mengedit judul topik?)
sumber
Jika Anda hanya ingin autentikasi OTP untuk OpenVPN, ada plugin OTP OpenVPN asli yang tersedia. Ini kompatibel dengan kunci rahasia Google Authenticator. Semua rahasia disimpan dalam satu file teks dan tidak perlu mengkonfigurasi PAM atau membuat direktori pengguna.
Lihatlah: https://github.com/evgeny-gridasov/openvpn-otp
sumber