TvÄfaktorsautentisering i OpenVPN med Telegram-bot

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.

  1. OpenVPN anvÀnder pluginet openvpn-plugin-auth-pam för autentisering.
  2. Pluginet kontrollerar anvÀndarens lösenord pÄ servern och begÀr den andra faktorn via RADIUS-protokollet frÄn Multifactors tjÀnst.
  3. Multifactor skickar ett meddelande till anvÀndaren via Telegram-boten för att bekrÀfta Ätkomsten.
  4. 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 multifactorhanteringssystemet, 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.

TvÄfaktorsautentisering i OpenVPN med Telegram-bot

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.

TvÄfaktorsautentisering i OpenVPN med Telegram-bot

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.

TvÄfaktorsautentisering i OpenVPN med Telegram-bot

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 openvpn

Plugin 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   40

dÀ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/openvpn

och skriv in följande

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

Den 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 dokumentationen för modulen.

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@server

Konfigurera klienten

Aktivera begÀran om anvÀndarnamn och lösenord i klientkonfigurationen

auth-user-pass

Kontroll

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.

TvÄfaktorsautentisering i OpenVPN med Telegram-bot

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 den utförliga artikeln.

Instruktionen Àr gjord med exempel pÄ CentOS 7.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster