Omejite prijave v OpenVPN na eno skupino s politiko PAM
Namenska storitev PAM lahko spusti samo člane skupine VPN, ne da bi se dotaknila sistemskih pravil prijave. Usmerite vtičnik auth-pam nanjo in preizkusite rezultate.
Vsakemu računu omogočite običajno prijavo, vendar dovolite uporabo VPN samo eni skupini. PAM lahko to razliko izrazi brez drugega skladišča gesel, vtičnik OpenVPN pa je mogoče usmeriti na storitev, ki vsebuje samo želene preverbe. Trik je v tem, da to storitev zgradite, ne da bi po nesreči podedovali sistemski sklad.
Tukajšnji sprehod se začne pri imenu storitve vtičnika, zgradi politiko in nato preizkusi tri rezultate, ki so pomembni: člana, zunanjega z veljavnim geslom in slabe poverilnice.
Zakaj ločena storitev PAM
Vtičnik auth-pam kot argument sprejme ime storitve. To ime izbere datoteko pod /etc/pam.d, in sklad v tej datoteki je tisto, kar teče med prijavo v VPN. Če podate isto ime, kot ga uporablja sistemska prijava, podedujete vsako odločitev v tem skladu, vključno s tistimi, ki so bile dodane pozneje iz nepovezanih razlogov.
Namesto tega ustvarite namensko storitev. Začnite z delujočim skladom, ki se že overja pri predvidenem backendu, na primer lokalna datoteka z gesli, SSSD ali imeniška storitev, nato dodajte pravilo o upravičenosti. Kopiranje dveh vrstic v prazno datoteko je pogosta napaka: potek gesla, zaklep računa in druge preverbe so lahko v skladu, ki ga niste kopirali.
Ločevanje storitve omeji tudi obseg škode. Pravilo samo za VPN v skupnem skladu lahko vsem zavrne dostop prek SSH ali konzole, kar spremembo dostopa spremeni v izpad.
Pisanje pravila skupine
Preverba upravičenosti sodi v fazo računa, potem ko so poverilnice preverjene. Pravilo, kot je account required pam_succeed_if.so user ingroup vpnusers, dovoli nadaljnjo obdelavo le, kadar je overjeni uporabnik član te skupine.
Ta vrstica je drobec, ne popolna storitev. Vključite jo tja, kamor pride vsaka sprejeta pot, in preverite krmilne zastavice okoli nje. Krmiljenje sufficient ali skok prej v skladu lahko konča obdelavo, preden se vaše pravilo zažene, kar omejitev spremeni v predlog.
Ne dodajajte use_uid iz navade. Brez tega modul oceni uporabnika, ki se overja; z njim modul oceni račun, pod katerim teče proces OpenVPN, kar je običajno root ali servisni račun in torej ni oseba, ki se prijavlja.
Članstvo v skupini izhaja iz razreševanja identitete sistema, ne iz imena, ki ga poznate. Za uporabnike imenika potrdite, da isti backend odgovarja na skupinske poizvedbe za tega uporabnika, ker je lokalna skupina z znanim imenom drug objekt kot imeniška skupina z istim imenom.
Pasti vrstnega reda in identitete
Pravilo skupine postavite za skladom za overjanje in za vsako preverbo, ki mora še vedno veljati, a pred preverbami računa, ki jih ohranjate, ali ob njih. PAM ocenjuje module v vrstnem redu datoteke, krmilna vrednost v vsaki vrstici pa odloči, ali je napaka dokončna.
Pazite na podvojene sklade. Pogost vzorec je include, ki že vsebuje pravilo računa, čemur sledi vaše lastno pravilo skupine, kar ustvari dve odločitvi tam, kjer ste pričakovali eno. Preberite vključeno datoteko, ne le tiste, ki ste jo uredili. Hiter način, da vidite dejanski vrstni red, je branje datoteke od zgoraj navzdol in zapisovanje vsake krmilne vrednosti.
Ohranite druge zahteve za sprejem nedotaknjene. Uspešno geslo ne nadomesti preverb potrdila, drugega dejavnika ali avtorizacije po povezavi, in ta politika ni nadomestilo za nobeno od njih. Odloča le, ali je račun upravičen do obravnave za dostop VPN.
Preizkušanje članov, zunanjih in napačnih gesel
Preden politiko štejete za končano, preizkusite tri primere. Član se uspešno poveže. Veljaven račun zunaj skupine overi svoje geslo, vendar mu je dostop VPN zavrnjen. Napačno geslo za kateri koli račun se zavrne v fazi overjanja, ne s pravilom skupine.
Oglejte si napako, vidno odjemalcu, in dnevnik strežnika skupaj, ker sta lahko oba neuspeha za osebo, ki se povezuje, videti podobna. Razlika je pomembna za podporo: zunanji s pravilnim geslom potrebuje spremembo skupine, medtem ko napačno geslo zahteva ponastavitev poverilnic.
Med urejanjem PAM imejte odprto drugo sejo in po spremembi preverite tudi običajno prijavo SSH. Smisel namenske storitve je, da sistemska prijava ostane nedotaknjena, in edini način, da to veste, je preizkus.
Če se kaj zlomi, obnovite prejšnjo datoteko storitve iz kopije. Pravilo, ki ga želite, je preprosto povedati: članstvo naredi račun upravičen do dostopa VPN in vse druge zahtevane preverbe še vedno veljajo.