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
- Az OpenVPN az openvpn-plugin-auth-pam bővítményt használja hitelesítéshez
- 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
- 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
- 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 , 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.

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.

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.

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 openvpnA 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_radiusNyissa 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 40ahol:
- 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-authaz 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 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@serverKliens beállítása
A kliens konfigurációs fájljában kérjen felhasználói nevet és jelszót
auth-user-passEllenő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

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 .
Az útmutató CentOS 7 példáira készült.
Forrás: habr.com
