L-awtentikazzjoni PAM taħdem bil-manwali iżda tfalli bħala servizz OpenVPN
Login PAM li jaħdem minn qoxra root u jfalli taħt systemd jindika lill-għajnuna, mhux il-password. Issepara privileġġi, aċċess għall-fajls u SELinux.
L-awtentikazzjoni permezz ta’ PAM tista’ tirnexxi meta tmexxi l-klijent bil-manwali u tfalli b’AUTH_FAILED malli systemd jibda l-istess profil. Il-password ma tinbidilx bejn dawn it-tħaddim; dak li jinbidel huwa s-sett ta’ restrizzjonijiet madwar il-proċess li jistaqsi lil PAM. PAM twieġeb permezz ta’ għajnuna li l-abbiltà tagħha li tbiddel il-kredenzjali tagħha stess hija eżattament dak li tneħħi unit imsaħħa. Sib dik l-għajnuna u l-limitu li għandha bżonn qabel ma tmiss lista ta’ kapaċitajiet.
unix_chkpwd huwa l-binariu li jwieġeb il-mistoqsija ta’ PAM
B’awtentikazzjoni tal-password lokali, pam_unix rarament jaqra l-fajl hash innifsu. Huwa jeżegwixxi unix_chkpwd, li d-distribuzzjonijiet jinstallawh bħala setuid root jew setgid shadow sabiex password waħda tkun tista’ tiġi vverifikata f’isem proċess li m’għandu xejn x’jaqsam ma’ qari ta’ /etc/shadow. Neħħi l-abbiltà li tinkiseb dik l-identità u l-għajnuna ma tistax tlesti l-verifika, għalhekk il-modulu jirritorna falliment sempliċi ta’ awtentikazzjoni.
Imbagħad il-falliment jidher bħala problema ta’ kredenzjali f’kull log li l-klijent jista’ jara. Dan huwa n-nassa: il-klijent jirrapporta dak li qaletlu PAM, u PAM tirrapporta biss li l-munzell qal le. It-tħaddim tal-għajnuna bil-manwali bħala root lanqas jipprova xejn, għax jeżerċita triq ta’ privileġġ li s-servizz qatt ma juża. Aqra l-unit li systemd fil-fatt illoda, imbagħad il-log tas-sistema għall-attentat li għamel. Dawn iż-żewġ veduti jifirdu problema ta’ sandbox minn problema ta’ password ħażina.
Aqra l-unit qabel ma taqra l-log tal-passwords
Unit ippakkjat jista’ jġorr drop-in li ma ktibtx, u l-konfigurazzjoni effettiva hija r-riżultat magħqud. Ipprintja l-unit kif jaraha systemd, flimkien mas-settings tas-sandbox li jiddeċiedu jekk l-għajnuna tistax tgħolli lilha nnifisha. L-ispezzjoni biss tal-qari hija biżżejjed f’dan l-istadju.
systemctl cat [email protected]
systemctl show [email protected] -p User -p Group -p CapabilityBoundingSet -p AmbientCapabilities -p NoNewPrivileges
journalctl -u [email protected] -b
L-ewwel kmand juri minn fejn ġejjin l-unit u d-drop-in tiegħu, li jimporta għax override miżjud xhur ilu jgħix itwal mill-memorja ta’ għaliex jeżisti. It-tieni jipprintja l-valuri tas-sandbox li jiddependu fuqhom is-sezzjonijiet li jmiss.
Qabbel dak li tara ma’ host li jaħdem tal-istess distribuzzjoni u verżjoni. Differenza f’User, CapabilityBoundingSet jew NoNewPrivileges hija ħjiel konkret; differenza fil-kummenti tal-proża mhijiex. Ikteb il-valuri qabel ma tbiddel xejn, għax paragun aktar tard ma’ mira li tiċċaqlaq ma jipprova xejn. Jekk is-servizz jaħdem bħala kont mhux privileġġjat b’sett bounding vojt, l-għajnuna għandha kważi xejn x’taħdem bih.
Trasformazzjoni tal-kredenzjali, aċċess għall-fajls u politika huma tliet limiti
Ibda b’dak li jiġri waqt exec. Binariu setuid jew fajl li jġorr kapaċitajiet tal-fajl iqanqal trasformazzjoni tal-kredenzjali, għalhekk l-identità li tirriżulta mhijiex kontinwazzjoni tas-sejjieħ. Is-sett bounding jillimita dak li jista’ jakkwista fajl bħal dan, u NoNewPrivileges jimblokka għal kollox l-akkwist ta’ setuid, setgid u kapaċitajiet tal-fajl. Kwalunkwe waħda mit-tlieta tista’ twaqqaf l-għajnuna filwaqt li kull funzjoni oħra tas-servizz tibqa’ intatta.
Wara dan, issepara l-bypass diskrezzjonali wiesa’ mill-aċċess dojoq għall-qari. CAP_DAC_OVERRIDE jaqbeż il-verifiki diskrezzjonali kważi kullimkien, filwaqt li CAP_DAC_READ_SEARCH ikopri l-qari u t-traversata tad-direttorji bil-poteri addizzjonali tiegħu stess. Huma għodod differenti b’raġġi ta’ impatt differenti, u l-ebda wieħed mhu ortografija ta’ ħalli PAM jaqra l-fajl shadow.
Fl-aħħar, staqsi jekk il-politika obbligatorja tippermettix l-azzjoni xejn. Kapaċità Linux ma tħassarx SELinux, u li jkollok waħda ma tipprova xejn dwar regola ta’ type enforcement. Ittratta rifjut ta’ aċċess għall-fajl u rifjut ta’ kapaċità bħala provi differenti, għax isemmu tiswijiet differenti u spiss sidien differenti. Aqra kull qasam tar-rekord minflok il-kelma denied waħedha. Liema esegwibbli għamel l-azzjoni, f’liema dominju mexa, x’tip ta’ mira mess, liema klassi ta’ oġġett kienet involuta u liema permess irrifjutat il-politika — kull wieħed idawwar it-tweġiba b’mod differenti.
Oħroġ ir-rifjut mill-log tal-awditjar
Fuq host li jinfurza, it-traċċa tal-awditjar hija l-uniku post li jirreġistra rifjut. Staqsi għall-avvenimenti riċenti u aqrahom kontra t-timbru tal-ħin tal-login fallut, mhux kontra l-ħin li bdejt tinvestiga.
ausearch -m AVC,USER_AVC -ts recent
Riżultat vojt mhuwiex prova ta’ innoċenza. Ifisser jew li l-awditjar mhux qed jiġbor, jew li t-tieqa tiegħek tilfet l-attentat, u ż-żewġ possibbiltajiet iridu jiġu esklużi qabel ma teskludi l-politika.
Il-gwida tal-awditjar ta’ SELinux ta’ Red Hat tqiegħed il-verifiki tal-tikketta u tal-konfigurazzjoni qabel il-ġenerazzjoni tar-regoli allow, li hija wkoll l-ordni t-tajba għal din il-problema. Binariu tal-għajnuna b’tikketta ħażina u vojt fil-politika jipproduċu rifjuti simili iżda jeħtieġu tiswijiet differenti. Il-ġenerazzjoni ta’ regola allow għal żball fit-tikkettar taħbi d-difett u tħalli l-aġġornament tal-pakkett li jmiss jerġa’ jdaħħalha. Ikkonferma t-tikketta fuq l-għajnuna installata qabel ma tikteb xi politika.
Ipprova l-bidla b’login wieħed aċċettat u ieħor miċħud
Ibdel biss il-limitu li wrejt, imbagħad iċċekkja ż-żewġ riżultati. Kont li għandu jiġi awtentikat irid jirnexxi, u kont bi password ħażina xorta għandu jfalli. Bidla li tagħmel kull attentat jirnexxi neħħiet l-awtentikazzjoni minflok ma sewwietha.
Agħmel attentat ta’ konnessjoni reali u aqra l-ġurnal mill-ewwel wara. Il-linja li tipprova t-tiswija hija l-entrata pam_unix(openvpn:auth) għal dak l-attentat: għandha tgħid awtentikazzjoni rnexxiet, u l-ebda rekord AVC m’għandu jġorr l-istess sekonda.
journalctl -u [email protected] -n 30 --no-pager
ss -tnp | grep openvpn
Tunnel li jaħdem jeħtieġ ukoll rikonnessjoni, għax il-bidliet tas-sandbox ikissru t-tieni konnessjoni aktar spiss mill-ewwel waħda. Iċċekkja s-socket stabbilit wara r-rikonnessjoni u kkonferma li l-istess unit għadha qed isserviha.