2026. január 20.

VPN 2FA RADIUS-szal: az auth-proxy teljes beállítása

Notakey auth-proxy bármely RADIUS-szerver elé (FreeRADIUS, NPS vagy MikroTik User Manager), és a VPN-belépéshez telefonos jóváhagyás kell.

Ez az útmutató telefonos érintéssel jóváhagyható kétfaktoros hitelesítést ad egy RADIUS-on keresztül hitelesítő VPN-hez. A Notakey auth-proxy a VPN-koncentrátor és a RADIUS-szerver közé épül be: a jelszóellenőrzést a szokásos módon továbbítja a RADIUS felé, jóváhagyási kérést küld a felhasználó telefonjára, és csak akkor ad Access-Accept választ a VPN-nek, ha mindkettő sikeres.

Mivel a proxy mindkét oldalán szabványos RADIUS-t beszél, szinte bármilyen RADIUS-szerverrel működik (FreeRADIUS, Microsoft NPS, a MikroTik beépített User Managere vagy a Notakey saját RADIUS-bővítménye), és bármilyen VPN-koncentrátorral, amely RADIUS-szerverre tud mutatni.

Hogyan működik

VPN concentrator ──RADIUS──▶ Notakey auth-proxy ──RADIUS──▶ your RADIUS server

                                     └──▶ push notification ──▶ user's phone
  1. A felhasználó a felhasználónevével és jelszavával csatlakozik a VPN-hez.
  2. A koncentrátor a RADIUS-kérést az auth-proxynak küldi (nem közvetlenül a RADIUS-szervernek).
  3. A proxy továbbítja a kérést a mögöttes szervernek. Ha a jelszóellenőrzés sikertelen, a bejelentkezést azonnal elutasítja.
  4. Ha a jelszó rendben van, a proxy jóváhagyási kérést küld a felhasználó telefonjára, és nyitva tartja a RADIUS-tranzakciót, amíg a felhasználó válaszol, alapértelmezés szerint legfeljebb 30 másodpercig (vpn_message_ttl).
  5. Jóváhagyás → Access-Accept megy vissza a VPN-nek. Elutasítás vagy időtúllépés → a belépés elutasítva.

A 4. lépésnek van egy fontos következménye: a VPN RADIUS-kliensének időkorlátja legalább akkora legyen, mint a jóváhagyási ablak, azaz legalább 30 másodperc. A legtöbb RADIUS-kliens alapértelmezése néhány másodperc vagy még kevesebb, hiszen egy sima jelszóellenőrzés azonnal válaszol; itt viszont egy embernek elő kell vennie a telefonját.

Előfeltételek

  • Egy Notakey Authentication Server: az ingyenes felhős csomag a signup.notakey.com címen, vagy a helyben telepíthető készülék
  • Egy RADIUS-szerver (vagy használja a Notakey RADIUS-bővítményét, lásd lejjebb)
  • Egy VPN, amely RADIUS-szal hitelesít
  • Ugyanaz a felhasználónév a Notakey szolgáltatásban, a RADIUS-ban és a VPN-ben: a proxy ez alapján címzi a push értesítést

1. lépés: Hozza létre a VPN-alkalmazást

A Notakey irányítópulton hozzon létre egy alkalmazást (szolgáltatást) a VPN számára, regisztrálja a felhasználók telefonjait, és másolja ki az alkalmazás Access ID-ját: ezt az UUID-t kell majd beillesztenie az alábbi proxykonfigurációba.

2. lépés: Konfigurálja az auth-proxyt

Helyben telepített készülék: a beépített proxy

A készülék az auth-proxyt gyárilag tartalmazza. Konfigurálja a készülék parancssorából, egyetlen JSON-dokumentummal:

ntk cfg set :ap '{
  "vpn_port_in": "1812",
  "vpn_port_out": "1812",
  "vpn_radius_address": "10.0.1.23",
  "vpn_secret_in": "secret_to_radius_server",
  "vpn_secret_out": "secret_to_radius_server",
  "vpn_access_id": "c468f008-485b-b11c-aad9672fbae1",
  "vpn_message_ttl": "30",
  "message_title": "VPN authentication",
  "message_description": "Allow {0} login?"
}' --json-input

Majd indítsa el a szolgáltatást:

ntk ap start

Az egyes mezők jelentése:

Mező Jelentés
vpn_port_in A port, amelyen a proxy a VPN RADIUS-kéréseit fogadja
vpn_port_out A mögöttes RADIUS-szerver portja
vpn_radius_address A mögöttes RADIUS-szerver címe
vpn_secret_in A VPN és a proxy közötti megosztott titok
vpn_secret_out A proxy és a RADIUS-szerver közötti megosztott titok
vpn_access_id Az 1. lépésben kimásolt alkalmazás-Access ID
vpn_message_ttl Ennyi másodperce van a felhasználónak a jóváhagyásra (a 30 észszerű alapérték)
message_title / message_description Ez jelenik meg a push értesítésben; a {0} helyére a felhasználónév kerül

Felhős szerver: a proxy Docker-konténerben

Felhőben üzemeltetett Notakey-szerver esetén futtassa ugyanezt a proxyt konténerként a saját hálózatán belül, a RADIUS-szervere előtt:

docker run --name auth-proxy \
  -e NOTAKEY_HOST="https://2fa.your_company.com/api" \
  -e NOTAKEY_ACCESS_ID="c468f008-485b-b11c-aad9672fbae1" \
  -p 1812:1812/udp \
  -e LISTEN_ADDRESS=0.0.0.0 \
  -e ADDRESS_SECRET_IN=0.0.0.0:secret_to_radius_server \
  -e DOWNSTREAM_ADDRESS=10.0.1.23 \
  -e SECRET_OUT=secret_to_radius_server \
  notakey/authproxy:latest

Ugyanazok az építőelemek, más csomagolásban: a NOTAKEY_HOST a felhőpéldány API URL-je, a DOWNSTREAM_ADDRESS a RADIUS-szervere, a két titok pedig rendre a VPN-oldalhoz és a RADIUS-oldalhoz tartozik.

Mindkét változat teljes referenciáját (beleértve a proxy Windowson való futtatásához készült MSI-telepítőt, a hálózati kapcsolódási követelményeket és a naplófájlok helyét) az Authentication Proxy kézikönyv tartalmazza.

3. lépés: Nincs még RADIUS-szervere? Használja a miénket

Ha eddig nem üzemeltetett RADIUS-t, nem kell pusztán emiatt felépítenie egyet:

  • Notakey RADIUS-bővítmény: a készülék tartalmaz egy (FreeRADIUS-alapú) RADIUS-szolgáltatásbővítményt. Ez a Notakey szolgáltatás már meglévő felhasználóit használja a hitelesítéshez, így nincs külön karbantartandó RADIUS-felhasználói adatbázis; a beállítást a tudásbázisunk RADIUS-szolgáltatásbővítmény (felhasználói konfiguráció nélkül) cikke ismerteti.
  • MikroTik User Manager: ha a VPN már most egy MikroTiken végződik, annak beépített User Manager csomagja is megfelel mögöttes RADIUS-szervernek.
  • Bármely meglévő vállalati RADIUS (FreeRADIUS, Microsoft NPS és társaik) változtatás nélkül működik; a proxy jelenlétét észre sem veszi.

4. lépés: Irányítsa a VPN-t a proxyra

Konfigurálja át a VPN-koncentrátor RADIUS-kliensét: a titok maradjon a vpn_secret_in értéke, a szerver címe viszont mostantól a proxy legyen, nem a RADIUS-szerver. És emelje meg az időkorlátot.

MikroTiken ez így néz ki:

/radius
add service=ppp address=<proxy-address> secret=secret_to_radius_server timeout=30s

/ppp aaa
set use-radius=yes

A timeout=30s nem részletkérdés. A MikroTik alapértelmezett RADIUS-időkorlátja 300 ezredmásodperc: jelszóellenőrzéshez elég, emberi jóváhagyáshoz reménytelen. Állítsa legalább 30 másodpercre (a vpn_message_ttl értékéhez igazítva), különben a bejelentkezések már azelőtt meghiúsulnak, hogy a felhasználó egyáltalán a telefonjáért nyúlhatna. Ugyanez a szabály érvényes bármely más gyártó RADIUS-kliensbeállításaira is.

Próbálja ki

Csatlakozzon a VPN-hez. A jelszóellenőrzés lefut, a push értesítés pedig megérkezik a telefonra, akár a lezárt képernyőre is, így a felhasználónak még az alkalmazást sem kell megnyitva tartania:

A jóváhagyási push a lezárt képernyőn: „VPN-kapcsolat — bejelentkezik ezzel a felhasználónévvel, erről az IP-címről?” (a felhasználónév és az IP kitakarva).

Megnyitva a teljes kérés látható: ki jelentkezik be és melyik IP-címről, visszaszámlálóval, amíg a proxy nyitva tartja a RADIUS-tranzakciót:

A kérés a Notakey Authenticatorban: a szolgáltatás neve, az ellenőrizendő bejelentkezés és forrás-IP, visszaszámláló, valamint Elutasítás / Jóváhagyás gombok.

A kapcsolat csak a Jóváhagyás után épül fel. És éppen ez a képernyő az egész megoldás biztonsági hozadéka: az a felhasználó, aki úgy kapja meg ezt az értesítést, hogy nem ő csatlakozik éppen a VPN-hez, azt látja, hogy valaki más használja a jelszavát (méghozzá egy számára is látható IP-címről), és egyetlen érintés az Elutasítás gombon megállítja a belépést, ráadásul naplónyomot is hagy. Ha a bejelentkezések gyors jóváhagyás mellett is időtúllépésre futnak, először a RADIUS-kliens időkorlátját ellenőrizze – ebben az összeállításban ez a leggyakoribb hiba.

Kapcsolódó útmutatók

← Minden bejegyzés

Az első jelszó nélküli bejelentkezés már ezen a héten

30 perces beszélgetés egy mérnökkel – nem értékesítési prezentáció. Közösen megtervezzük, hogyan indulhat el egy működő pilotprojekt az Ön VPN-, SSO- vagy Windows-környezetében.