Twee-factor-authenticatie in OpenVPN met Telegram-bot

In dit artikel wordt de configuratie van de OpenVPN-server beschreven voor het inschakelen van twee-factor-authenticatie met een Telegram-bot, die een bevestigingsverzoek zal sturen bij verbinding.

OpenVPN is een veelgebruikte, gratis VPN-server met een open source-code die op grote schaal wordt gebruikt voor het creƫren van beveiligde toegang voor medewerkers tot de interne bronnen van de organisatie.

Als authenticatie voor verbinding met de VPN-server wordt meestal een combinatie van een sleutel en gebruikersnaam/wachtwoord gebruikt. Het opgeslagen wachtwoord op de client maakt de gehele set tot ƩƩn factor, wat niet het gewenste niveau van beveiliging garandeert. Een kwaadwillende die toegang krijgt tot de clientcomputer, krijgt ook toegang tot de VPN-server. Dit geldt vooral voor verbindingen vanaf machines die Windows gebruiken.

Het gebruik van een tweede factor vermindert het risico op ongeoorloofde toegang met 99% en maakt het verbindingsproces voor gebruikers helemaal niet ingewikkelder.

Ik wil meteen opmerken dat voor de implementatie een externe authenticatieserver van multifactor.ru vereist is, waar je een gratis tarief voor je behoeften kunt gebruiken.

Werking principe

  1. OpenVPN gebruikt de plugin openvpn-plugin-auth-pam voor authenticatie
  2. De plugin controleert het wachtwoord van de gebruiker op de server en vraagt het tweede factor via het RADIUS-protocol van de Multifactorservice
  3. Multifactor verzendt via een Telegram-bot een bericht naar de gebruiker ter bevestiging van de toegang
  4. De gebruiker bevestigt het toegang verzoek in de Telegram-chat en maakt verbinding met de VPN

Installatie van de OpenVPN-server

Er zijn veel artikelen op internet die het proces van installatie en configuratie van OpenVPN beschrijven, dus we zullen ze niet dupliceren. Als je hulp nodig hebt, zijn er aan het einde van het artikel een aantal links naar leermaterialen.

Configuratie van Multifactor

Ga naar het managementsysteem van Multifactor, ga naar de sectie "Hulpmiddelen" en maak een nieuwe VPN aan.
Na het aanmaken zijn er twee parameters beschikbaar: NAS-IDentifier en Gedeeld geheim, deze zijn nodig voor de volgende configuratie.

Twee-factor-authenticatie in OpenVPN met Telegram-bot

In de sectie "Groepen", ga naar de groepsinstellingen van "Alle gebruikers" en verwijder het vinkje bij "Alle middelen", zodat alleen gebruikers van een specifieke groep verbinding kunnen maken met de VPN-server.

Maak een nieuwe groep "VPN gebruikers", schakel alle authenticatiemethoden uit behalve Telegram en geef aan dat gebruikers toegang hebben tot de gemaakte VPN-bron.

Twee-factor-authenticatie in OpenVPN met Telegram-bot

Maak in het tabblad "Gebruikers" gebruikers aan die toegang hebben tot de VPN, voeg ze toe aan de groep "VPN gebruikers" en stuur hen een link om de tweede factor authenticatie in te stellen. De gebruikersnaam moet overeenkomen met de inloggegevens op de VPN-server.

Twee-factor-authenticatie in OpenVPN met Telegram-bot

Configuratie van de OpenVPN-server

Open het bestand /etc/openvpn/server.conf en voeg de plugin voor authenticatie via de PAM-module toe

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

De plugin kan zich bevinden in de directory /usr/lib/openvpn/plugins/ of /usr/lib64/openvpn/plugins/ afhankelijk van uw systeem.

Vervolgens moet de pam_radius_auth-module worden geĆÆnstalleerd

$ sudo yum install pam_radius

Open het bestand voor bewerking /etc/pam_radius.conf en geef het adres van de RADIUS-multifactorauthenticatieserver op

radius.multifactor.ru   shared_secret   40

waarbij:

  • radius.multifactor.ru — het adres van de server
  • shared_secret — kopieer uit de relevante parameter in de VPN-instellingen
  • 40 seconden — timeout voor het wachten op een verzoek met een ruime marge

Verwijder of becommentarieer (plaats een puntkomma aan het begin) de overige servers

Maak vervolgens een bestand aan voor service-type openvpn

$ sudo vi /etc/pam.d/openvpn

en voeg het volgende toe

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

de eerste regel schakelt de PAM-module pam_radius_auth in met de parameters:

  • skip_passwd — schakelt de overdracht van het wachtwoord van de gebruiker naar de RADIUS-multifactorauthenticiteitserver uit (deze hoeft het niet te weten).
  • client_id — vervang [NAS-Identifier] door de relevante parameter uit de VPN-broninstellingen.
    Alle mogelijke parameters zijn beschreven in de documentatie van de module..

De tweede en derde regels omvatten de systeemcontrole van de inloggegevens, het wachtwoord en de rechten van de gebruiker op uw server samen met de tweede factor authenticatie.

Herstart OpenVPN

$ sudo systemctl restart openvpn@server

Configuratie van de cliƫnt

Schakel in het configuratiebestand van de cliƫnt de verzoek om gebruikersnaam en wachtwoord in

auth-user-pass

Controle

Start de cliƫnt voor OpenVPN, maak verbinding met de server en geef inloggegevens op. Er komt een toegang verzoek van de Telegram-bot met twee knoppen.

Twee-factor-authenticatie in OpenVPN met Telegram-bot

Een knop staat toegang toe, de andere blokkeert toegang.

Nu kunt u het wachtwoord veilig opslaan in de cliƫnt; de tweede factor beschermt uw OpenVPN-server betrouwbaar tegen ongeoorloofde toegang.

Als er iets niet werkt

Controleer stap voor stap of u niets bent vergeten:

  • Op de server met OpenVPN is er een gebruiker met een ingesteld wachtwoord.
  • Toegang tot de server via UDP-poort 1812 op het adres radius.multifactor.ru
  • De parameters NAS-Identifier en Shared Secret zijn correct opgegeven
  • In het Multifactorsysteem is een gebruiker met dezelfde inlog gemaakt en heeft hij toegang gekregen tot de VPN-gebruikersgroep
  • De gebruiker heeft de verificatiemethode via Telegram ingesteld

Als u OpenVPN eerder niet heeft geconfigureerd, lees dan een uitgebreide artikel.

De instructie is gemaakt met voorbeelden op CentOS 7.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster