Segítsetek nekem Samba PDC-t csinálni

Fórumok

Hello!

Több helyen volt már szó róla, de mindenhol másképpen, és nekem ez egy kicsit kaotikus. Szóval, Samba PDC-t szeretnék csinálni, egyelőre 12, de max 25-30 gépes iskolai számítógépterem, 200-250 user.

Ami biztos:
- Samba 3
- Debian Etch
- XP Professional kliensek
- LDAP backend-el szeretném megoldani
- userek kezelése web felületen (új user, jelszót elfelejtette, csoportok stb.)
- új user kezdőjelszót kap, első belépéskor magának megváltoztatja
- a gépek naponta megadott időben shutdown (a szerverről központilag irányítható módon, nem a kliensek külön-külön)
- userek belépése szintén időhöz kötött (minden nap x órától y óráig), userek egy csoportja nonstop hozzáférést kap
- roaming profile semmiképp ne legyen, minden a szerveren tárolódjon, mindenki oda dolgozzon, folyamatosan (elbírja ezt a 10 mbites switch vajon?)
- user quota, minden userre, ne is tudjon a home-jába többet pakolni, ne kijelentkezéskor kiabáljon
- minden user My Documents és Desktop könyvtára a szerverre legyen irányítva, és mindkettő számítson bele a kvótába
- home könyvtár felmappelve meghajtó betűjelre

Ez megoldható Samba-val? Ha igen, jól jönne egy jó howto, meg néha segítség, ha elakadok. Ezelőtt 2003 Server volt, több hónapja szívunk vele, ma borult meg végleg az egész, ezért döntöttem Samba mellett.

Előre is köszönom a válaszokat!

http://www.samba-ldap.de/samba-3-pdc-mit-ldap.html Ezt találtam, de németül nem tudok, és valami saját repo-ból dolgozik, én meg nem szeretnék unofficial csomagokat feldobálni. Jó ez a Howto, vagy keressek mást?

Petya

Hozzászólások

Ha segít rajtad akkor a NEM LDAP-os domain samba configomat el tudom küldeni, de az is lehet hogy már egyszer beraktam valamelyik fórumba itt a HUP-on.

de adddigis böngészd át a http://hup.hu/search/node/samba+pdc+type%3Aforum találatokat.
---------------------------------------------------------------------
„Az Univerzum már elég nagy és öreg ahhoz, hogy egy fél óráig vigyázzon magára.”

közkincs:

#======================= Global Definitions =======================
[global]
workgroup = WORKGROUP
server string = %h server (Samba %v)
interfaces = eth0 lo
bind interfaces only = yes
name resolve order = lmhosts host wins bcast
security = USER
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
obey pam restrictions = Yes
encrypt passwords = true
passdb backend = tdbsam, guest
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
smb ports = 139
time server = Yes
show add printer wizzard = no

add user script = /usr/sbin/useradd -m '%u'
delete user script = /usr/sbin/userdel -r '%u'
add group script = /usr/sbin/groupadd '%g'
delete group script = /usr/sbin/groupdel '%g'
add user to group script = /usr/sbin/usermod -G '%g' '%u'
add machine script = /usr/sbin/useradd -s /bin/false -d /tmp '%u'

logon script = netlogon\login.bat
logon drive = X:
domain logons = Yes
os level = 65
preferred master = Yes
domain master = Yes
# wins proxy = Yes
wins support = Yes

ldap ssl = no
utmp = Yes
utmp directory = /tmp
panic action = /usr/share/samba/panic-action %d
# winbind trusted domains only = Yes
invalid users = root
hosts allow = 192.168.0.0
hosts deny = 0.0.0.0
printing = cups
lpq command = %p
guest account = nobody

#======================= Share Definitions =======================

[homes]
comment = Home Directories
browseable = no
writable = yes
create mask = 0755
directory mask = 0755

[company]
comment = Company share
# valid users = %S
path = /home/company
read only = No
browseable = Yes
create mask = 0777
directory mask = 0777
wide links = No

[netlogon]
comment = Network Logon Service
path = /home/netlogon
guest ok = yes
writable = no
share modes = no

[printers]
comment = All Printers
browseable = no
path = /tmp
printable = yes
public = no
writable = no
create mode = 0700

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
write list = root, @ntadmin

[Recyle Bin]
path = /home/recycle
browseable = no
vfs object = recycle
recycle:repository = /home/recycle/
recycle:keeptree = 1
recycle:touch_mtime = true
recycle:versions = 1
recycle:maxsixe = 1000000
recycle:exclude = *.tmp *.temp *.o *.obj ~$* *.dat *.zip *.mp3 *.wav *.rar *.tif

---------------------------------------------------------------------
„Az Univerzum már elég nagy és öreg ahhoz, hogy egy fél óráig vigyázzon magára.”

Üdv!

A gépek leálíltására van ötletetek?

Én ezt találtam: link , de valamiért, nem működik, nem találja a win32api modult. Hogyan lehet ezt megoldani?

Petya

Eléggé tákolt megoldás, de ha mondjuk egy cron job-ba teszel egy scriptet, ami átnevezi a korlátozott SMB userek csoportját, akkor ugyebár nem tudnak belépni. Persze egy smb reload szerintem szükséges az átnevezgetés után.
Hangsúlyozom: nagyon tákolt megoldás, de hirtelen nincs okosabb ötletem. :)

Lehet egyszerűb lenne a Windows Servernél maradni, miután megtanultad üzemeltetni. :) No offense, tényleg!

policy: ha jól tudom, registry hive-ot tudsz csinálni a usereknek (ntuser.dat), és betenni a netlogon megosztásba, és akkor bejelentkezéskor megeszi a kliens.

Previ: az a Windows szerver random nem engedte be a usereket, vagy ha mégis, akkor nem mountolta a megosztásaikat, ezzel együtt az SMNP szolgáltatás is hol működött-hol nem. A szerver újraindítás megoldotta pár órára. Pár napja 6-szor kellett egy nap újraindítani, akkor untam meg a szívást, és döntöttem, hogy samba lesz. (egyébént évekkel ezelőtt, az elődöm idején is samba volt, nem is tudom miért raktam 2003-at, tulképpen azóta van konstans szívás, mióta windows van...)

Petya

Köszönöm!
Közben néztem, lehet poledittel varázsolni.
Trust ötlet valaki?

Újabb kérdés:
Hogy lehet megoldani hogy 4-5 group tagja legyen egy hatodik groupnak?
Mert nem egy nagy élmény a már egy (vagy több) groupban lévő júzereket egyenként újabb group(ok)hoz rendelni, és karbantartani...

És ha ez megy, akkor _egy_ könyvtárhoz csoportonként jogot osztani mi módon lehet?
RTFM is jöhet!

Hello!

Az LDAP elindításával küzdök, indítás után azonnal meg is áll a slapd, a debug kimenete itt van: http://molnarp.pastebin.co.uk/17619

Láttatok már ilyet? (a feljebb említett szakdolgozatot követem, a konfigok is onnan vannak)

Petya

Tedd fel a db4.3utils vagy valami ilyes csomagot.

Állj rá a LDAP aadatbázi mappájára (/var/lib/openldap-data)
db4.3_recover
chown ldap:ldap *

Az utolsó csak akkor kell, ha a LDAP nem a root nevében fut, különben nem kell.

Szerk: neked lehet, csak db4.2 csomagod van, akkor értelmszerűen változnak a nevek.

Háát... itt jön az, hogy ugye időnként dumpoltad az LDAP adatbázis-t? Mármint slapcat-tal. Mert a OpenLDAP adatbázist csak úgy lehet/érdemes menteni. Ha nem akkor szivacs. Sajna nem ismerem annyira a Berkeley Adabázik lelkivilágát. Ha van slapcat-os mentésed, akkor


rm /var/lib/ldap/*
slapadd -l /a/mentes/fileja.ldf

Ha nincs, akkor sajnos nulláról kell indulj. És ezek után egy cron script mentse rendszeresen slapcat-tal a LDAP adatbázist.

Na várj, kicsit túlhaladtál engem. Eredetileg arról volt szó, hogya slapd el sem indul, most pedig már TLS bajod van. Akkor most szép lassan elölről mond el hogy i is van, és mit csináltál azóta?

Legalábbis a pastebin-es szöveg ara utalt, hogy a slapd rögtön le is áll, mert nem képes hozzáférni a bdb adatbázishoz.

Hello!

Beállítottam a linkelt doksi alapján a slapd-t, de nem indul el, a pastebin-es szöveget dobja debug módban. Tettem phpldapadmin-t, ha megpróbálok belépni, akkor ezt adja:

Could not start TLS. Please check your LDAP server configuration.

LDAP said: Can't contact LDAP server

Tehát még mindig ott tartok, hogy nem indul el. A TLS-nek nem tudom, van-e hozzá köze, mindenesetre a cert-eket megcsináltam a doksi alapján.

Amit javasoltál (backupból visszaállítás), azt nem értem, miért írtad, nincs semmilyen adatbázis, nincs backup, nulláról próbálom felépíteni. A kliensek addig helyi userrel lépnek be. Újracsinálom az összes usert hamarosan (hacsak nincs mód az AD-ből kiexportálni a usereket valahogy)

Petya

Nos, annyit elértem, hogy elindul az slapd, a smbldap-populate script is szépen lefut, de phpldapadmin-ból továbbra sem tudok hozzá csatlakozni. Mi okozhatja ezt? A phpldapadmin nem tudja a TLS-t? (ugyanaz a hibaüzenet, mint fent)

szerk: a parancssoros ldapsearch gond nélkül csatlakozik, a -ZZ paraméterrel

Petya

és -x paraméterrel?

Nem tudom, talán a cert az oka. Meg kellene tudni hogy mivel hasal el most a phpldapadmin.

Amúgy ha a ldapsearch/ldapadd/ldapmodify trió működik, akkor tanuld meg az LDIF leírót és felejsd el a phpldapadmint. Nem olyan nehéz.

Ezen a linken vannak LDIF példák. Bár Active Directory-hoz írja, a lényeg itt is jól látható.

Főleg a changetype dolgokra figyelj.

Ez a PDF szintén Active Directory-ról szól, ennek ellenére olvasd el figyelmesen a példáat és a szöveget, mert elmagyarázza az LDIF fájlok szerkezetét is.

Ja, és a slapcat kimenete is - minő meglepetés - egy ldif fájl. Tanulmányozd az adatbázis felépítését, mert enélkül sokat fogsz szenvedni.

Hello!

Igazság szerint saját user kezelő frontendet tervezek írni hozzá PHP-ban, tehát mindenképpen kellene az, hogy PHP-ből el lehessen érni az LDAP-ot. Ha viszont a phpldapadmin nem éri el, akkor az én PHP szkriptjeim se fogják...

A linkeket átnézem, köszönöm.

szerk: lefuttattam az itt: http://hu.php.net/ldap található 1. példa kódot, itt az eredmény:


LDAP query test
Connecting ...connect result is Resource id #2
Binding ...
Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Protocol error in /var/www/proba/p.php on line 12
Bind result is
Searching for (sn=S*) ...
Warning: ldap_search() [function.ldap-search]: Search: No such object in /var/www/proba/p.php on line 18
Search result is

Warning: ldap_count_entries(): supplied argument is not a valid ldap result resource in /var/www/proba/p.php on line 21
Number of entires returned is
Getting entries ...


Warning: ldap_get_entries(): supplied argument is not a valid ldap result resource in /var/www/proba/p.php on line 24
Data for items returned:

Closing connection 

Tehát ha jól látom, kapcsolódni tud, bindelni nem. Mi okozza ezt?

szerk: kidobtam a TLS-t, anélkül simán jó minden.

Petya

"- roaming profile semmiképp ne legyen, minden a szerveren tárolódjon, mindenki oda dolgozzon, folyamatosan (elbírja ezt a 10 mbites switch vajon?)"

Szerintem nem kellene erőltetni a 10 megabites switchet. Suliban jellemzően mindenki egyszerre lép be, az meg tudja fogni rendessen. Mondjuk nálunk nem 30 gép volt a suliban, de ott is tudott elég lassú lenni időnként.

___
A backup olyan mint a sör. Egy backup nem backup, két backup fél backup, három backup egy backup. Egy backup nem backup...

Akkor lesznek külön userek? Mert még mindig nem deklaráltad le, milyen rendszert akarsz.

Amúgy a helyreállítás azért kellene, mert szét tudják haxxolni a registryjüket néhány ... hmm... érdekes oldal meglátogatásával, vagy pár még érdekeseb program elindításéval. Elég, ha csak a IE hülyül meg. Az meg tud úgy is hülyülni, hogy nincs adminjoga a usernek.

Nem a következő userről van szó, hanem az illető userről.

Szóval, persze, külön userek, mindenkinek adott méretű home-ja, LDAP-ban tárolva a usereket. Ez a regisrtry helyreállítás jól hangzik, majd megnézem, csak egyelőre menjen az a fránya LDAP.

szerk: ha van valami instant messengered, felvehetlek? Persze csak ha ráérsz segíteni.

Petya

Hello!

Újabb probléma merült fel:

Most már sikeresen belépnek a gépek a tartományba, LDAP-ból authentikálnak, de a belépett user nem látja a homeshare-t, felmappelt meghajtókat, profilt. Kilépés után sem jönnek létre ezek a szerveren. Ezen kívül a win gépekre root-tal belépve nincs rendszergazdai jogom (pedig ugyanazzal a root accouttal léptettem be a tartományba őket)

Gyanús, hogy a groupmap-peléssel nincs valami rendben, ezen kívül a homeshare könyvtárak owner-ére és jogaira gyanakszom.

Kérdés: hogyan kell ezeknek állni?

# net groupmap list
Domain Admins (<-SID->-512) -> 512
Domain Users (<-SID->-513) -> 513
Domain Guests (<-SID->-514) -> 514
Domain Computers (<-SID->-515) -> 515

A legtöbb leírásban itt ntadmins, ldapusers stb. csoportok szerepelnek, de nálam nincsenek ilyenek. Simán létrehozhatom őket addgroup-pal, és kész? Utána hogyan mappelem őket a Win-es csoportokhoz?

A megosztásoknak melyik user és csoport legyen a tulajdonosa, milyen jogokkal?

Miért nem tekinti a root-ot a Windows rendszergazdának?

Petya

Fogalmam sincs mi a baja, de érdemes lenne a hivatkozott Unix csoportokat létrehozni az LDAP-ban.

A Samba nem hajtja végre a teljes PAM login processzt, így a home meghajtókról neked kell gondoskodnod. A profile asszem mindenképp létrejön.

A homes megosztásnál csak ennyinek kell lenni:


[homes]
        read only = no
        browseable = no
        printable = no
        guest ok = no
        create mode = 0700
        directory mode = 0700

Illetőleg a global résznél:


        logon path = \\%N\profiles\%U # Profile path
        logon home = \\%N\%U # HOME share
        logon drive = O:

Erre elvben aktiválnia kell a dolgokat.

A home mappa 0700 v. 0755-ös jogokkal bírjon attól függően, hogy van-e USERDIR opció engedve az apache-ban. Természetesen a user legyen az ownere.

Ha a profil nem az user home-jában tárolódik (mint a beszúrt kódban), akkor a profiles mappának fizikailag létezni kell, és a Domain Users-nek megfelelő unix csoportnak írni kell tudni asszem (persze ehhez unix szinten bele kell rakni az usereket a megfelelő csoportba).

Amúgy olvass logot, és ha van valami gyanús, akkor szúrd be azt is...

Nem, te tudod hiányosan.

Valóban a LDAP-ból veszi a homeshare értékét, ha az definiált. Amennyiben nincs megadva, abban az esetben a homeshare értéket a smb.conf-ból veszi, mint kvázi default értéket. Amúgy a sambaProfilePath és a sambaHomePath értékekre gondoltál.

Bocs, de nem most csinálok először ilyent.