Hald kvar konto i stand til å logge inn normalt, men lat berre éi gruppe bruke VPN. PAM kan uttrykke den skilnaden utan eit ekstra passordlager, og OpenVPN-pluginen kan peikast på ei teneste som berre inneheld kontrollane du har til hensikt. Kunsten er å byggje den tenesta utan å arve ein systemomfattande stabel ved eit uhell.

Gjennomgangen her startar ved tenestenamnet til pluginen, byggjer ein policy og testar deretter dei tre utfalla som betyr noko: eit medlem, ein utanforståande med gyldig passord og ein dårleg innloggingsdetalj.

Kvifor ei eiga PAM-teneste

auth-pam-pluginen tek eit tenestenamn som argument. Det namnet vel ei fil under /etc/pam.d, og stabelen i den fila er det som køyrer under ei VPN-innlogging. Gir du det same namnet som ei systemomfattande innlogging brukar, arvar du kvar avgjerd i den stabelen, inkludert dei som vart lagde til seinare av urelaterte grunnar.

Opprett ei dedikert teneste i staden. Start frå ein fungerande stabel som allereie autentiserer mot det tiltenkte backendet, som ei lokal passordfil, SSSD eller ei katalogteneste, og legg deretter til kvalifikasjonsregelen. Å kopiere to linjer inn i ei tom fil er den vanlege feilen: passordutløp, kontolåsing og andre kontrollar kan liggje i stabelen du ikkje kopierte.

Å skilje tenesta avgrensar også omfanget av skaden. Ein VPN-berre regel i ein delt stabel kan nekte SSH- eller konsolltilgang for alle, noko som gjer ei tilgangsendring til eit avbrot.

Skrive grupperegelen

Kvalifikasjonskontrollen høyrer til i konto-fasen, etter at innloggingsdetaljane er stadfesta. Ein regel som account required pam_succeed_if.so user ingroup vpnusers lèt handsaminga halde fram berre når den autentiserte brukaren er medlem av den gruppa.

Den linja er eit brotstykke, ikkje ei fullstendig teneste. Integrer henne der kvar godteken veg når henne, og kontroller kontrollflaggene rundt henne. Ein sufficient- eller hoppkontroll tidlegare i stabelen kan avslutte handsaminga før regelen din køyrer, noko som gjer avgrensinga til eit framlegg.

Legg ikkje til use_uid av vane. Utan han vurderer modulen brukaren som vert autentisert; med han vurderer modulen kontoen som OpenVPN-prosessen køyrer under, som vanlegvis er root eller ein tenestekonto og difor ikkje personen som loggar inn.

Gruppemedlemskap kjem frå identitetsoppslaget i systemet, ikkje frå eit namn du kjenner att. For katalogbrukarar, stadfest at det same backendet svarar på gruppespurnader for den brukaren, fordi ei lokal gruppe med eit kjent namn er eit anna objekt enn kataloggruppa med same namn.

Feller i rekkjefølgje og identitet

Plasser grupperegelen etter autentiseringsstabelen og etter kvar kontroll som framleis må gjelde, men før eller ved sida av kontokontrollane du held på. PAM vurderer modular i filrekkjefølgje, og kontrollverdien på kvar linje avgjer om ein feil er endeleg.

Sjå opp for doble stablar. Eit vanleg mønster er ein include som allereie inneheld ein kontoregel, etterfølgt av din eigen grupperegel, noko som gjev to avgjerder der du venta éi. Les den inkluderte fila, ikkje berre den du redigerte. Ein rask måte å sjå den effektive rekkjefølgja på er å lese fila frå toppen og ned og notere kvar kontrollverdi.

Hald dei andre opptakskrava intakte. Eit vellukka passord erstattar ikkje sertifikatkontrollar, ein andre faktor eller autorisasjon etter tilkopling, og denne policyen er ikkje ei erstatning for nokon av dei. Han avgjer berre om kontoen er kvalifisert til å verte vurdert for VPN-tilgang.

Teste medlemmer, utanforståande og feil passord

Test tre tilfelle før du reknar policyen som ferdig. Eit medlem koplar til. Ein gyldig konto utanfor gruppa autentiserer passordet sitt, men vert nekta VPN-tilgang. Eit feil passord for ein av kontoane vert avvist i autentiseringsfasen, ikkje av grupperegelen.

Sjå den klient-synlege feilen og serverloggen saman, fordi begge feila kan sjå like ut for personen som koplar til. Skilnaden er viktig for støtte: ein utanforståande med rett passord treng ei gruppeendring, medan eit feil passord krev tilbakestilling av innloggingsdetaljane.

Hald ein andre sesjon open medan du redigerer PAM, og stadfest også vanleg SSH-innlogging etter endringa. Poenget med den dedikerte tenesta er at systeminnlogginga skal vere upåverka, og den einaste måten å vite det på er å teste det.

Om noko går i stykker, gjenopprett den førre tenestefila frå ein kopi. Regelen du vil ha er enkel å formulere: medlemskap gjer ein konto kvalifisert for VPN-tilgang, og alle andre påkravde kontrollar gjeld framleis.

Relaterte artiklar