CentOS, Samba i prava AD korisnika

Dakle, ukratko, u firmi imam CentOS 5.3 server, koji (izmedju ostalog) hosta File Server preko Sambe. Sam server dio je Active Directory “ekosistema” sto izmedju ostalog, znaci i da su AD korisnici istovremeno i lokalni korisnici (tj winbind pridruzi server domeni, PAM podrzava AD login itd.).

Zelim JEDNOM od njih omoguciti SFTP pristup.

Defaultno, AD korisnici imaju shell postavljen na /bin/false, tako da se efektivno ne mogu logirati u Linux box, nego samo mogu preko Windows file sharinga, sukladno postavljenim korisnickim pravima (NT ACL mapiran na posix ACL), vrljati po Samba shareovima (dakle, tipicni file server).

Da bih ja tom jednom AD korisniku omogucio SFTP pristup, promjenio sam postavku winbind shell-a za win korisnike na /bin/sh… i on se bez problema logira u Linux box.

Nezeljeni efekti su:

  1. i svi ostali AD korisnici se mogu logirati na taj Linux server
  2. svi AD korisnici imaju ista prava i to jako velika prava, gotovo kao “root” samo sto ne mogu otvoriti direktorij “root”, pretpostavljam da naslijedjuju prava Samba daemona koji je u grupi koja je nekakvim aliasom efektivno grupa root.

Zna li iko kako da ovo rijesim na najelegantniji nacin. Po preferenciji bi mi bilo:

  1. zadrzati AD login tako da kad moj AD kolega promjeni svoj NTLM password ta promjena se odrazi i na pristup SFTP-u i SSH-u.
  2. onemoguciti druge AD korisnike da se logiraju uopce
  3. barem ih onemoguciti da vrljaju igdje osim po svom /home/DOMENA/USER direktoriju pa bih onda file system linkovima i posix ACL-ovima omogucio svom kolegi da pristupa direktorijima kojima treba da ima pristup

Razumijem da mogu napraviti linux usera sa drugim iimenom i NT userima postaviti shell na /bin/false, ali to trenutno ostavljam kao zadnju opciju.

Unaprijed hvala za svaku pomoc.

[quote=bmarkovic]Dakle, ukratko, u firmi imam CentOS 5.3 server, koji (izmedju ostalog) hosta File Server preko Sambe. Sam server dio je Active Directory “ekosistema” sto izmedju ostalog, znaci i da su AD korisnici istovremeno i lokalni korisnici (tj winbind pridruzi server domeni, PAM podrzava AD login itd.).

Zelim JEDNOM od njih omoguciti SFTP pristup.

Defaultno, AD korisnici imaju shell postavljen na /bin/false, tako da se efektivno ne mogu logirati u Linux box, nego samo mogu preko Windows file sharinga, sukladno postavljenim korisnickim pravima (NT ACL mapiran na posix ACL), vrljati po Samba shareovima (dakle, tipicni file server).

Da bih ja tom jednom AD korisniku omogucio SFTP pristup, promjenio sam postavku winbind shell-a za win korisnike na /bin/sh… i on se bez problema logira u Linux box.

Nezeljeni efekti su:

  1. i svi ostali AD korisnici se mogu logirati na taj Linux server
  2. svi AD korisnici imaju ista prava i to jako velika prava, gotovo kao “root” samo sto ne mogu otvoriti direktorij “root”, pretpostavljam da naslijedjuju prava Samba daemona koji je u grupi koja je nekakvim aliasom efektivno grupa root.

Zna li iko kako da ovo rijesim na najelegantniji nacin. Po preferenciji bi mi bilo:

  1. zadrzati AD login tako da kad moj AD kolega promjeni svoj NTLM password ta promjena se odrazi i na pristup SFTP-u i SSH-u.
  2. onemoguciti druge AD korisnike da se logiraju uopce
  3. barem ih onemoguciti da vrljaju igdje osim po svom /home/DOMENA/USER direktoriju pa bih onda file system linkovima i posix ACL-ovima omogucio svom kolegi da pristupa direktorijima kojima treba da ima pristup

Razumijem da mogu napraviti linux usera sa drugim iimenom i NT userima postaviti shell na /bin/false, ali to trenutno ostavljam kao zadnju opciju.

Unaprijed hvala za svaku pomoc.[/quote]
na tom linuxu dopustiš da mogu samo neki useri… koliko je elegantno ti ocijeni

vi /etc/ssh/sshd_config

[quote=nidla]na tom linuxu dopustiš da mogu samo neki useri… koliko je elegantno ti ocijeni

vi /etc/ssh/sshd_config

[/quote]
Puno hvala.

Ok, ovo je rijesilo dio problema, mogu ograniciti koji user mogu uspjesno SSH-at u linux masinu.

Ali i dalje ako svom kolegi dozvolim pristup preko AllowUsers direktive, on ima skoro pa root prava. Imas li kakvu ideju sta po tom pitanju uraditi?

Meni se cini da je problem da su NT korisnici clanovi neke grupe koja je mapirana na root (grupu, ne korisnika) a treba biti mapirana na users, a nemam pojma gdje se to postavlja.

Definiši “root” prava? Ako ima shell i može izvršavati komande, ne mora značiti da je root.

Drugi dio rješenja je za shell postaviti sftp-server, te isti naštimati da uradi “chroot” prilikom korisničkog logina. Mislim da to može neki noviji SSH serije 5.x:
http://www.minstrel.org.uk/papers/sftp/builtin/

ovo sto adis spominje mogu noviji 5.x openssh serveri. evo link na howto: http://www.debian-administration.org/articles/590

Definiši “root” prava? Ako ima shell i može izvršavati komande, ne mora značiti da je root.[/quote]
Razumijem. Ali ja govorim o root grupi, ne o root korisniku, i govorim o file permissionsima. Primjer: korisnik moze otvoriti bilo koji fajl u /etc hijerarhiji i izmjeniti ga. “Ostali” nemaju ta prava – dakle pripadnik je root grupe (nije uid 0, samo pripada root grupi, bas kao i vecina servisa/daemona). Slozit cete se da to nije pozeljno.

Inace cijelu zavrzlamu oko toga sam cini mi se izazvao kad sam podesavao POSIX ACL i shareove za win korisnike, da mi Unix permissionsi ne bi pravili probleme nekako sam (ne sjecam se kako) izveo da svi Samba korisnici budu u root grupi. Problemi koje sad imam su pravi primjer kako ne treba stvari rijesavat hackovima nego dobro prouciti sta radis i uraditi na najbolji nacin.

[quote=adis]Drugi dio rješenja je za shell postaviti sftp-server, te isti naštimati da uradi “chroot” prilikom korisničkog logina. Mislim da to može neki noviji SSH serije 5.x:
http://www.minstrel.org.uk/papers/sftp/builtin/[/quote]

Hvala na linkovima, uputili su me u pravom smjeru. Chroot jail rijesava problem na jako elegantan nacin, a Match direktiva za SSH omogucuje da “usitnim” kome dajem pristup kojem dijelu file systema.