Lasu ĉiun konton povi ensaluti normale, sed permesu nur al unu grupo uzi la VPN. PAM povas esprimi tiun diferencon sen dua pasvorta konservejo, kaj la kromprogramo OpenVPN povas esti direktita al servo, kiu enhavas nur la kontrolojn, kiujn vi celas. La artifiko estas konstrui tiun servon sen hazarde heredi sisteman stakon.

Ĉi tiu trairo komenciĝas de la serva nomo de la kromprogramo, konstruas politikon kaj poste testas la tri rezultojn, kiuj gravas: membro, eksterulo kun valida pasvorto kaj malbona legitimilo.

Kial aparta PAM-servo

La kromprogramo auth-pam prenas servan nomon kiel sian argumenton. Tiu nomo elektas dosieron sub /etc/pam.d, kaj la stako en tiu dosiero estas tio, kio ruliĝas dum VPN-ensaluto. Se vi pasigas la saman nomon, kiun uzas sistema ensaluto, vi heredas ĉiun decidon en tiu stako, inkluzive de tiuj aldonitaj poste pro nerilataj kialoj.

Kreu anstataŭe dediĉitan servon. Komencu de funkcianta stako, kiu jam aŭtentikigas kontraŭ la celita backend, ekzemple loka pasvorta dosiero, SSSD aŭ adresara servo, kaj poste aldonu la taŭgec-regulon. Kopii du liniojn en malplenan dosieron estas la ofta eraro: pasvorta eksvalidiĝo, konta ŝlosado kaj aliaj kontroloj povas loĝi en la stako, kiun vi ne kopiis.

Apartigi la servon ankaŭ limigas la difekton. Regulo nur por VPN en komuna stako povas malpermesi SSH aŭ konzolan aliron por ĉiuj, kio transformas alirŝanĝon en interrompon.

Skribi la grupan regulon

La taŭgec-kontrolo apartenas al la konto-fazo, post kiam la legitimilo estas kontrolita. Regulo kiel account required pam_succeed_if.so user ingroup vpnusers permesas daŭrigi la prilaboradon nur kiam la aŭtentikigita uzanto estas membro de tiu grupo.

Tiu linio estas fragmento, ne kompleta servo. Integru ĝin tie, kie ĉiu akceptita vojo atingas ĝin, kaj kontrolu la stir-flagojn ĉirkaŭ ĝi. sufficient aŭ salta stirado pli frue en la stako povas fini la prilaboradon antaŭ ol via regulo ruliĝas, kio transformas la limigon en sugeston.

Ne aldonu use_uid pro kutimo. Sen ĝi la modulo taksas la uzanton, kiu estas aŭtentikigata; kun ĝi la modulo taksas la konton, sub kiu la OpenVPN-procezo ruliĝas, kiu estas normale root aŭ serva konto kaj do ne la persono, kiu ensalutas.

Grup-membreco venas de la identec-resolvo de la sistemo, ne de nomo, kiun vi rekonas. Por adresaraj uzantoj, konfirmu, ke la sama backend respondas grup-demandojn por tiu uzanto, ĉar loka grupo kun konata nomo estas alia objekto ol la adresara grupo kun la sama nomo.

Kaptiloj de ordo kaj identeco

Metu la grupan regulon post la aŭtentikiga stako kaj post ĉiu kontrolo, kiu devas ankoraŭ validi, sed antaŭ aŭ apud la kontkontroloj, kiujn vi konservas. PAM taksas modulojn laŭ dosiera ordo, kaj la stira valoro en ĉiu linio decidas, ĉu malsukceso estas fina.

Atentu duobligitajn stakojn. Ofta ŝablono estas inkludo, kiu jam enhavas kontregulon, sekvata de via propra grupa regulo, kio produktas du decidojn tie, kie vi atendis unu. Legu la inkluditan dosieron, ne nur la redaktitan. Rapida maniero vidi la efektivan ordon estas legi la dosieron de supre malsupren kaj noti ĉiun stiran valoron.

Konservu la aliajn akcept-postulojn sendifektaj. Sukcesa pasvorto ne anstataŭas atestil-kontrolojn, duan faktoron aŭ rajtigon post konekto, kaj ĉi tiu politiko ne anstataŭas iun el ili. Ĝi nur decidas, ĉu la konto estas taŭga por esti konsiderata por VPN-aliro.

Testi membrojn, eksterulojn kaj malĝustajn pasvortojn

Testu tri kazojn antaŭ ol konsideri la politikon finita. Membro konektiĝas sukcese. Valida konto ekster la grupo aŭtentikigas sian pasvorton sed estas rifuzata al VPN-aliro. Malĝusta pasvorto por iu ajn el la kontoj estas rifuzata en la aŭtentikiga fazo, ne de la grupa regulo.

Rigardu la klient-videblan eraron kaj la servilan protokolon kune, ĉar ambaŭ malsukcesoj povas aspekti similaj al la persono, kiu konektiĝas. La distingo gravas por subteno: eksterulo kun ĝusta pasvorto bezonas grupan ŝanĝon, dum malĝusta pasvorto bezonas restarigon de legitimilo.

Tenu duan seancon malfermita dum vi redaktas PAM, kaj kontrolu ankaŭ ordinaran SSH-ensaluton post la ŝanĝo. La senco de la dediĉita servo estas, ke sistema ensaluto restu neinfluita, kaj la sola maniero scii tion estas testi ĝin.

Se io rompiĝas, restarigu la antaŭan servan dosieron el kopio. La regulo, kiun vi volas, estas simpla eldiri: membreco igas konton taŭga por VPN-aliro, kaj ĉiu alia postulata kontrolo ankoraŭ validas.

Rilataj artikoloj