Run as Different AD User?

Sziasztok,

Ennek a posztnak nem problémamegoldás a célja,
csupán szeretném megérteni hogy Linuxon ez általában hogyan működik (és így kellene-e jól működnie ahogy nálunk megy).

Adottak RedHat VM-ek, [nagyon]nagyvállalati környezetben, amiben én csak end-user vagyok.
A gépekhez a CyberARK megoldásnál keresztül, lényegében egy jumpserver ahol egy generált account-ot kapok a session-ben.
Technikai userek hozzéférését kezelése egy külön fejlesztett rendszeren keresztül lehet rendelni, ezek képesek jumpserver nélkül is SSH session-t nyitni,
viszont sudo nem érhető el a számukra.

Systemd service-t szeretnék egy AD user nevében futtatni, igényeltem neki hozzáférést, futik is.

Jelszót nem kért és itt kezdtem el gondolkodni hogy ez technikailag hogyan lehet megoldva?
SU-val kontextust tudok váltani a technikai userre, de érdekes módon működik olyan userre is, amire biztosan nem kértem hozzáférést.

Hogyan működik az impersonation AD userekkel Linuxon általában?
Miért enged user context-et váltani jelszó nélkül? (mi történik ilyenkor a motorháztető alatt?)

(/etc/passwd-ben nincsenek userek, realm csomag nincs telepítve, nem tudom hogyan megy az AD integráció)
 

Hozzászólások

Ha su/sudo van, akkor ugyanúgy kell jelszót ellenőrizni, úgyhogy az AD-t megkérdezi az sssd (hacsak nincs a cache-ben credential, ekkor csak a jelszó módosításának az idejét próbálja meg lekérni, ha minden igaz), ha a sudoers-ben nopasswd van, akkor a sudo nem fog jelszóellenőrzést csináltatni.  A service/unit az uid=0 -> uid=tetszőleges átmenetet csinál, úgyhogy ott nincs auth.

Szerkesztve: 2024. 01. 31., sze – 19:13

Szia,

a CA-nak tobb funkcioja is letezik. A kepernyofelveteltol a jelszo szefekig.. A CA helyes telepites eseten Windows es Linux oldalon is egy nagyjabol virtualis proxy-n keresztul auth-ol a target gepekre. Nagyvallalati kornyzetben kb van egy felhasznalod, amely arra van feljogositva, hogy belepj a DESKTOP-ra majd ezzel ki tudod olvasni  szerver oldali masik felhasznalo a jelszavat, be tudjal lepni vele anelkul, hogy tudnad a felhasznalo jelszavat szerver oldalra. Beallitott szabalyok szerint idokozonkent a jelszavak lecserelodnek.

Az adott gépen az authentikációt mi és  min keresztül csinálja? Mert halovány különbségek azért lehetnek a samba/sssd/pbis/satöbbi használatánál abban, hogy a sudoers-ben mit és hogyan, illetve a pam oldalon is vannak taposóaknák itt-ott... (pl. lokális usernek a jelszócseréje nem működik bizonyos konstellációban)

Az sssd jó  dolog, volt, ahol FreeIPA (kerberos), volt, ahol  sima, mezei AD volt mögötte, és (ha csak nem ment tele a /var fájlrendszer...), akkor teljesen jól működött/működik. (Ha a /var tele van, akkor nem megy csak olyan userrel (vagy olyannal se...) a login, akinek még a credential cache-ben ott van az adata, úgyhogy AD/IPA backend esetére mindenképp javasolt (erősen...) egy lokális, borítékos jelszavas user...

Akár sssd, akár pbis, a sudoers simán megeszi az "%adgroup" -ot,mint csoportot. Ha az sssd.conf-ban use_fully_qualified_names = False, akkor a login és a sudoers is csak a usernevet igényli @domain nélkül, ha True, akkor mindkét esetben ad_usernev@domain forma kell.

Szerkesztve: 2024. 01. 31., sze – 22:46

"Systemd service-t szeretnék egy AD user nevében futtatni" - A nevében futtatni (ez a unit-ban megadható), vagy systemctl start/stop/restart service parancsot kiadni? Ez utóbbi sudoers pimpeléssel megy. 

A systemd - kerberos "párosítást" még nem néztem, de alapesetben nincs service-hez rendelt ticket. A szolgáltatás nem "virtuális lokális userrel" fut, hanem azzal az UID-del, amit az adott AD-s userhez hozzárendelt az sssd. És mivel a service indulása során "csak" egy UID=0 -> UID=ad-s_user_uid-je váltás történik, ez a DC-n nem fog megjelenni, mint user tevékenység/login.

Az AD -ba fel lehet venni a user publikus SSH kulcsat. Bejelentkezeskor ha be van toltve pl. a Putty Agent -be a privat kulcs, akkor az sshd es az sssd kooperaciojakent az sssd letolti az AD -bol (sima LDAP-on keresztul) a publikus kulcsot, amit utana az sshd ellenoriz a szokott modon, vagyis nincs jelszo begepeles.

Ha a user AD csoportja szerepel a sudoers -ben, akkor az ott levo parancsokat (vagy barmit ha *) ujabb auth nelkul le tudja futtatni, peldaul at tud alakulni mas felhasznalova.

Nem ismerem sem az infratokat, sem a CyberArk -ot, de ha ez utobbi general kulcsokat, aminek a publikus reszet felnyomja az AD-ba, a privatot pedig betolti a sessionhoz tartozo agentbe, akkor ezzel szamodra transzparensen megoldja a (kulcsos) autentikaciot es elkeruli a tovabbi interaktiv, begepelos authentikaciokat.

De ez csak egy tipp, nem ismerem a CyberArkot, ez csak az a modszer, amit en csinalnek a helyeben. :-)