Nechajte každý účet prihlásiť sa normálne, ale dovoľte VPN používať len jednej skupine. PAM dokáže vyjadriť tento rozdiel bez druhej zásoby hesiel a plugin OpenVPN možno nasmerovať na službu, ktorá obsahuje len kontroly, ktoré zamýšľate. Trik je postaviť túto službu bez toho, aby ste omylom zdedili systémový stack.

Tento návod začína pri názve služby pluginu, zostaví politiku a potom otestuje tri výsledky, na ktorých záleží: člena, cudzinca s platným heslom a zlé prihlasovacie údaje.

Prečo samostatná služba PAM

Plugin auth-pam berie ako argument názov služby. Ten názov vyberá súbor v /etc/pam.d a stack v tomto súbore je to, čo sa spúšťa pri prihlásení cez VPN. Ak zadáte rovnaký názov, aký používa systémové prihlásenie, zdedíte každé rozhodnutie v tomto stacku vrátane tých, ktoré boli pridané neskôr z nesúvisiacich dôvodov.

Namiesto toho vytvorte vyhradenú službu. Začnite funkčným stackom, ktorý už autentizuje voči zamýšľanému backendu, napríklad lokálnemu súboru hesiel, SSSD alebo adresárovej službe, a potom pridajte pravidlo oprávnenosti. Kopírovanie dvoch riadkov do prázdneho súboru je častá chyba: platnosť hesla, uzamknutie účtu a ďalšie kontroly môžu byť v stacku, ktorý ste nekopírovali.

Oddelenie služby tiež obmedzuje rozsah škôd. Pravidlo len pre VPN v zdieľanom stacku môže všetkým odmietnuť prístup cez SSH alebo konzolu, čo zmení zmenu prístupu na výpadok.

Písanie pravidla skupiny

Kontrola oprávnenosti patrí do fázy účtu, po overení prihlasovacích údajov. Pravidlo ako account required pam_succeed_if.so user ingroup vpnusers dovolí pokračovať v spracovaní len vtedy, keď je overený používateľ členom tejto skupiny.

Tento riadok je fragment, nie úplná služba. Vložte ho tam, kam sa dostane každá prijatá cesta, a skontrolujte riadiace príznaky okolo neho. Riadenie sufficient alebo skok skôr v stacku môže ukončiť spracovanie skôr, než sa vaše pravidlo spustí, čo obmedzenie zmení na odporúčanie.

Nepridávajte use_uid zo zvyku. Bez neho modul hodnotí používateľa, ktorý sa autentizuje; s ním modul hodnotí účet, pod ktorým beží proces OpenVPN, čo je zvyčajne root alebo servisný účet, a teda nie osoba, ktorá sa prihlasuje.

Členstvo v skupine pochádza z rozlíšenia identity systému, nie z názvu, ktorý poznáte. Pri používateľoch adresára overte, že ten istý backend odpovedá na skupinové dopyty pre tohto používateľa, pretože lokálna skupina so známym názvom je iný objekt ako adresárová skupina s rovnakým názvom.

Pasce poradia a identity

Umiestnite pravidlo skupiny za autentizačný stack a za každú kontrolu, ktorá musí stále platiť, ale pred kontroly účtu, ktoré si ponechávate, alebo vedľa nich. PAM hodnotí moduly v poradí súboru a riadiaca hodnota v každom riadku rozhoduje, či je zlyhanie konečné.

Pozor na zdvojené stacky. Častý vzor je include, ktorý už obsahuje pravidlo účtu, za ním vaše vlastné pravidlo skupiny, čo vytvorí dve rozhodnutia tam, kde ste čakali jedno. Čítajte vložený súbor, nielen ten, ktorý ste upravili. Rýchly spôsob, ako vidieť efektívne poradie, je čítať súbor zhora nadol a poznamenať si každú riadiacu hodnotu.

Zachovajte ostatné požiadavky na prijatie nedotknuté. Úspešné heslo nenahrádza kontroly certifikátu, druhý faktor ani autorizáciu po pripojení a táto politika nie je náhradou za žiadnu z nich. Rozhoduje len o tom, či je účet spôsobilý byť zvažovaný pre prístup k VPN.

Testovanie členov, cudzincov a nesprávnych hesiel

Pred dokončením politiky otestujte tri prípady. Člen sa úspešne pripojí. Platný účet mimo skupiny autentizuje svoje heslo, ale prístup k VPN je mu odopretý. Nesprávne heslo pre ktorýkoľvek účet je odmietnuté vo fáze autentizácie, nie pravidlom skupiny.

Sledujte chybu viditeľnú klientom a serverový log spolu, pretože obe zlyhania môžu pripadať pripájajúcemu sa človeku podobné. Rozdiel je dôležitý pre podporu: cudzinec so správnym heslom potrebuje zmenu skupiny, zatiaľ čo nesprávne heslo vyžaduje reset prihlasovacích údajov.

Ponechajte počas úprav PAM otvorenú druhú reláciu a po zmene overte aj bežné prihlásenie cez SSH. Zmyslom vyhradenej služby je, že systémové prihlásenie má zostať nedotknuté, a jediný spôsob, ako to zistiť, je otestovať to.

Ak sa niečo pokazí, obnovte predchádzajúci súbor služby z kópie. Pravidlo, ktoré chcete, je jednoduché vysloviť: členstvo robí účet spôsobilým na prístup k VPN a každá ďalšia povinná kontrola stále platí.

Súvisiace články