Kéttényezős hitelesítés az OpenVPN-ben Telegram bottal

A cikk leírja egy OpenVPN-kiszolgáló beállítását, amely lehetővé teszi a kétfaktoros hitelesítést egy Telegram bottal, amely megerősítési kérést küld a csatlakozáskor.

Az OpenVPN egy jól ismert, ingyenes, nyílt forráskódú VPN-kiszolgáló, amelyet széles körben használnak az alkalmazottak belső szervezeti erőforrásokhoz való biztonságos hozzáférésének megszervezésére.

A VPN-kiszolgálóhoz való csatlakozás hitelesítéseként általában a kulcs és a felhasználói bejelentkezés/jelszó kombinációját használják. Ugyanakkor a kliensen tárolt jelszó a teljes készletet egyetlen tényezővé alakítja, amely nem biztosítja a megfelelő biztonsági szintet. A támadó, miután hozzáfért egy ügyfélszámítógéphez, hozzáfér a VPN-kiszolgálóhoz is. Ez különösen igaz a Windowst futtató gépekről érkező kapcsolatokra.

A második tényező alkalmazása 99%-kal csökkenti az illetéktelen hozzáférés kockázatát, és egyáltalán nem bonyolítja a csatlakozási folyamatot a felhasználók számára.

Hadd tegyek azonnali foglalást: a megvalósításhoz csatlakoztatnia kell egy harmadik féltől származó hitelesítési szervert, a multifactor.ru-t, amelyben ingyenes tarifát használhat az Ön igényeinek megfelelően.

Működési elv

  1. Az OpenVPN az openvpn-plugin-auth-pam beépülő modult használja a hitelesítéshez
  2. A beépülő modul ellenőrzi a felhasználó jelszavát a szerveren, és a második tényezőt kéri a RADIUS protokollon keresztül a Multifactor szolgáltatásban
  3. A Multifactor üzenetet küld a felhasználónak a Telegram bot segítségével, megerősítve a hozzáférést
  4. A felhasználó megerősíti a hozzáférési kérelmet a Telegram chatben, és csatlakozik a VPN-hez

OpenVPN szerver telepítése

Az interneten számos cikk található, amely leírja az OpenVPN telepítésének és konfigurálásának folyamatát, ezért nem fogjuk megkettőzni őket. Ha segítségre van szüksége, a cikk végén számos link található az oktatóanyagokhoz.

A multifaktor beállítása

Menj ide Többtényezős vezérlőrendszer, lépjen az „Erőforrások” szakaszba, és hozzon létre egy új VPN-t.
Miután létrehozta, két lehetőség áll rendelkezésére: NAS-azonosító и Közös titok, szükség lesz rájuk a későbbi konfigurációhoz.

Kéttényezős hitelesítés az OpenVPN-ben Telegram bottal

A "Csoportok" részben lépjen az "Összes felhasználó" csoportbeállításokhoz, és távolítsa el az "Összes erőforrás" jelzőt, hogy csak egy bizonyos csoport felhasználói csatlakozhassanak a VPN-kiszolgálóhoz.

Hozzon létre egy új „VPN-felhasználók” csoportot, tiltsa le 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éttényezős hitelesítés az OpenVPN-ben Telegram bottal

A „Felhasználók” részben hozzon létre felhasználókat, akik hozzáférhetnek a VPN-hez, adja hozzá őket a „VPN-felhasználók” csoporthoz, és küldjön nekik egy hivatkozást a hitelesítés második tényezőjének konfigurálásához. A felhasználói bejelentkezési adatoknak meg kell egyeznie a VPN-kiszolgálón lévő bejelentkezési adatokkal.

Kéttényezős hitelesítés az OpenVPN-ben Telegram bottal

OpenVPN szerver beállítása

Nyissa meg a fájlt /etc/openvpn/server.conf és adjunk hozzá egy bővítményt a PAM-modul segítségével történő hitelesítéshez

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

A plugin a könyvtárban található /usr/lib/openvpn/plugins/ vagy /usr/lib64/openvpn/plugins/ rendszerétől függően.

Ezután telepítenie kell a pam_radius_auth modult

$ sudo yum install pam_radius

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

radius.multifactor.ru   shared_secret   40

ahol:

  • radius.multifactor.ru — szerver címe
  • shared_secret - másolás a megfelelő VPN-beállítási paraméterből
  • 40 másodperc - időtúllépés a nagy tartalékkal rendelkező kérésre váráshoz

A fennmaradó szervereket törölni kell vagy megjegyzéseket kell írni (pontosvesszőt kell az elejére tenni)

Ezután hozzon létre egy fájlt az openvpn szolgáltatástípushoz

$ sudo vi /etc/pam.d/openvpn

és írd be

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

Az első sor összekapcsolja a pam_radius_auth PAM modult a következő paraméterekkel:

  • skip_passwd – letiltja a felhasználó jelszavának átvitelét a RADIUS Multifactor szerverre (nem kell tudnia).
  • client_id — cserélje ki a [NAS-Identifier]-t a VPN-erőforrás-beállítások megfelelő paraméterére.
    Az összes lehetséges paraméter leírása a a modul dokumentációja.

A második és harmadik sor tartalmazza a bejelentkezési adatok, a jelszó és a felhasználói jogok rendszerellenőrzését a szerveren, valamint egy második hitelesítési tényezőt.

Indítsa újra az OpenVPN-t

$ sudo systemctl restart openvpn@server

Kliens beállítása

A kliens konfigurációs fájljában szerepeltessen egy felhasználói bejelentkezési és jelszókérést

auth-user-pass

Проверка

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

Kéttényezős hitelesítés az OpenVPN-ben Telegram bottal

Az egyik gomb lehetővé teszi a hozzáférést, a második blokkolja.

Most már biztonságosan mentheti jelszavát az ügyfélen; a második tényező megbízhatóan megvédi OpenVPN-kiszolgálóját az illetéktelen hozzáféréstől.

Ha valami nem működik

Egymás után ellenőrizze, hogy nem hagyott-e ki semmit:

  • Van egy felhasználó a szerveren OpenVPN-nel, és jelszó be van állítva
  • A szerver az 1812-es UDP-porton keresztül hozzáfér a radius.multifactor.ru címhez
  • A NAS-Identifier és Shared Secret paraméterek megfelelően vannak megadva
  • A Multifactor rendszerben létrejött egy felhasználó azonos bejelentkezési névvel, és hozzáférést kapott a VPN felhasználói csoporthoz
  • A felhasználó Telegramon keresztül konfigurálta a hitelesítési módot

Ha még nem állította be az OpenVPN-t, olvassa el bővített cikk.

Az utasítások példákkal készültek a CentOS 7 rendszeren.

Forrás: will.com

Hozzászólás