Pengesahan dua faktor dalam OpenVPN dengan bot Telegram

Artikel itu menerangkan penyediaan pelayan OpenVPN untuk mendayakan pengesahan dua faktor dengan bot Telegram yang akan menghantar permintaan pengesahan apabila menyambung.

OpenVPN ialah pelayan VPN sumber terbuka yang terkenal, percuma dan digunakan secara meluas untuk mengatur akses pekerja selamat kepada sumber organisasi dalaman.

Sebagai pengesahan untuk menyambung ke pelayan VPN, gabungan kunci dan log masuk/kata laluan pengguna biasanya digunakan. Pada masa yang sama, kata laluan yang disimpan pada klien mengubah keseluruhan set menjadi satu faktor yang tidak memberikan tahap keselamatan yang betul. Penyerang, setelah mendapat akses kepada komputer klien, juga mendapat akses kepada pelayan VPN. Ini benar terutamanya untuk sambungan daripada mesin yang menjalankan Windows.

Menggunakan faktor kedua mengurangkan risiko capaian tanpa kebenaran sebanyak 99% dan tidak merumitkan proses sambungan untuk pengguna sama sekali.

Biar saya membuat tempahan segera: untuk pelaksanaan anda perlu menyambung pelayan pengesahan pihak ketiga multifactor.ru, di mana anda boleh menggunakan tarif percuma untuk keperluan anda.

Prinsip operasi

  1. OpenVPN menggunakan pemalam openvpn-plugin-auth-pam untuk pengesahan
  2. Pemalam menyemak kata laluan pengguna pada pelayan dan meminta faktor kedua melalui protokol RADIUS dalam perkhidmatan Multifactor
  3. Multifactor menghantar mesej kepada pengguna melalui bot Telegram yang mengesahkan akses
  4. Pengguna mengesahkan permintaan akses dalam sembang Telegram dan menyambung ke VPN

Memasang pelayan OpenVPN

Terdapat banyak artikel di Internet yang menerangkan proses memasang dan mengkonfigurasi OpenVPN, jadi kami tidak akan menduplikasinya. Jika anda memerlukan bantuan, terdapat beberapa pautan ke tutorial di penghujung artikel.

Menyediakan Multifactor

Pergi ke Sistem kawalan pelbagai faktor, pergi ke bahagian "Sumber" dan buat VPN baharu.
Setelah dibuat, anda akan mempunyai dua pilihan yang tersedia untuk anda: Pengecam NAS ΠΈ Rahsia Dikongsi, ia akan diperlukan untuk konfigurasi seterusnya.

Pengesahan dua faktor dalam OpenVPN dengan bot Telegram

Dalam bahagian "Kumpulan", pergi ke tetapan kumpulan "Semua pengguna" dan alih keluar bendera "Semua sumber" supaya hanya pengguna kumpulan tertentu boleh menyambung ke pelayan VPN.

Buat kumpulan baharu "pengguna VPN", lumpuhkan semua kaedah pengesahan kecuali Telegram dan nyatakan bahawa pengguna mempunyai akses kepada sumber VPN yang dibuat.

Pengesahan dua faktor dalam OpenVPN dengan bot Telegram

Dalam bahagian "Pengguna", buat pengguna yang akan mempunyai akses kepada VPN, tambahkan mereka pada kumpulan "Pengguna VPN" dan hantarkan pautan kepada mereka untuk mengkonfigurasi faktor pengesahan kedua. Log masuk pengguna mesti sepadan dengan log masuk pada pelayan VPN.

Pengesahan dua faktor dalam OpenVPN dengan bot Telegram

Menyediakan pelayan OpenVPN

Buka fail /etc/openvpn/server.conf dan tambah pemalam untuk pengesahan menggunakan modul PAM

plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

Pemalam boleh didapati dalam direktori /usr/lib/openvpn/plugins/ atau /usr/lib64/openvpn/plugins/ bergantung pada sistem anda.

Seterusnya anda perlu memasang modul pam_radius_auth

$ sudo yum install pam_radius

Buka fail untuk diedit /etc/pam_radius.conf dan nyatakan alamat pelayan RADIUS Multifactor

radius.multifactor.ru   shared_secret   40

di mana:

  • radius.multifactor.ru β€” alamat pelayan
  • shared_secret - salin daripada parameter tetapan VPN yang sepadan
  • 40 saat - tamat masa untuk menunggu permintaan dengan margin yang besar

Pelayan yang selebihnya mesti dipadamkan atau dikomentari (letakkan koma bertitik pada permulaan)

Seterusnya, buat fail untuk openvpn jenis perkhidmatan

$ sudo vi /etc/pam.d/openvpn

dan tuliskannya

auth    required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth    substack     password-auth
account substack     password-auth

Baris pertama menghubungkan modul PAM pam_radius_auth dengan parameter:

  • skip_passwd - melumpuhkan penghantaran kata laluan pengguna ke pelayan RADIUS Multifactor (dia tidak perlu mengetahuinya).
  • client_id β€” gantikan [NAS-Identifier] dengan parameter yang sepadan daripada tetapan sumber VPN.
    Semua parameter yang mungkin diterangkan dalam dokumentasi untuk modul.

Baris kedua dan ketiga termasuk pengesahan sistem log masuk, kata laluan dan hak pengguna pada pelayan anda bersama-sama dengan faktor pengesahan kedua.

Mulakan semula OpenVPN

$ sudo systemctl restart openvpn@server

Persediaan pelanggan

Sertakan permintaan untuk log masuk pengguna dan kata laluan dalam fail konfigurasi klien

auth-user-pass

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°

Lancarkan klien OpenVPN, sambung ke pelayan, masukkan nama pengguna dan kata laluan anda. Bot Telegram akan menghantar permintaan akses dengan dua butang

Pengesahan dua faktor dalam OpenVPN dengan bot Telegram

Satu butang membenarkan akses, yang kedua menghalangnya.

Kini anda boleh menyimpan kata laluan anda dengan selamat pada klien; faktor kedua akan melindungi pelayan OpenVPN anda dengan pasti daripada akses yang tidak dibenarkan.

Jika sesuatu tidak berfungsi

Semak secara berurutan bahawa anda tidak terlepas apa-apa:

  • Terdapat pengguna pada pelayan dengan OpenVPN dengan set kata laluan
  • Pelayan mempunyai akses melalui port UDP 1812 ke alamat radius.multifactor.ru
  • Parameter NAS-Identifier dan Rahsia Dikongsi ditentukan dengan betul
  • Pengguna dengan log masuk yang sama telah dibuat dalam sistem Multifactor dan telah diberikan akses kepada kumpulan pengguna VPN
  • Pengguna telah mengkonfigurasi kaedah pengesahan melalui Telegram

Jika anda belum menyediakan OpenVPN sebelum ini, baca artikel terperinci.

Arahan dibuat dengan contoh pada CentOS 7.

Sumber: www.habr.com

Tambah komen