Konta ŝloso kontraŭ adresa malpermeso: kie OpenVPN vere kalkulas
Fontea malpermeso kaj konta ŝloso kalkulas malsamajn aĵojn. Trovu la konservejon, kiu posedas la kalkulilon de malsukcesoj, antaŭ ol elekti sojlon por PAM-bazita VPN.
Bloki adreson kaj ŝlosi konton estas du malsamaj mekanismoj, kaj ili malsukcesas en kontraŭaj direktoj. Adresa malpermeso haltigas unu fonton kaj lasas la celan konton atingebla de aliloke; konta ŝloso haltigas tiun identecon ĉie, ankaŭ sur la propra tekkomputilo de la legitima uzanto.
Por VPN, kiu delegas aŭtentikigon al PAM, la kalkulilo estas tio, kion atingas la PAM-stako, ne tio, kion registris la aŭskultanto.
Du kalkuliloj, du malsamaj viktimoj
Rapidlimigilo rigardas fonton kaj demandas, kiom da provoj lastatempe venis de ĝi. Ŝloso rigardas identecon kaj demandas, kiom da malsukcesoj la konto akumulis. La unua protektas disponeblecon, la dua la akreditaĵojn; nek anstataŭas la alian.
Tial la frazo ni blokas la IP post kvin malsukcesoj ne estas respondo al raporto pri plenigo de akreditaĵoj. La atakanto ŝanĝas fontojn, ĉiu ricevas malmultajn provojn, kaj la konto neniam estas kalkulita. Male, ŝloso sen fonta kontrolo permesas al la atakanto teni la konton ŝlosita senfine per intenca malsukceso.
La du kontroloj ankaŭ havas malsamajn historiojn de restarigo. Adresa malpermeso finiĝas per tempigilo, pri kiu neniu devas pensi; konta ŝloso povas postuli administranton, dokumentitan atendperiodon aŭ memservan restarigon.
Trovu la konservejon, kiu jam posedas la kalkulon
Antaŭ ol aldoni ion, eltrovu, ĉu konservejo de malsukcesoj jam ekzistas. Loka Linux-konto, adresara servo kaj ekstera identecla provizanto ĉiu tenas sian propran kalkulon, kaj PAM-modulo antaŭ ili kreas duan anstataŭ etendi la unuan.
grep -rnE 'faillock|pam_tally|pam_unix' /etc/pam.d/
ls -l /etc/pam.d/ | head -20
Legu la servan dosieron, kiun la VPN vere nomas, kaj sekvu ĝiajn inkludajn liniojn. En multaj distribuaĵoj la VPN-servo inkludas komunan dosieron, kio signifas, ke la kalkulo, kiun vi agordas, validas ankaŭ por SSH kaj lokaj ensalutoj.
Se la adresaro jam trudas ŝloson, la utila demando estas, kiel la PAM-konversacio atingas tiun decidon kaj kiel la VPN raportas ĝin. Loka kalkulo supre ne fariĝas la kalkulilo de la adresaro, kaj la du politikoj povas malkonsenti pri tio, kiam la konto malŝlosiĝas.
pam_faillock havas tri alvokajn poziciojn, ne unu
La modulo apartigas tri operaciojn, kiujn unu kopiita linio kutime malklarigas: kontroli, ĉu la konto jam estas ŝlosita, registri malsukceson, kaj viŝi la historion post sukceso.
Ĉi tie la migrado de pli malnova kalkulmodulo kutime eraras. Kopii linion el funkcianta ekzemplo de pam_tally2 en stakon de pam_faillock ne estas renomigo; la dokumentita agordo diferencas, kaj mise lokita alvoko povas registri malsukcesojn sen iam kontroli ilin.
faillock --user alice
faillock --user alice --reset
La inspektilo estas la plej rapida maniero vidi, ĉu la kalkulilo estas reala: ĝi montras la registritajn malsukcesojn de konto kaj povas viŝi ilin. Se kontrolita malsukceso ne ŝanĝas tiun eligon, la alvoka pozicio estas malĝusta.
Dediĉita servnomo ne estas izolado
Doni al la VPN propran PAM-servan dosieron videbligas la celatan politikon, sed ne limigas la efikon. Ĉiu inkludo de komuna dosiero altiras tion, kion tiu dosiero faras, inkluzive de kalkuloj por la tuta sistemo.
Decidu eksplicite, ĉu la ŝloso kovras nur VPN-aliron aŭ ĉiun servon, kiu aŭtentikigas la saman konton. Ambaŭ respondoj estas defendeblaj; la eraro estas kredi, ke vi elektis unu, dum la stako efektivigas la alian.
Poste konsideru la koston. Atakanto povas kaŭzi la ŝloson, kaj la uzanto, kiu suferas, estas la posedanto de la konto. Sojlo, atendperiodo kaj la administra restariga vojo estas parto de la politiko, kaj la restarigo ne devas dependi de reagordado de la VPN dum incidento.
Akceptu la sinsekvon, ne unu rifuzon
Testu per difinitaj identecoj laŭ aprobita plano, kaj testu ĉenon anstataŭ unu evento: valida konto aŭtentikiĝas, intence malĝusta pasvorto movas la kalkulilon, la agordita ŝloso ekvalidas, kaj la dokumentita restarigo redonas aliron.
faillock --user test-vpn-01
journalctl -u openvpn-server@lab -n 30 --no-pager | grep -i 'auth\|pam'
Rigardu la sukcesan konduton same atente kiel la malsukcesan. Se sukcesa ensaluto ne viŝas la historion, konto ŝlosiĝos post malrapida amasiĝo de ordinaraj eraroj. Se ĝi viŝas ĉion el ĉiu servo, la kalkulilo estas pli malforta ol la politiko asertas.
Fine haltigu neprizorgatajn klientojn antaŭ ol deklari venkon. Konservitaj akreditaĵoj, kiuj reklopodas en la fono, rekreas malsukcesojn minutojn post restarigo kaj ŝlosas la konton denove. Fontbazita rapidlimigo povas resti kiel plia kontrolo, sed ĝi ne estas la konta politiko.