Kvifor nosuid hindrar ein VPN-hjelpar i å bli root
Ei kryptert heimemappe og eit nosuid-monter er ulike eigenskapar. Hjelparen treng ein tiltru installasjonssti og ein oppstartskontekst som respekterer privilegiebiten.
Diskkryptering og eit nosuid-monter høyrest ut som variantar av same idé, og dei har ingenting med kvarandre å gjere. Det eine vernar data i ro, og det andre avgjer om kjernen vil respektere ein privilegiebit i det augneblinken eit program startar. Ein hjelpar som ikkje når identiteten han ventar, klagar over det andre. Føresetnaden om at det første er ansvarleg, får folk til å installere på nytt klientar som aldri var øydelagde.
To Uavhengige Eigenskapar
Diskkryptering svarar på kven som kan lese blokkene når maskina er avslått. Eit monteringsval svarar på kva kjernen vil gjere med modusbitane til ei fil når nokon køyrer ho. Ingenting ved det første avgrensar det andre, og ei fullt kryptert berebar maskin kan montere eit filsystem med alle avgrensingar på plass.
Å lese dei som éin eigenskap er det som skapar teorien om at ei kryptert heimemappe hindrar root-tilgang. Den teorien overlever fordi dei to symptoma dukkar opp på same maskina, ikkje fordi dei deler ei årsak.
Kva Som Eigentleg Undertrykkjer Overgangen
execve-referansen skildrar korleis ei køyrbar fil med set-user-ID endrar den effektive identiteten til den nye prosessen til eigaren av fila. Same sida listar vilkåra som undertrykkjer den overgangen, og det tilsvarande for gruppe-ID-ar: ei no_new_privs-innstilling, eit filsystem montert med nosuid og ein prosess som blir spora. Filkapabilitetar blir ignorerte under dei same vilkåra. Desse fire reglane dekkjer nesten kvar rapport av denne typen.
Den lista forklarer kvifor modusen som ls skriv ut, aldri er heile autorisasjonshistoria. Ho fortel deg ikkje kven vilkår som førte til ei bestemd feilmelding, og programmet kan rapportere ein urelatert legitimasjonsoperasjon med same ordlyd. Noter det nøyaktige programmet, startprogrammet og feilrekkjefølgja før du dreg ein konklusjon.
Identifiser den køyrbare fila som den støtta pakken installerte, eigaren, den verkelege stien og policyen til filsystemet som inneheld ho. Ei kopi i ei nedlastingsmappe er ikkje den installerte hjelparen, uansett kva modusen seier.
Kva Ein Ikkje Bør Gjere
Å setje set-user-ID-bitar på ei uverifisert binærfil og flytte ho rundt til avgrensinga forsvinn, er inga reparasjon. Det byter ut ein policy du ikkje forstod, med eit privilegium du ikkje kan revidere, og same teknikken brukt på ein hjelpar er ein velkjend eskaleringsveg. Å fjerne nosuid frå eit monter er verre, fordi det påverkar kvart program på det filsystemet, ikkje berre eitt.
Den støtta vegen er klienten sin dokumenterte installasjon av hjelparen eller tenesta, utført av ein administrator, som plasserer binærfilen der policyen ventar han. Det held éin privilegiemekanisme i staden for to.
Stadfest Den Verkelege Oppstartskonteksten
Etter ei autorisert retting, køyr hjelparen slik produktet køyrer han, og ikkje frå eit root-skal. Suksess som root beviser ingenting om vegen ein vanleg brukar tek, og skilnaden mellom desse to kontekstane er nettopp det feilen handla om.
Stadfest deretter nettverksoperasjonen som hjelparen finst for. Ein hjelpar som startar, men ikkje kan konfigurere grensesnittet, har flytta problemet eitt steg vidare, ikkje løyst det.
findmnt -no TARGET,OPTIONS /home
getcap /usr/libexec/openvpn-helper 2>/dev/null; ls -l /usr/libexec/openvpn-helper
Noter monteringsvala og eigarskapen til hjelparen i same notatet. Elles vil neste person som feilsøkjer dette, gjenta krypteringsteorien frå byrjinga.