Šajā rokasgrāmatā parādīts, kā VPN, kas autentificējas caur RADIUS, papildināt ar divfaktoru autentifikāciju: apstiprinājumu tālrunī ar vienu pieskārienu. Notakey auth-proxy atrodas starp jūsu VPN koncentratoru un RADIUS serveri: paroles pārbaudi tas kā ierasts pārsūta RADIUS serverim, lietotāja tālrunim nosūta apstiprinājuma pieprasījumu, un Access-Accept atbildi VPN atdod tikai tad, kad izdevušās abas pārbaudes.
Proxy abās pusēs izmanto standarta RADIUS protokolu, tāpēc tas darbojas ar teju jebkuru RADIUS serveri (FreeRADIUS, Microsoft NPS, MikroTik iebūvēto User Manager vai paša Notakey RADIUS spraudni) un ar jebkuru VPN koncentratoru, kam var norādīt RADIUS serveri.
Kā tas darbojas
VPN concentrator ──RADIUS──▶ Notakey auth-proxy ──RADIUS──▶ your RADIUS server
│
└──▶ push notification ──▶ user's phone
- Lietotājs pieslēdzas VPN ar savu lietotājvārdu un paroli.
- Koncentrators RADIUS pieprasījumu nosūta auth-proxy (nevis tieši jūsu RADIUS serverim).
- Proxy pieprasījumu pārsūta tālāk. Ja paroles pārbaude neizdodas, pieteikšanās tūlīt tiek noraidīta.
- Ja parole ir pareiza, proxy nosūta lietotāja tālrunim apstiprinājuma
pieprasījumu un tur RADIUS apmaiņu atvērtu, kamēr lietotājs atbild,
pēc noklusējuma līdz 30 sekundēm (
vpn_message_ttl). - Apstiprināt → VPN saņem Access-Accept. Noraidīt vai noildze → atteikums.
No šīs gaidīšanas izriet viena svarīga prasība: jūsu VPN RADIUS klienta noildzei jābūt vismaz tikpat garai kā apstiprinājuma logam, tātad vismaz 30 sekundes. Lielākajai daļai RADIUS klientu noklusējuma noildze ir dažas sekundes vai pat mazāk, jo parasta paroles pārbaude atbild acumirklī; šeit turpretī cilvēkam vēl jāpaspēj paņemt tālrunis rokā.
Priekšnosacījumi
- Notakey autentifikācijas serveris: bezmaksas mākoņa versija vietnē signup.notakey.com vai lokālā (on-premise) iekārta
- RADIUS serveris (vai Notakey RADIUS spraudnis, skatiet tālāk)
- VPN, kas autentificējas pret RADIUS
- Vienāds lietotājvārds Notakey servisā, RADIUS serverī un VPN: pēc tā proxy adresē push paziņojumu
1. solis — VPN lietotnes izveide
Notakey vadības panelī izveidojiet VPN paredzētu lietotni (servisu), reģistrējiet lietotāju tālruņus un nokopējiet lietotnes Access ID: UUID, kas tālāk būs jāielīmē proxy konfigurācijā.
2. solis — auth-proxy konfigurēšana
Lokālā iekārta: iebūvētais proxy
Iekārtā auth-proxy jau ir iebūvēts. Konfigurējiet to iekārtas komandrindā (CLI) ar vienu JSON dokumentu:
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
Pēc tam palaidiet servisu:
ntk ap start
Lauku nozīme:
| Lauks | Nozīme |
|---|---|
vpn_port_in |
Ports, kurā proxy gaida jūsu VPN RADIUS pieprasījumus |
vpn_port_out |
Jūsu lejupējā RADIUS servera ports |
vpn_radius_address |
Jūsu lejupējā RADIUS servera adrese |
vpn_secret_in |
Koplietotā slepenā atslēga starp jūsu VPN un proxy |
vpn_secret_out |
Koplietotā slepenā atslēga starp proxy un jūsu RADIUS serveri |
vpn_access_id |
Lietotnes Access ID no 1. soļa |
vpn_message_ttl |
Cik sekunžu lietotājam ir laika apstiprināt (30 ir saprātīgs noklusējums) |
message_title / message_description |
Push paziņojumā redzamais teksts; {0} tiek aizstāts ar lietotājvārdu |
Mākonis: konteinerizētais proxy
Ja Notakey serveris darbojas mākonī, to pašu proxy palaidiet kā konteineru savā tīklā, RADIUS servera priekšā:
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
Sastāvdaļas tās pašas, tikai citā iesaiņojumā: NOTAKEY_HOST ir jūsu mākoņa
instances API URL, DOWNSTREAM_ADDRESS — jūsu RADIUS serveris, un abas
slepenās atslēgas atbilst attiecīgi VPN pusei un RADIUS pusei.
Pilns abu variantu apraksts (tostarp MSI instalators proxy darbināšanai Windows vidē, tīkla savienojamības prasības un žurnālfailu atrašanās vietas) atrodams Authentication Proxy rokasgrāmatā.
3. solis — vēl nav RADIUS servera? Izmantojiet mūsējo
Ja sava RADIUS servera jums vēl nav, tikai šī iemesla dēļ tas nav jāievieš:
- Notakey RADIUS spraudnis. Iekārtai ir RADIUS servisa spraudnis (tā pamatā ir FreeRADIUS). Tas pārbauda lietotājus, kas jau definēti jūsu Notakey servisā, tāpēc atsevišķa RADIUS lietotāju datubāze nav jāuztur. Uzstādīšana aprakstīta mūsu zināšanu bāzes rakstā RADIUS servisa spraudnis (lietotāju konfigurācija nav nepieciešama).
- MikroTik User Manager. Ja jūsu VPN jau noslēdzas MikroTik ierīcē, par lejupējo RADIUS serveri var kalpot tās iebūvētā User Manager pakotne.
- Derēs arī jebkurš esošs uzņēmuma RADIUS serveris (FreeRADIUS, Microsoft NPS un līdzīgi) bez jebkādām izmaiņām: no servera puses proxy nemaz nav manāms.
4. solis — VPN novirzīšana uz proxy
Pārkonfigurējiet VPN koncentratora RADIUS klientu: slepenā atslēga tā pati,
kas vpn_secret_in, bet servera adrese tagad ir proxy, nevis RADIUS
serveris. Un palieliniet noildzi.
MikroTik ierīcē tas izskatās šādi:
/radius
add service=ppp address=<proxy-address> secret=secret_to_radius_server timeout=30s
/ppp aaa
set use-radius=yes
timeout=30s ir būtisks. MikroTik noklusējuma RADIUS noildze ir 300
milisekundes: paroles pārbaudei ar to pietiek, bet cilvēka apstiprinājumam
ne tuvu ne. Iestatiet vismaz 30 sekundes (atbilstoši vpn_message_ttl),
citādi pieteikšanās izgāzīsies, pirms lietotājs vispār paspēs paņemt tālruni
rokā. Tas pats attiecas uz jebkura cita ražotāja RADIUS klienta
iestatījumiem.
Pārbaudiet darbību
Pieslēdzieties VPN. Kad parole pārbaudīta, tālrunī parādās push paziņojums. Tas redzams arī bloķētā ekrānā, tāpēc lietotne pat nav jāatver:

Paziņojumu atverot, redzams pilns pieprasījums (kurš piesakās un no kādas IP adreses) līdz ar atlikušā laika atskaiti, kamēr proxy tur RADIUS apmaiņu atvērtu:

Savienojums izveidojas tikai pēc Apstiprināt. Tieši šajā ekrānā slēpjas visas shēmas drošības ieguvums: ja push paziņojums pienāk brīdī, kad lietotājs pats VPN nemaz nemēģina pieslēgties, viņš redz, ka viņa paroli izmanto kāds cits — turklāt no IP adreses, ko var pārbaudīt. Viens pieskāriens pogai Noraidīt pieteikšanos aptur un atstāj ierakstu auditam. Savukārt, ja pieteikšanās beidzas ar noildzi pat tad, kad apstiprināt paspējat ātri, vispirms pārbaudiet RADIUS klienta noildzi: tā ir visbiežākā kļūda šajā uzstādīšanā.
Saistītās rokasgrāmatas
- MikroTik maršrutētāja pieteikšanās 2FA: tas pats proxy, pavērsts pret paša maršrutētāja WinBox/SSH pieteikšanos
- Linux SSH 2FA ar pam_radius: tas pats proxy aizsargā SSH, sudo un su
- MikroTik VPN 2FA — pilna uzstādīšana ar skriptu: alternatīva vienam maršrutētājam, pavisam bez RADIUS
- Windows Credential Provider attālajai darbvirsmai