Kétfaktoros hitelesítés OpenVPN-ben Telegram bot használatával

A cikkben leírjuk az OpenVPN szerver beállításait, hogy lehetővé tegyük a kétfaktoros hitelesítést a Telegram bot által, amely értesítést küld a csatlakozás megerősítéseként.

Az OpenVPN egy széles körben elterjedt, ingyenes, nyílt forráskódú VPN szerver, amelyet előszeretettel használnak alkalmazottak védett belső erőforrásokhoz való hozzáférésének megszervezésére.

A VPN szerverhez való csatlakozás hitelesítéséhez általában egy kulcs és a felhasználó felhasználónevének/jelszavának kombinációja használatos. Azonban a kliens gépen tárolt jelszó az egész készletet egyetlen faktorra redukálja, ami nem biztosít megfelelő szintű biztonságot. Ha egy rosszindulatú feladó hozzáfér a kliens számítógéphez, hozzáfér a VPN szerverhez is. Különösen igaz ez Windows operációs rendszert futtató gépeken való csatlakozás esetén.

A második faktor használata 99%-kal csökkenti a jogosulatlan hozzáférés kockázatát, anélkül, hogy bonyolítaná a felhasználók csatlakozási folyamatát.

Azonnal tisztázom, hogy a megvalósításhoz szükséges egy külső hitelesítési szerver, a multifactor.ru, ahol ingyenes tarifát is igénybe lehet venni.

A működés elve

  1. Az OpenVPN az openvpn-plugin-auth-pam bővítményt használja hitelesítéshez
  2. A bővítmény ellenőrzi a felhasználó jelszavát a szerveren, és RADIUS protokollon keresztül kéri a második faktort a Múltifaktor szolgáltatásból
  3. A Múltifaktor üzenetet küld a felhasználónak a Telegram bón keresztül a hozzáférés megerősítésével
  4. A felhasználó a Telegram csevegésben megerősíti a hozzáférés iránti kérelmet, és csatlakozik a VPN-hez

OpenVPN szerver telepítése

Az interneten számos cikk található az OpenVPN telepítési és beállítási folyamatáról, ezért nem fogjuk azokat megismételni. Ha segítségre van szüksége, a cikk végén van néhány hivatkozás a tananyagokra.

A Múltifaktor beállítása

Lépjen be a Múltifaktor kezelő rendszerbe, lépjen a "Források" részhez, és hozzon létre egy új VPN-t.
A létrehozás után két paraméter válik elérhetővé: NAS-IDentifier és Shared Secret, ezek szükségesek a későbbi beállításhoz.

Kétfaktoros hitelesítés OpenVPN-ben Telegram bot használatával

A "Csoportok" részben lépjen be az "All users" csoport beállításaiba, és távolítsa el az "Összes erőforrás" jelölőnégyzetet, így csak a meghatározott csoport felhasználói tudnak csatlakozni a VPN szerverhez.

Hozzon létre egy új "VPN felhasználók" csoportot, kapcsolja ki az összes hitelesítési módot, kivéve a Telegramot, és jelezze, hogy a felhasználók hozzáférhetnek a létrehozott VPN erőforráshoz.

Kétfaktoros hitelesítés OpenVPN-ben Telegram bot használatával

A "Felhasználók" részben hozzon létre olyan felhasználókat, akik hozzáférnek a VPN-hez, adja hozzá őket a "VPN felhasználók" csoporthoz, és küldjön nekik linket a második faktor hitelesítés beállításához. A felhasználónévnek meg kell egyeznie a VPN szerveren használt felhasználónévvel.

Kétfaktoros hitelesítés OpenVPN-ben Telegram bot használatával

OpenVPN szerver beállítása

Nyissa meg a fájlt /etc/openvpn/server.conf és adja hozzá a PAM modul hitelesítési pluginját

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

A plugin a következő könyvtárban található: /usr/lib/openvpn/plugins/ vagy /usr/lib64/openvpn/plugins/ a rendszere függvényében.

Ezt követően telepítse a pam_radius_auth modult

$ sudo yum install pam_radius

Nyissa meg szerkesztésre a fájlt /etc/pam_radius.conf és adja meg a RADIUS szerver címét a Multifaktorhoz

radius.multifactor.ru shared_secret 40

ahol:

  • radius.multifactor.ru — a szerver címe
  • shared_secret — másolja át a VPN beállításai megfelelő paraméteréből
  • 40 másodperc — a kérések várakozási ideje

A többi szervert törölni vagy megjegyezni kell (helyezze a sor elejére pontosvesszőt)

Ezután hozzon létre egy fájlt a service-type openvpn számára

$ sudo vi /etc/pam.d/openvpn

és írja be a következőket

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

az első sor csatlakoztatja a pam_radius_auth PAM modult a következő paraméterekkel:

  • skip_passwd — letiltja a felhasználói jelszó RADIUS szerverre való átküldését (nem kell tudnia).
  • client_id — helyettesítse a [NAS-Identifier] megfelelő paraméterével a VPN erőforrás beállításaiból.
    Minden lehetséges paramétert a következőben talál: a modul dokumentációjában.

A második és harmadik sor a felhasználói név, jelszó és jogosultságok rendszerszintű ellenőrzését végzi a szerveren a második faktor hitelesítéssel együtt.

Indítsa újra az OpenVPN-t

$ sudo systemctl restart openvpn@server

Kliens beállítása

A kliens konfigurációs fájljában kérjen felhasználói nevet és jelszót

auth-user-pass

Ellenőrzés

Indítsa el az OpenVPN klienst, csatlakozzon a szerverhez, adja meg felhasználónevét és jelszavát. A Telegram bot kérni fogja a hozzáférést két gombbal

Kétfaktoros hitelesítés OpenVPN-ben Telegram bot használatával

Az egyik gomb engedélyezi a hozzáférést, a másik blokkolja.

Most már biztonságosan elmentheti a jelszót a kliensen, a második faktor megbízhatóan védi az OpenVPN szerverét a jogosulatlan hozzáféréstől.

Ha valami nem működik

Folyamatosan ellenőrizze, hogy nem hagyott-e ki semmit:

  • Az OpenVPN szerveren van olyan felhasználó, akinek jelszava van beállítva
  • A szerver UDP 1812 portja nyitva van a radius.multifactor.ru címre
  • A NAS-Identifier és a Shared Secret paraméterek helyesen vannak megadva
  • A Multifactor rendszerében már létezik egy felhasználó ezzel a belépési névvel, aki hozzáférést kapott a VPN felhasználói csoporthoz
  • A felhasználó a Telegramon keresztüli hitelesítést állította be

Ha még nem konfigurálta az OpenVPN-t, olvassa el a részletes cikket.

Az útmutató CentOS 7 példáira készült.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster