Dalawang-factor na pagpapatunay sa OpenVPN gamit ang Telegram bot

Inilalarawan ng artikulo ang pag-set up ng isang OpenVPN server upang paganahin ang dalawang-factor na pagpapatotoo sa isang Telegram bot na magpapadala ng kahilingan sa pagkumpirma kapag kumokonekta.

Ang OpenVPN ay isang kilalang, libre, open-source na VPN server na malawakang ginagamit upang ayusin ang secure na access ng empleyado sa mga panloob na mapagkukunan ng organisasyon.

Bilang authentication para sa pagkonekta sa isang VPN server, karaniwang ginagamit ang kumbinasyon ng isang key at user login/password. Kasabay nito, ang password na nakaimbak sa kliyente ay nagiging isang solong kadahilanan na hindi nagbibigay ng tamang antas ng seguridad. Ang isang attacker, na nakakuha ng access sa client computer, ay nakakakuha din ng access sa VPN server. Ito ay totoo lalo na para sa mga koneksyon mula sa mga makina na nagpapatakbo ng Windows.

Ang paggamit ng pangalawang kadahilanan ay binabawasan ang panganib ng hindi awtorisadong pag-access ng 99% at hindi nagpapalubha sa proseso ng koneksyon para sa mga user.

Hayaan akong gumawa ng reserbasyon kaagad: para sa pagpapatupad kakailanganin mong ikonekta ang isang third-party na server ng pagpapatunay na multifactor.ru, kung saan maaari kang gumamit ng isang libreng taripa para sa iyong mga pangangailangan.

Prinsipyo ng operasyon

  1. Ginagamit ng OpenVPN ang openvpn-plugin-auth-pam plugin para sa pagpapatunay
  2. Sinusuri ng plugin ang password ng gumagamit sa server at hinihiling ang pangalawang kadahilanan sa pamamagitan ng RADIUS protocol sa serbisyo ng Multifactor
  3. Nagpapadala ang Multifactor ng mensahe sa user sa pamamagitan ng Telegram bot na nagkukumpirma ng access
  4. Kinukumpirma ng user ang kahilingan sa pag-access sa Telegram chat at kumokonekta sa VPN

Pag-install ng OpenVPN server

Mayroong maraming mga artikulo sa Internet na naglalarawan sa proseso ng pag-install at pag-configure ng OpenVPN, kaya hindi namin ito duplicate. Kung kailangan mo ng tulong, mayroong ilang mga link sa mga tutorial sa dulo ng artikulo.

Pag-set up ng Multifactor

Pumunta sa Multifactor control system, pumunta sa seksyong "Mga Mapagkukunan" at lumikha ng bagong VPN.
Kapag nagawa na, magkakaroon ka ng dalawang opsyon na magagamit mo: NAS-IDentifier ΠΈ Nakabahaging Lihim, kakailanganin ang mga ito para sa kasunod na pagsasaayos.

Dalawang-factor na pagpapatunay sa OpenVPN gamit ang Telegram bot

Sa seksyong "Mga Grupo," pumunta sa mga setting ng pangkat na "Lahat ng user" at alisin ang flag na "Lahat ng mapagkukunan" upang ang mga user lang ng isang partikular na grupo ang makakakonekta sa VPN server.

Lumikha ng isang bagong pangkat na "mga gumagamit ng VPN", huwag paganahin ang lahat ng mga pamamaraan ng pagpapatunay maliban sa Telegram at ipahiwatig na ang mga gumagamit ay may access sa nilikha na mapagkukunan ng VPN.

Dalawang-factor na pagpapatunay sa OpenVPN gamit ang Telegram bot

Sa seksyong "Mga User," lumikha ng mga user na magkakaroon ng access sa VPN, idagdag sila sa grupong "Mga user ng VPN" at magpadala sa kanila ng link upang i-configure ang pangalawang salik ng pagpapatunay. Ang login ng user ay dapat tumugma sa login sa VPN server.

Dalawang-factor na pagpapatunay sa OpenVPN gamit ang Telegram bot

Pag-set up ng OpenVPN server

Buksan ang file /etc/openvpn/server.conf at magdagdag ng plugin para sa pagpapatunay gamit ang PAM module

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

Ang plugin ay matatagpuan sa direktoryo /usr/lib/openvpn/plugins/ o /usr/lib64/openvpn/plugins/ depende sa system mo.

Susunod na kailangan mong i-install ang pam_radius_auth module

$ sudo yum install pam_radius

Buksan ang file para sa pag-edit /etc/pam_radius.conf at tukuyin ang address ng RADIUS server ng Multifactor

radius.multifactor.ru   shared_secret   40

kung saan:

  • radius.multifactor.ru β€” address ng server
  • shared_secret - kopyahin mula sa kaukulang parameter ng mga setting ng VPN
  • 40 segundo - timeout para sa paghihintay para sa isang kahilingan na may malaking margin

Ang natitirang mga server ay dapat tanggalin o magkomento (maglagay ng semicolon sa simula)

Susunod, lumikha ng isang file para sa openvpn na uri ng serbisyo

$ sudo vi /etc/pam.d/openvpn

at isulat ito sa

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

Ang unang linya ay nag-uugnay sa PAM module na pam_radius_auth sa mga parameter:

  • skip_passwd - hindi pinapagana ang pagpapadala ng password ng user sa RADIUS Multifactor server (hindi niya kailangang malaman ito).
  • client_id β€” palitan ang [NAS-Identifier] ng kaukulang parameter mula sa mga setting ng mapagkukunan ng VPN.
    Ang lahat ng posibleng mga parameter ay inilarawan sa dokumentasyon para sa modyul.

Kasama sa ikalawa at pangatlong linya ang pag-verify ng system ng login, password at mga karapatan ng user sa iyong server kasama ang pangalawang kadahilanan sa pagpapatunay.

I-restart ang OpenVPN

$ sudo systemctl restart openvpn@server

Setup ng kliyente

Isama ang isang kahilingan para sa pag-login at password ng user sa configuration file ng kliyente

auth-user-pass

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

Ilunsad ang OpenVPN client, kumonekta sa server, ipasok ang iyong username at password. Ang Telegram bot ay magpapadala ng kahilingan sa pag-access na may dalawang pindutan

Dalawang-factor na pagpapatunay sa OpenVPN gamit ang Telegram bot

Ang isang pindutan ay nagbibigay-daan sa pag-access, ang pangalawa ay hinaharangan ito.

Ngayon ay maaari mong ligtas na i-save ang iyong password sa kliyente; ang pangalawang kadahilanan ay mapagkakatiwalaang protektahan ang iyong OpenVPN server mula sa hindi awtorisadong pag-access.

Kung ang isang bagay ay hindi gumagana

Suriin nang sunud-sunod na wala kang napalampas:

  • Mayroong isang user sa server na may OpenVPN na may set ng password
  • Ang server ay may access sa pamamagitan ng UDP port 1812 sa address na radius.multifactor.ru
  • Ang mga parameter ng NAS-Identifier at Shared Secret ay tinukoy nang tama
  • Ang isang user na may parehong pag-login ay ginawa sa Multifactor system at nabigyan ng access sa VPN user group
  • Na-configure ng user ang paraan ng pagpapatunay sa pamamagitan ng Telegram

Kung hindi mo pa nai-set up ang OpenVPN dati, basahin detalyadong artikulo.

Ang mga tagubilin ay ginawa gamit ang mga halimbawa sa CentOS 7.

Pinagmulan: www.habr.com

Magdagdag ng komento