ProHoster > Tweefactorauthenticatie in OpenVPN met Telegram-bot
Tweefactorauthenticatie in OpenVPN met Telegram-bot
Het artikel beschrijft het opzetten van een OpenVPN-server om tweefactorauthenticatie mogelijk te maken met een Telegram-bot die een bevestigingsverzoek verzendt bij het verbinden.
OpenVPN is een bekende, gratis, open-source VPN-server die veel wordt gebruikt om veilige toegang van medewerkers tot interne organisatiebronnen te organiseren.
Als authenticatie voor verbinding met een VPN-server wordt meestal een combinatie van een sleutel en gebruikerslogin/wachtwoord gebruikt. Tegelijkertijd verandert het wachtwoord dat op de client is opgeslagen de hele set in een enkele factor die niet het juiste beveiligingsniveau biedt. Een aanvaller krijgt, nadat hij toegang heeft gekregen tot de clientcomputer, ook toegang tot de VPN-server. Dit geldt vooral voor verbindingen vanaf machines waarop Windows draait.
Het gebruik van de tweede factor vermindert het risico op ongeautoriseerde toegang met 99% en bemoeilijkt het verbindingsproces voor gebruikers helemaal niet.
Laat me meteen een reservering maken: voor implementatie moet u een externe authenticatieserver multifactor.ru aansluiten, waarin u een gratis tarief kunt gebruiken voor uw behoeften.
Werking
OpenVPN gebruikt de plug-in openvpn-plugin-auth-pam voor authenticatie
De plug-in controleert het wachtwoord van de gebruiker op de server en vraagt de tweede factor op via het RADIUS-protocol in de Multifactor-service
Multifactor stuurt via de Telegram-bot een bericht naar de gebruiker waarin de toegang wordt bevestigd
De gebruiker bevestigt het toegangsverzoek in de Telegram-chat en maakt verbinding met de VPN
Een OpenVPN-server installeren
Er zijn veel artikelen op internet die het proces van het installeren en configureren van OpenVPN beschrijven, dus we zullen ze niet dupliceren. Als u hulp nodig heeft, vindt u aan het einde van het artikel verschillende links naar tutorials.
Het instellen van de Multifactor
Ga naar Multifactorieel controlesysteem, ga naar het gedeelte 'Bronnen' en maak een nieuwe VPN.
Eenmaal aangemaakt, heeft u twee opties tot uw beschikking: NAS-IDentifier и Gedeeld geheim, zijn ze vereist voor de daaropvolgende configuratie.
Ga in het gedeelte 'Groepen' naar de groepsinstellingen 'Alle gebruikers' en verwijder de vlag 'Alle bronnen', zodat alleen gebruikers van een bepaalde groep verbinding kunnen maken met de VPN-server.
Maak een nieuwe groep "VPN-gebruikers", schakel alle authenticatiemethoden uit behalve Telegram en geef aan dat gebruikers toegang hebben tot de aangemaakte VPN-bron.
Maak in het gedeelte 'Gebruikers' gebruikers aan die toegang hebben tot de VPN, voeg ze toe aan de groep 'VPN-gebruikers' en stuur ze een link om de tweede authenticatiefactor te configureren. De gebruikersaanmelding moet overeenkomen met de aanmelding op de VPN-server.
Een OpenVPN-server opzetten
Open het bestand /etc/openvpn/server.conf en voeg een plug-in toe voor authenticatie met behulp van de PAM-module
De eerste regel verbindt de PAM-module pam_radius_auth met de parameters:
skip_passwd - schakelt de overdracht van het wachtwoord van de gebruiker naar de RADIUS Multifactor-server uit (hij hoeft dit niet te weten).
client_id — vervang [NAS-Identifier] door de overeenkomstige parameter uit de VPN-broninstellingen.
Alle mogelijke parameters worden beschreven in documentatie voor de module.
De tweede en derde regel omvatten systeemverificatie van de login, het wachtwoord en de gebruikersrechten op uw server, samen met een tweede authenticatiefactor.
Start OpenVPN opnieuw
$ sudo systemctl restart openvpn@server
Cliënt instellen
Voeg een verzoek om gebruikersaanmelding en wachtwoord toe aan het clientconfiguratiebestand
auth-user-pass
Проверка
Start de OpenVPN-client, maak verbinding met de server en voer uw gebruikersnaam en wachtwoord in. De Telegram-bot verzendt een toegangsverzoek met twee knoppen
Eén knop geeft toegang, de tweede blokkeert deze.
Nu kunt u uw wachtwoord veilig op de client opslaan; de tweede factor beschermt uw OpenVPN-server betrouwbaar tegen ongeoorloofde toegang.
Als iets niet werkt
Controleer achtereenvolgens of u niets gemist heeft:
Er is een gebruiker op de server met OpenVPN met een ingesteld wachtwoord
De server heeft via UDP-poort 1812 toegang tot het adres radius.multifactor.ru
De parameters NAS-Identifier en Shared Secret zijn correct gespecificeerd
Er is een gebruiker met dezelfde login aangemaakt in het Multifactor-systeem en deze heeft toegang gekregen tot de VPN-gebruikersgroep
De gebruiker heeft de authenticatiemethode via Telegram geconfigureerd