ProHoster > Tvåfaktorsautentisering i OpenVPN med Telegram-bot
Tvåfaktorsautentisering i OpenVPN med Telegram-bot
Artikeln beskriver hur du ställer in en OpenVPN-server för att möjliggöra tvåfaktorsautentisering med en Telegram-bot som skickar en bekräftelseförfrågan vid anslutning.
OpenVPN är en välkänd, gratis VPN-server med öppen källkod som används i stor utsträckning för att organisera säker anställdas åtkomst till interna organisationsresurser.
Som autentisering för att ansluta till en VPN-server används vanligtvis en kombination av nyckel och användarinloggning/lösenord. Samtidigt gör lösenordet som lagras på klienten hela uppsättningen till en enda faktor som inte ger rätt säkerhetsnivå. En angripare, som har fått tillgång till klientdatorn, får också tillgång till VPN-servern. Detta gäller särskilt för anslutningar från maskiner som kör Windows.
Att använda den andra faktorn minskar risken för obehörig åtkomst med 99 % och komplicerar inte anslutningsprocessen för användarna alls.
Låt mig göra en reservation direkt: för implementering måste du ansluta en tredje parts autentiseringsserver multifactor.ru, där du kan använda en gratis tariff för dina behov.
Funktionsprincip
OpenVPN använder plugin-programmet openvpn-plugin-auth-pam för autentisering
Insticksprogrammet kontrollerar användarens lösenord på servern och begär den andra faktorn via RADIUS-protokollet i Multifactor-tjänsten
Multifactor skickar ett meddelande till användaren via Telegram-bot som bekräftar åtkomst
Användaren bekräftar åtkomstbegäran i Telegram-chatt och ansluter till VPN
Installera en OpenVPN-server
Det finns många artiklar på Internet som beskriver processen att installera och konfigurera OpenVPN, så vi kommer inte att duplicera dem. Om du behöver hjälp finns det flera länkar till handledningar i slutet av artikeln.
Ställa in multifaktorn
Gå till Multifaktorstyrsystem, gå till avsnittet "Resurser" och skapa ett nytt VPN.
När du har skapat det kommer du att ha två alternativ tillgängliga för dig: NAS-IDentifierare и Delad hemlighet, kommer de att krävas för efterföljande konfiguration.
I avsnittet "Grupper", gå till gruppinställningarna "Alla användare" och ta bort flaggan "Alla resurser" så att endast användare av en viss grupp kan ansluta till VPN-servern.
Skapa en ny grupp "VPN-användare", inaktivera alla autentiseringsmetoder utom Telegram och indikera att användare har tillgång till den skapade VPN-resursen.
I avsnittet "Användare", skapa användare som kommer att ha tillgång till VPN, lägg till dem i gruppen "VPN-användare" och skicka dem en länk för att konfigurera den andra autentiseringsfaktorn. Användarinloggningen måste matcha inloggningen på VPN-servern.
Konfigurera en OpenVPN-server
Öppna filen /etc/openvpn/server.conf och lägg till en plugin för autentisering med PAM-modulen
Den första raden ansluter PAM-modulen pam_radius_auth med parametrarna:
skip_passwd - inaktiverar överföring av användarens lösenord till RADIUS Multifactor-servern (han behöver inte veta det).
client_id — ersätt [NAS-Identifier] med motsvarande parameter från VPN-resursinställningarna.
Alla möjliga parametrar beskrivs i dokumentation för modulen.
Den andra och tredje raden inkluderar systemverifiering av inloggning, lösenord och användarrättigheter på din server tillsammans med en andra autentiseringsfaktor.
Starta om OpenVPN
$ sudo systemctl restart openvpn@server
Klientinställningar
Inkludera en begäran om användarinloggning och lösenord i klientens konfigurationsfil
auth-user-pass
Проверка
Starta OpenVPN-klienten, anslut till servern, ange ditt användarnamn och lösenord. Telegram-boten kommer att skicka en åtkomstförfrågan med två knappar
En knapp tillåter åtkomst, den andra blockerar den.
Nu kan du säkert spara ditt lösenord på klienten; den andra faktorn kommer att på ett tillförlitligt sätt skydda din OpenVPN-server från obehörig åtkomst.
Om något inte fungerar
Kontrollera sekventiellt att du inte har missat något:
Det finns en användare på servern med OpenVPN med ett lösenord
Servern har tillgång via UDP-port 1812 till adressen radius.multifactor.ru
Parametrarna NAS-Identifier och Shared Secret är korrekt specificerade
En användare med samma inloggning har skapats i Multifactor-systemet och har fått tillgång till VPN-användargruppen
Användaren har konfigurerat autentiseringsmetoden via Telegram