I artikeln beskrivs hur man konfigurerar OpenVPN-servern för att aktivera tvÄfaktorautentisering med en Telegram-bot som skickar en bekrÀftelsebegÀran vid anslutning.
OpenVPN Àr en vÀlkÀnd, gratis VPN-server med öppen kÀllkod som anvÀnds allmÀnt för att organisera sÀker Ätkomst för anstÀllda till interna resurser i organisationen.
Som autentisering för anslutning till VPN-servern anvÀnds vanligtvis en kombination av en nyckel och inloggning/lösenord. I detta fall omvandlar det sparade lösenordet pÄ klienten hela uppsÀttningen till en enda faktor, vilket inte ger en tillrÀcklig sÀkerhetsnivÄ. En angripare som fÄr tillgÄng till klientens dator fÄr ocksÄ tillgÄng till VPN-servern. Detta gÀller sÀrskilt för anslutningar frÄn maskiner som kör Windows.
AnvÀndningen av en andra faktor minskar risken för obehörig Ätkomst med 99 % och komplikerar inte anslutningsprocessen för anvÀndarna.
Jag vill genast nÀmna att det krÀvs anslutning till den externa autentiseringstjÀnsten multifactor.ru, dÀr man kan anvÀnda en gratis plan för sina behov.
Arbetsprincip.
- OpenVPN anvÀnder pluginet openvpn-plugin-auth-pam för autentisering.
- Pluginet kontrollerar anvÀndarens lösenord pÄ servern och begÀr den andra faktorn via RADIUS-protokollet frÄn Multifactors tjÀnst.
- Multifactor skickar ett meddelande till anvÀndaren via Telegram-boten för att bekrÀfta Ätkomsten.
- AnvÀndaren bekrÀftar ÄtkomstbegÀran i Telegram-chatten och ansluter till VPN.
Installation av OpenVPN-servern
Det finns mÄnga artiklar pÄ nÀtet som beskriver installations- och konfigurationsprocessen för OpenVPN, sÄ vi kommer inte att duplicera dem. Om du behöver hjÀlp, finns det nÄgra lÀnkar till utbildningsmaterial i slutet av artikeln.
Konfigurering av Multifactor
GÄ till , gÄ till avsnittet "Resurser" och skapa en ny VPN.
Efter skapandet kommer tvÄ parametrar att vara tillgÀngliga: NAS-IDentifierare och Delat hemligt, de kommer att krÀvas för efterföljande konfiguration.

I avsnittet "Grupper", gÄ till instÀllningarna för gruppen "Alla anvÀndare" och ta bort flaggan "Alla resurser" sÄ att endast anvÀndare i en viss grupp kan ansluta till VPN-servern.
Skapa en ny grupp "VPN users", inaktivera alla autentiseringsmetoder utom Telegram och ange att anvÀndarna har tillgÄng till den skapade VPN-resursen.

I avsnittet "AnvÀndare" skapa de anvÀndare som ska ha tillgÄng till VPN, lÀgg till dem i gruppen "VPN users" och skicka dem en lÀnk för att stÀlla in den andra autentiseringsfaktorn. AnvÀndarnamnet mÄste matcha anvÀndarnamnet pÄ VPN-servern.

Konfigurera OpenVPN-servern
Ăppna filen /etc/openvpn/server.conf och lĂ€gg till en plugin för autentisering med PAM-modulen
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpnPlugin kan befinna sig i katalogen /usr/lib/openvpn/plugins/ eller /usr/lib64/openvpn/plugins/ beroende pÄ ditt system.
NÀsta steg Àr att installera modulen pam_radius_auth
$ sudo yum install pam_radiusĂppna filen för redigering /etc/pam_radius.conf och ange adressen till RADIUS-servern för Multifactor
radius.multifactor.ru shared_secret 40dÀr:
- radius.multifactor.ru Àr adressen till servern
- shared_secret Àr kopierat frÄn den relevanta parametern i VPN-instÀllningarna
- 40 sekunder Àr tidsgrÀnsen för att vÀnta pÄ en begÀran med god marginal
Andra servrar behöver tas bort eller kommenteras (placera en punkt i början av raden med ett semikolon)
Skapa sedan en fil för typen av tjÀnst openvpn
$ sudo vi /etc/pam.d/openvpnoch skriv in följande
auth required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth substack password-auth
account substack password-authDen första raden ansluter PAM-modulen pam_radius_auth med parametrarna:
- skip_passwd inaktiverar överföringen av anvÀndarens lösenord till RADIUS-servern för Multifactor (ingen anledning för dem att veta).
- client_id â sĂ€tt in motsvarande parameter frĂ„n VPN-resursens instĂ€llningar istĂ€llet för [NAS-Identifier].
Alla möjliga parametrar beskrivs i .
De andra och tredje raderna inkluderar systemkontroll av anvÀndarnamn, lösenord och anvÀndarrÀttigheter pÄ din server tillsammans med den andra autentiseringsfaktorn.
Starta om OpenVPN
$ sudo systemctl restart openvpn@serverKonfigurera klienten
Aktivera begÀran om anvÀndarnamn och lösenord i klientkonfigurationen
auth-user-passKontroll
Starta klienten för OpenVPN, anslut till servern, ange anvÀndarnamn och lösenord. En begÀran om Ätkomst kommer att skickas frÄn Telegram-boten med tvÄ knappar.

En knapp ger Ätkomst, den andra blockerar.
Nu kan du tryggt spara lösenordet pÄ klienten, den andra faktorn skyddar din OpenVPN-server pÄ ett tillförlitligt sÀtt frÄn obehörig Ätkomst.
Om nÄgot inte fungerar
Kontrollera steg för steg att du inte har missat nÄgot:
- Det finns en anvÀndare med ett installerat lösenord pÄ servern med OpenVPN.
- Servern har öppnat Ätkomst via UDP-port 1812 till adressen radius.multifactor.ru
- Parametrarna NAS-Identifier och Shared Secret Àr korrekt angivna
- I Multifactor-systemet finns det en anvÀndare med samma inloggning som har tillgÄng till VPN-anvÀndargruppen
- AnvÀndaren har konfigurerat autentisering via Telegram
Om du inte har konfigurerat OpenVPN tidigare, lÀs gÀrna .
Instruktionen Àr gjord med exempel pÄ CentOS 7.
KĂ€lla: habr.com
