To-faktor autentificering i OpenVPN med Telegram-bot

Artiklen beskriver opsætningen af en OpenVPN-server for at aktivere tofaktorautentifikation med en Telegram-bot, som sender en bekræftelsesforespørgsel ved tilslutning.

OpenVPN er en velkendt, gratis VPN-server med åben kildekode, der universelt anvendes til at skabe sikker adgang for medarbejdere til organisationens interne ressourcer.

Som regel anvendes en kombination af nøgle og brugernavn/adgangskode til autentificering ved forbindelsen til VPN-serveren. Det gemte adgangskode på klienten gør hele sættet til en enkelt faktor, som ikke sikrer tilstrækkeligt sikkerhedsniveau. Angriberen, som får adgang til klientcomputeren, får også adgang til VPN-serveren. Dette gælder især for forbindelser fra maskiner, der kører Windows.

Brugen af en anden faktor reducerer risikoen for uberettiget adgang med 99% og gør slet ikke tilslutningsprocessen mere kompliceret for brugerne.

Jeg vil straks nævne, at der kræves forbindelse til en ekstern autentificeringsserver multifactor.ru, hvor man kan bruge en gratis tarif til sine behov.

Arbejdets princip

  1. OpenVPN anvender plug-in openvpn-plugin-auth-pam til autentificering.
  2. Plug-in'en kontrollerer brugerens adgangskode på serveren og anmoder om den anden faktor via RADIUS-protokollen i Multifaktor-tjenesten.
  3. Multifaktor sender en besked til brugeren via Telegram-boten med bekræftelse på adgang.
  4. Brugeren bekræfter adgangsforespørgslen i Telegram-chatten og tilslutter sig VPN.

Installation af OpenVPN-server.

Der er mange artikler på internettet, der beskriver installationen og opsætningen af OpenVPN, så vi vil ikke duplikere dem. Hvis du har brug for hjælp, er der nogle links til træningsmaterialer i slutningen af artiklen.

Opsætning af Multifaktor.

Gå til Multifaktors administrationssystem., gå til sektionen "Ressourcer" og opret en ny VPN.
Efter oprettelsen vil to parametre være tilgængelige: NAS-IDentifier. og Shared Secret., de vil være nødvendige for den efterfølgende opsætning.

To-faktor autentificering i OpenVPN med Telegram-bot

I sektionen "Grupper" skal du gå til indstillingerne for gruppen "All users" og fjerne markeringen i "Alle ressourcer", så kun brugere i en bestemt gruppe kan tilslutte sig VPN-serveren.

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

To-faktor autentificering i OpenVPN med Telegram-bot

Under "Brugere" skal du oprette brugere, der får adgang til VPN, tilføje dem til gruppen "VPN users" og sende dem et link til opsætning af den anden faktor for autentificering. Brugernavnet skal matche navnet på VPN-serveren.

To-faktor autentificering i OpenVPN med Telegram-bot

Konfiguration af OpenVPN-server

Åbn filen /etc/openvpn/server.conf og tilføj en plugin til autentificering ved hjælp af PAM-modulet

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

Plugin'et kan befinde sig i mappen /usr/lib/openvpn/plugins/ eller /usr/lib64/openvpn/plugins/ afhængigt af dit system.

Dernæst skal PAM-radius_auth-modulet installeres

$ sudo yum install pam_radius

Åbn filen til redigering /etc/pam_radius.conf og angiv adressen til RADIUS-serveren Multifaktor

radius.multifactor.ru shared_secret 40

hvor:

  • radius.multifactor.ru er adressen til serveren
  • shared_secret — kopier fra den relevante parameter i VPN-indstillingerne
  • 40 sekunder — timeout for anmodningen med god margin

De øvrige servere skal slettes eller kommenteres (tilføj et semikolon i starten)

Dernæst opret en fil til service-type openvpn

$ sudo vi /etc/pam.d/openvpn

og skriv i den

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

den første linje tilslutter PAM-modulet pam_radius_auth med parametrene:

  • skip_passwd — deaktiverer overførslen af brugerens adgangskode til RADIUS-serveren Multifaktor (den skal ikke kende den).
  • client_id — indsæt den relevante parameter fra VPN-ressourcerne i stedet for [NAS-Identifier].
    Alle mulige parametre er beskrevet i dokumentationen til modulet.

De anden og tredje linjer inkluderer systemkontrol af login, adgangskode og brugerrettigheder på din server sammen med den anden faktor for autentificering.

Genstart OpenVPN

$ sudo systemctl restart openvpn@server

Klientkonfiguration

Aktiver login- og adgangskodeanmodningen i klientens konfigurationsfil

auth-user-pass

Kontrol

Start klienten for OpenVPN, forbind til serveren, angiv dit brugernavn og adgangskode. Telegram-boten vil sende en anmodning om adgang med to knapper

To-faktor autentificering i OpenVPN med Telegram-bot

Én knap giver adgang, den anden blokerer.

Nu kan du trygt gemme adgangskoden på klienten; den anden faktor beskytter din OpenVPN-server pålideligt mod uautoriseret adgang.

Hvis noget ikke fungerer

Tjek systematisk, at du ikke har overset noget:

  • På serveren med OpenVPN er der en bruger med en opsat adgangskode
  • Serveren er åbnet for adgang via UDP-port 1812 til adressen radius.multifactor.ru
  • Parametrene NAS-Identifier og Shared Secret er korrekt angivet
  • I Multifactor-systemet er der oprettet en bruger med det samme login, og han/hun er blevet givet adgang til VPN-brugergruppen
  • Brugeren har konfigureret en autentificeringsmetode via Telegram

Hvis du ikke har konfigureret OpenVPN tidligere, så læs denne udførlige artikel.

Vejledningen er lavet med eksempler på CentOS 7.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster