Pridanie druhého autentifikačného backendu k VPN bráne vyzerá ako pridanie druhého faktora. Zvyčajne pridá druhú kontrolu, čo je iný objekt s inými režimami zlyhania. Či musia obe uspieť, čo každá dokazuje a čo sa stane, keď jedna nie je dostupná, sú tri samostatné rozhodnutia. Pomýľte si ich a brána skončí prísnejšia pri ukážke a slabšia počas výpadku.

Čo druhý backend skutočne dokazuje

Vyhľadanie miestneho účtu dokazuje, že meno existuje v databáze a že mu zodpovedalo heslo. Výmena RADIUS dokazuje, že server RADIUS vrátil Access-Accept pre prijaté atribúty. Ani jedno tvrdenie nespomína typ faktora, pretože obe overujú znalosť. A usmernenie NIST k digitálnej identite počíta rôzne typy faktorov a ich autentifikátory, nie servery alebo výzvy.

Existuje legitímny dizajn, na ktorom sa podieľajú oba systémy. Centrálna služba môže autentifikovať osobu, zatiaľ čo brána nezávisle kontroluje, či má tento účet nárok na tento tunel. To je autorizácia popri autentifikácii, a nazývať to dvojfaktorovým zamieňa kontrolu politiky s dôkazom držby.

RADIUS môže niesť skutočný druhý faktor, keď stojí pred niečím, čo jeden overuje, napríklad push schválením alebo hardvérovým tokenom. Obálka nehovorí, ktoré autentifikátory používateľ predložil, preto čítajte politiku backendu, nie označenie brány.

AND, OR a záložný režim sú rôzne produkty

Skôr než začnete porovnávať implementácie, rozhodnite, čo oboje znamená vo vašej požiadavke. Politika AND vyžaduje, aby prešla každá pomenovaná kontrola, politika OR prijme tú, ktorá uspeje, a záložný režim skúša druhú len za uvedených podmienok zlyhania. Tieto tri sa počas výpadku správajú opačne a zvyčajne iba jedna z nich je to, čo revízia zamýšľala.

Pridanie dvoch backendových položiek na obrazovku konfigurácie neprezradí, ktorú politiku produkt uplatňuje. Niektoré brány reťazia pluginy v poradí a zastavia sa pri prvom odmietnutí, čo je AND len vtedy, keď je každý plugin povinný. Iné považujú miestny účet za prepis, čo mení centrálny výpadok na obchádzanie. Spoľahlivou odpoveďou je zdokumentovaný negatívny test pre každú cestu, spustený na zostave, ktorú nasadzujete.

Záložný režim si zaslúži najväčšie podozrenie, pretože existuje preto, aby fungoval ďalej, keď je niečo pokazené. Záložný režim, ktorý prijme miestne heslo vždy, keď je RADIUS nedostupný, premenil centrálnu politiku na druhé, slabšie dvere.

Dvojitá kontrola OpenVPN je konkrétny prípad

Komunitná OpenVPN 2.6 vyžaduje klientsky certifikát aj nakonfigurovaný skript auth-user-pass-verify, keď sú oba zapnuté. To je zdokumentovaný AND medzi overením certifikátu a skriptom prihlasovacích údajov, a skutočne ide o dve kontroly. Stále to však nie sú automaticky dva typy faktorov, pretože skript môže overiť iba heslo.

Kombinácia tiež necháva otvorenú otázku priradenia. Certifikát zvyčajne identifikuje zariadenie, zatiaľ čo údaje identifikujú osobu, a nič v predvolenom toku nevyžaduje, aby sa obe vzťahovali na ten istý subjekt. Rozhodnite, ktoré páry sú povolené, a potom túto mapu vynúťte v overovacom skripte alebo v neskoršom autorizačnom kroku.

Režim iba s certifikátom je jediná kontrola, podporená kľúčom, ktorý môže a nemusí byť chránený PINom. PIN mení tie isté údaje na znalosť plus držbu len vtedy, keď kľúč nemožno bez neho použiť. Ponechanie kľúča nezašifrovaného na disku redukuje druhú časť na oprávnenie k súboru.

Výrobcovia zariadení si stavajú vlastné inštalatérstvo, často modul PAM alebo plugin RADIUS za webovou konzolou. Správanie komunity je referenciou pre to, ako dvojité kontroly vyzerajú, nie opisom toho, ako ich zariadenie kombinuje.

Skontrolujte kombináciu na svojej bráne

Prečítajte si konfiguráciu, skôr než uveríte súhrnu konzoly. Riadky, ktoré rozhodujú o politike, sú režim certifikátu, skript údajov a poradie pluginov.

grep -E 'verify-client-cert|auth-user-pass-verify|plugin' /etc/openvpn/server.conf
openssl x509 -in /etc/openvpn/pki/issued/client01.crt -noout -subject -serial
radtest alice 'wrong-password' 127.0.0.1 0 testing123

grep ukazuje, či je vyžadovaný certifikát a ktorý skript sa po ňom spustí, a poradie je dôležitejšie, než naznačujú názvy. Výpis certifikátu dáva identitu, ktorú brána uvidí, vrátane CN a sériového čísla potrebných pre mapu priradenia. Test RADIUS je negatívny prípad: nesprávne heslo musí dať Access-Reject a správne Access-Accept. Ak odmietnuté údaje stále dajú reláciu, skript vôbec nie je na autentifikačnej ceste.

Potom spustite prípad výpadku v laboratórnej inštancii: zastavte povinný backend a pripojte sa platnými údajmi. Očakávaným výsledkom je odmietnutie a čokoľvek iné je záložná politika, ktorú nikto nezdokumentoval.

Napíšte požiadavku ako negatívne prípady

Použiteľná požiadavka pomenúva dôkazy, účty, ktoré ich smú predložiť, a výsledok, keď overovateľ chýba. Uvádza aj povolené párovanie medzi identitou zariadenia a identitou osoby. To je presnejšie než názvy produktov v objednávke a dá sa to otestovať.

Prijatie by malo zahŕňať štyri odmietnutia: nevhodný miestny účet, chýbajúci povinný dôkaz, neplatný druhý faktor a nedostupný povinný backend. Každé odmietnutie potrebuje riadok v logu, ktorý ho odlíši od ostatných, inak ďalší incident začína hádaním. Zaznamenajte, ktorý komponent rozhodol, pretože brána, server RADIUS a adresár budú viniť jeden druhého.

Po každej zmene pluginu alebo firmvéru znova spustite štyri odmietnutia. Sú lacné a politika, ktorú chránia, je časť, ktorú útočník skúša prvú.

Súvisiace články