To-faktor-godkendelse i OpenVPN med Telegram-bot

Artiklen beskriver opsætning af en OpenVPN-server for at aktivere to-faktor-godkendelse med en Telegram-bot, der sender en bekræftelsesanmodning, når der oprettes forbindelse.

OpenVPN er en velkendt, gratis, open source VPN-server, der er meget brugt til at organisere sikker medarbejderadgang til interne organisatoriske ressourcer.

Som autentificering for at oprette forbindelse til en VPN-server bruges normalt en kombination af en nøgle og brugerlogin/adgangskode. Samtidig gør adgangskoden, der er gemt på klienten, hele sættet til en enkelt faktor, der ikke giver det rette sikkerhedsniveau. En angriber, der har fået adgang til en klientcomputer, får også adgang til VPN-serveren. Dette gælder især for forbindelser fra maskiner, der kører Windows.

Brug af den anden faktor reducerer risikoen for uautoriseret adgang med 99 % og komplicerer overhovedet ikke forbindelsesprocessen for brugerne.

Lad mig foretage en reservation med det samme: for implementering skal du tilslutte en tredjeparts autentificeringsserver multifactor.ru, hvor du kan bruge en gratis takst til dine behov.

Virkemåde

  1. OpenVPN bruger openvpn-plugin-auth-pam plugin til godkendelse
  2. Pluginnet kontrollerer brugerens adgangskode på serveren og anmoder om den anden faktor via RADIUS-protokollen i Multifactor-tjenesten
  3. Multifactor sender en besked til brugeren via Telegram-bot, der bekræfter adgang
  4. Brugeren bekræfter adgangsanmodningen i Telegram-chat og opretter forbindelse til VPN

Installation af en OpenVPN-server

Der er mange artikler på internettet, der beskriver processen med at installere og konfigurere OpenVPN, så vi vil ikke duplikere dem. Hvis du har brug for hjælp, er der flere links til tutorials i slutningen af ​​artiklen.

Opsætning af multifaktoren

Gå til Multifaktor kontrolsystem, gå til afsnittet "Ressourcer" og opret en ny VPN.
Når først oprettet, vil du have to muligheder tilgængelige for dig: NAS-IDentifier и Delt hemmelighed, vil de være nødvendige for efterfølgende konfiguration.

To-faktor-godkendelse i OpenVPN med Telegram-bot

I sektionen "Grupper" skal du gå til gruppeindstillingerne "Alle brugere" og fjerne flaget "Alle ressourcer", så kun brugere af en bestemt gruppe kan oprette forbindelse til VPN-serveren.

Opret en ny gruppe "VPN-brugere", deaktiver alle godkendelsesmetoder undtagen Telegram og angiv, at brugerne har adgang til den oprettede VPN-ressource.

To-faktor-godkendelse i OpenVPN med Telegram-bot

I afsnittet "Brugere" skal du oprette brugere, der vil have adgang til VPN, tilføje dem til gruppen "VPN-brugere" og sende dem et link for at konfigurere den anden godkendelsesfaktor. Brugerlogin skal svare til login på VPN-serveren.

To-faktor-godkendelse i OpenVPN med Telegram-bot

Opsætning af en OpenVPN-server

Åbn filen /etc/openvpn/server.conf og tilføje et plugin til godkendelse ved hjælp af PAM-modulet

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

Pluginnet kan findes i mappen /usr/lib/openvpn/plugins/ eller /usr/lib64/openvpn/plugins/ afhængigt af dit system.

Dernæst skal du installere pam_radius_auth-modulet

$ sudo yum install pam_radius

Åbn filen til redigering /etc/pam_radius.conf og angiv adressen på multifaktorens RADIUS-server

radius.multifactor.ru   shared_secret   40

hvor:

  • radius.multifactor.ru — serveradresse
  • shared_secret - kopier fra den tilsvarende VPN-indstillingsparameter
  • 40 sekunder - timeout for at vente på en anmodning med stor margen

De resterende servere skal slettes eller kommenteres ud (sæt semikolon i begyndelsen)

Opret derefter en fil til service-type openvpn

$ sudo vi /etc/pam.d/openvpn

og skriv det ind

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

Den første linje forbinder PAM-modulet pam_radius_auth med parametrene:

  • skip_passwd - deaktiverer transmission af brugerens adgangskode til RADIUS Multifactor-serveren (han behøver ikke at vide det).
  • client_id — erstat [NAS-Identifier] med den tilsvarende parameter fra VPN-ressourceindstillingerne.
    Alle mulige parametre er beskrevet i dokumentation for modulet.

Den anden og tredje linje inkluderer systembekræftelse af login, adgangskode og brugerrettigheder på din server sammen med en anden godkendelsesfaktor.

Genstart OpenVPN

$ sudo systemctl restart openvpn@server

Klient opsætning

Inkluder en anmodning om brugerlogin og adgangskode i klientkonfigurationsfilen

auth-user-pass

inspektion

Start OpenVPN-klienten, opret forbindelse til serveren, indtast dit brugernavn og adgangskode. Telegram-botten sender en adgangsanmodning med to knapper

To-faktor-godkendelse i OpenVPN med Telegram-bot

Den ene knap giver adgang, den anden blokerer den.

Nu kan du sikkert gemme din adgangskode på klienten; den anden faktor vil pålideligt beskytte din OpenVPN-server mod uautoriseret adgang.

Hvis noget ikke virker

Tjek sekventielt, at du ikke er gået glip af noget:

  • Der er en bruger på serveren med OpenVPN med en adgangskode
  • Serveren har adgang via UDP-port 1812 til adressen radius.multifactor.ru
  • Parametrene NAS-Identifier og Shared Secret er angivet korrekt
  • En bruger med samme login er oprettet i Multifactor-systemet og har fået adgang til VPN-brugergruppen
  • Brugeren har konfigureret godkendelsesmetoden via Telegram

Hvis du ikke har konfigureret OpenVPN før, så læs udvidet artikel.

Instruktionerne er lavet med eksempler på CentOS 7.

Kilde: www.habr.com

Tilføj en kommentar