Dvoufaktorová autentizace v OpenVPN s telegramovým botem

Článek popisuje nastavení serveru OpenVPN pro umožnění dvoufaktorové autentizace pomocí telegramového robota, který při připojení odešle žádost o potvrzení.

OpenVPN je známý, bezplatný, open-source server VPN, který se široce používá k organizaci bezpečného přístupu zaměstnanců k interním organizačním zdrojům.

Jako autentizace pro připojení k VPN serveru se obvykle používá kombinace klíče a uživatelského jména/hesla. Heslo uložené na klientovi zároveň změní celou sadu na jediný faktor, který neposkytuje správnou úroveň zabezpečení. Útočník, který získal přístup ke klientskému počítači, také získá přístup k serveru VPN. To platí zejména pro připojení z počítačů se systémem Windows.

Použití druhého faktoru snižuje riziko neoprávněného přístupu o 99 % a uživatelům vůbec nekomplikuje proces připojení.

Dovolte mi provést rezervaci hned: pro implementaci budete muset připojit ověřovací server třetí strany multifactor.ru, ve kterém můžete pro své potřeby použít bezplatný tarif.

Princip činnosti

  1. OpenVPN používá k ověřování plugin openvpn-plugin-auth-pam
  2. Plugin zkontroluje heslo uživatele na serveru a požádá o druhý faktor prostřednictvím protokolu RADIUS ve službě Multifactor
  3. Multifactor odešle zprávu uživateli prostřednictvím robota Telegram potvrzující přístup
  4. Uživatel potvrdí žádost o přístup v telegramovém chatu a připojí se k VPN

Instalace serveru OpenVPN

Na internetu je mnoho článků popisujících proces instalace a konfigurace OpenVPN, takže je nebudeme duplikovat. Pokud potřebujete pomoc, na konci článku je několik odkazů na tutoriály.

Nastavení multifaktoru

Přejít na Vícefaktorový řídicí systém, přejděte do sekce „Zdroje“ a vytvořte novou VPN.
Po vytvoření budete mít k dispozici dvě možnosti: NAS identifikátor и Sdílené tajemství, budou vyžadovány pro následnou konfiguraci.

Dvoufaktorová autentizace v OpenVPN s telegramovým botem

V sekci "Skupiny" přejděte do nastavení skupiny "Všichni uživatelé" a odstraňte příznak "Všechny zdroje", aby se k serveru VPN mohli připojit pouze uživatelé určité skupiny.

Vytvořte novou skupinu „Uživatelé VPN“, vypněte všechny metody ověřování kromě telegramu a označte, že uživatelé mají přístup k vytvořenému prostředku VPN.

Dvoufaktorová autentizace v OpenVPN s telegramovým botem

V sekci "Uživatelé" vytvořte uživatele, kteří budou mít přístup k VPN, přidejte je do skupiny "Uživatelé VPN" a pošlete jim odkaz pro konfiguraci druhého faktoru ověřování. Přihlášení uživatele se musí shodovat s přihlášením na serveru VPN.

Dvoufaktorová autentizace v OpenVPN s telegramovým botem

Nastavení serveru OpenVPN

Otevřete soubor /etc/openvpn/server.conf a přidejte plugin pro ověřování pomocí modulu PAM

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

Plugin lze nalézt v adresáři /usr/lib/openvpn/plugins/ nebo /usr/lib64/openvpn/plugins/ v závislosti na vašem systému.

Dále musíte nainstalovat modul pam_radius_auth

$ sudo yum install pam_radius

Otevřete soubor pro úpravy /etc/pam_radius.conf a zadejte adresu serveru RADIUS multifaktoru

radius.multifactor.ru   shared_secret   40

kde:

  • radius.multifactor.ru — adresa serveru
  • shared_secret – zkopírujte z odpovídajícího parametru nastavení VPN
  • 40 sekund - časový limit pro čekání na požadavek s velkou rezervou

Zbývající servery musí být smazány nebo zakomentovány (na začátek vložte středník)

Dále vytvořte soubor pro typ služby openvpn

$ sudo vi /etc/pam.d/openvpn

a napište to

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

První řádek spojuje modul PAM pam_radius_auth s parametry:

  • skip_passwd - zakáže přenos hesla uživatele na server RADIUS Multifactor (nemusí ho znát).
  • client_id — nahraďte [NAS-Identifier] odpovídajícím parametrem z nastavení prostředků VPN.
    Všechny možné parametry jsou popsány v dokumentaci k modulu.

Druhý a třetí řádek obsahuje systémové ověření přihlašovacího jména, hesla a uživatelských práv na vašem serveru spolu s druhým autentizačním faktorem.

Restartujte OpenVPN

$ sudo systemctl restart openvpn@server

Nastavení klienta

Do konfiguračního souboru klienta zahrňte požadavek na uživatelské jméno a heslo

auth-user-pass

Проверка

Spusťte klienta OpenVPN, připojte se k serveru, zadejte své uživatelské jméno a heslo. Robot Telegram odešle žádost o přístup pomocí dvou tlačítek

Dvoufaktorová autentizace v OpenVPN s telegramovým botem

Jedno tlačítko umožňuje přístup, druhé jej blokuje.

Nyní můžete bezpečně uložit své heslo na klientovi; druhý faktor spolehlivě ochrání váš OpenVPN server před neoprávněným přístupem.

Pokud něco nefunguje

Postupně zkontrolujte, zda vám nic neuniklo:

  • Na serveru je uživatel s OpenVPN s nastaveným heslem
  • Server má přístup přes UDP port 1812 na adresu radius.multifactor.ru
  • Parametry NAS-Identifier a Shared Secret jsou zadány správně
  • V systému Multifactor byl vytvořen uživatel se stejným přihlašovacím jménem a byl mu udělen přístup do skupiny uživatelů VPN
  • Uživatel nakonfiguroval metodu ověřování prostřednictvím telegramu

Pokud jste OpenVPN ještě nenastavili, přečtěte si rozšířený článek.

Pokyny jsou vytvořeny s příklady na CentOS 7.

Zdroj: www.habr.com

Přidat komentář