|
|
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| = Installation von Samba = | | == Hinweis == |
|
| |
|
| konzeptionelle Überlegungen
| | Die default Einstellung "host msdfs = Yes" verursacht auf jedem |
| | Samba-Server ein Speicherproblem, wenn folgendes zutrifft: |
|
| |
|
| wir haben im LDAP einen Baum (Struktur), die nun gefüllt werden soll.
| | # LDAP-Anbindung |
| Fragt sich:
| | # ein MS IIS Server im Netz |
|
| |
|
| 1. welche Accounts und Gruppen müssen angelegt werden, weil diese eben für einen geordneten Betrieb eines PDCs erwartet werden?
| | Wenn es in Euren Netzen einen IIS gibt, setzt diesen Parameter auf "No" |
| | und startet Samba neu :-) . Natürlich nur, wenn Ihr msdfs nicht |
| | benutzt; was sehr wahrscheinlich der Fall ist. |
|
| |
|
| 2. welche Berechtigungen sollen vergeben werden können und wie soll das geschehen?
| |
|
| |
|
| 3. welche Gruppen richten wir wie ein
| | Kontrolle mit: |
|
| |
|
| zu 1.
| | testparm -s -v 2>/dev/null|grep 'host msdfs' |
| | host msdfs = Yes |
|
| |
|
| bei den smbldap-Tools gibt es ein Script, welches genau diese
| | siehe auch dd 16.06.2009 |
| Aufgabe erledigen soll: smbldap-populate
| |
| wir nutzen dieses, um eine "Population" für Samba zu erstellen.
| |
| das ist aber nur eine Vorlage, d.h. wir verschieben die damit
| |
| angelegten Entries dahin, wo wir es haben wollten.
| |
|
| |
|
| Daraus wurde eine LDIF-Datei erstellt. Hinweis: die SID
| | ---- |
| in diesem LDIF-File muss noch durch die aktuelle SID des
| |
| Samba ersetzt werden!
| |
|
| |
|
| zu 2.
| | '''Ergänzungen,''' damit unix und SAMBA-Passworte automatisch synchron bleiben: |
|
| |
|
| Es sollte in Anlehnung an Arktur4 folgende Gruppen geben:
| | cgrep /etc/hosts |
|
| |
|
| hadmins (Hauptadmins), cadmins (Co-Admins), tadmins (Teiladmins)
| | <pre> |
| Gruppe material, Gruppe fachl (Fachlehrer)
| | 127.0.0.1 localhost |
| | 10.100.0.1 alix.delixs-schule.de alix |
| | ::1 localhost ip6-localhost ip6-loopback |
| | fe00::0 ip6-localnet |
| | ff00::0 ip6-mcastprefix |
| | ff02::1 ip6-allnodes |
| | ff02::2 ip6-allrouters |
| | ff02::3 ip6-allhosts |
| | </pre> |
|
| |
|
| Es sollen folgende Rechte damit verbunden sein:
| | ################### |
|
| |
|
| | cgrep /etc/samba/smb.conf |
|
| |
|
| # bei Schülern # bei Lehrern
| | <pre> |
| Gruppe # #
| | [global] |
| # LDAP | Homeverzeich. # LDAP | Homeverzeich.
| | unix charset = LOCALE |
| | server string = Schulserver %h |
| | workgroup = SCHULE |
| | netbios name = alix |
| | domain logons = Yes |
| | domain master = Yes |
| | local master = yes |
| | preferred master =yes |
| | interfaces = eth1 127.0.0.1/8 |
| | bind interfaces only = Yes |
| | name resolve order = wins bcast host |
| | security = user |
| | auth methods = guest, sam |
| | hosts allow = 127. 10. |
| | time server = yes |
| | socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 |
| | case sensitive = no |
| | preserve case = yes |
| | short preserve case = yes |
| | logon script = %a.bat |
| | logon path = \\%L\%U\%a |
| | logon home = \\%L\%U\%a |
| | domain logons = yes |
| | domain master = yes |
| | os level = 255 |
| | preferred master = yes |
| | passdb backend = ldapsam:ldap://localhost |
| | ldapsam:trusted = yes |
| | ldap passwd sync = yes |
| | pam password change = Yes |
| | encrypt passwords = yes |
| | ldap suffix = dc=delixs-schule,dc=de |
| | ldap admin dn = cn=admin,dc=delixs-schule,dc=de |
| | ldap group suffix = ou=groups |
| | ldap user suffix = ou=people,ou=accounts |
| | ldap machine suffix = ou=machines,ou=accounts |
| | passwd program = /usr/sbin/smbldap-passwd %u |
| | passwd chat = *Enter\snew\s*\spassword:* %n\n |
| | *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* |
| | add machine script = /usr/sbin/smbldap-useradd -w "%u" |
| | add user script = /usr/sbin/smbldap-useradd -m -a -A 1 "%u" |
| | delete user script = /usr/sbin/smbldap-userdel "%u" |
| | ldap delete dn = yes |
| | dns proxy = no |
| | wins support = yes |
| | admin users = adm, root, Administrator |
| | guest account = nobody |
| | mangled names = no |
| | log level = 1 |
| | veto files = /*.eml/*.nws/riched20.dll/*.{*}/ |
| | </pre> |
|
| |
|
| ------------------------------------------------------------------------ | | Hier steht viel zuviel Zeugs drin, aber so passt es erstmal :-) |
| # | #
| |
| hadmin # Schreibrecht | Schreibrecht # Schreibrecht | Schreibrecht
| |
| # | # |
| |
| cadmin # Schreibrecht | Schreibrecht # |
| |
| # | # |
| |
| tadmin # Schreibrecht | # |
| |
| # | # |
| |
| material # | Schreibrecht # |
| |
| # | # |
| |
| fachl # | Leserecht # |
| |
|
| |
|
| | aptitude install tdb-tools |
|
| |
|
| ist aber noch nicht vollständig: es fehlen mir die raumadmins. Oder | | und nachschauen, ob das geänderte admin Passwort eingetragen ist :-) |
| formulieren wir es mal anders: das hier sind die Berechtigungen für
| |
| User. Es fehlen Berechtigungen für alles was mit Rechnern zu tun hat.
| |
|
| |
|
| Es müßte die Tabelle noch nach rechts fortgesetzt werden, wobei eben
| | tdbdump /var/lib/samba/secrets.tdb |
| diese Tabelle die linke Spalte für die User darstellt und daneben eben
| |
| die für die Maschinen. für die Maschinen gibt es nur 2 Gruppen: die
| |
| Raumadmins. die Rechte für die Raumadmins habe ich so vorgeschlagen:
| |
| - Rechnern in die Domäne aufnehmen
| |
| - Rechnern feste IPs vergeben
| |
| - die (Samba-)Logfiles für die Rechner seines Raumes kontrollieren können
| |
| Ein Raumadmin hat (sollte) immer nur die Rechte für seine Rechner haben.
| |
| Da es durchaus Sinn macht, "einen" Admin zu haben, der über den Raumadmins
| |
| steht und Zugriff auf alle Rechner hat, würde ich dieses Recht auch noch
| |
| den hadmin geben. Und den hadmin(s) würde ich noch ein Recht einräumen:
| |
| Er kann die Berechtigungen für cadmin, tadmin, material und fachl vergeben.
| |
|
| |
|
| zu 3.
| | <pre> |
| | { |
| | key(16) = "SECRETS/SID/ALIX" |
| | data(68) |
| | = "\01\04\00\00\00\00\00\05\15\00\00\00\A4\04\86}\19\C5\9F\1A\FE\B8\0Eo\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" |
| | } |
| | { |
| | key(18) = "SECRETS/SID/SCHULE" |
| | data(68) |
| | = "\01\04\00\00\00\00\00\05\15\00\00\00\A4\04\86}\19\C5\9F\1A\FE\B8\0Eo\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" |
| | } |
| | { |
| | key(52) = "SECRETS/LDAP_BIND_PW/cn=admin,dc=delixs-schule,dc=de" |
| | data(7) = "schule\00" |
| | } |
| | </pre> |
|
| |
|
| 1. Systemgruppen (wegen speziellen Accounts):
| | Jetzt "schule" nicht mehr "geheim" |
|
| |
|
| 'ws-user' ('platznutzer') war 100 => 1000
| | --Harry 2009/03/29 in DD |
| 'teacher' ('lehrer') war 101 => 1001
| |
| 'students' ('schueler') war 102 => 1002
| |
| 'exam' ('klausur') war ??? => 1003
| |
| 'machines' ('arbeitsstationen') war 97 => 1004
| |
| | |
| 2. Delixsgruppen:
| |
| | |
| 'online' war 106 => 1006
| |
| 'material' war 107 => 1007
| |
| 'internet' => 1008
| |
| 'www' war 99 => 1009
| |
| 'fachl' => 1010
| |
| 'tadmin' --- => 1011
| |
| 'cadmin' (war 'admins') war 105 => 1012
| |
| 'hadmin' --- => 1013
| |
| | |
| | |
| 3. Systemgruppen (wegen Groupmapping) siehe bei Population erzeugen (Punkt 8)
| |
| | |
| Angedacht war, dass die UIDs für die machinen von 1000 bis 1999 gehen.
| |
| Die UIDs für die 'people' sollten ab 2000 (bis 30000) gehen. Da ich
| |
| das (derzeit) über die smbldap-Tools noch nicht steuern kann, werden die
| |
| UIDs für User und Maschinen einfach "automatisch" vergeben - also gemischt.
| |
| | |
| = eigentliche Installation von Samba =
| |
| | |
| (streng nach Wiki)
| |
| | |
| 1. Pakete einspielen
| |
| | |
| aptitude install samba samba-common smbclient swat
| |
| aptitude install libpam-smbpass smbldap-tools smbfs smb-nat samba-doc
| |
| | |
| ---|Samba Server|---
| |
| | |
| Arbeitsgruppe/Domainname
| |
| | |
| SCHULE
| |
| | |
| | |
| ---|Samba Server|---
| |
| | |
| soll die smb.conf abgeändert werden, dass per DHCP angebotene WINS-Einstellungen
| |
| verwendet werden?
| |
| | |
| nein
| |
| | |
| | |
| 2. Sambaschema bereitstellen
| |
| | |
| cd /usr/share/doc/samba-doc/examples/LDAP
| |
| gunzip samba.schema.gz
| |
| cp samba.schema /etc/ldap/schema/
| |
| | |
| und in die smb.conf einfügen (hiner den anderen include-Zeilen
| |
| | |
| include /etc/ldap/schema/samba.schema
| |
| | |
| | |
| 3. LDAP neu starten
| |
| | |
| /etc/init.d/slapd restart
| |
| | |
| | |
| 4. ldap-tools bereitstellen
| |
| | |
| wurden ja schon bei Samba installiert und werden nach Anleitung im Wiki bereitgestellt:
| |
| | |
| zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf
| |
| cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf
| |
| | |
| | |
| 5. Konfiguration der smbldap-Tools:
| |
| | |
| | |
| /etc/smbldap-tools/smbldap_bind.conf (Datei im Paket)
| |
| | |
| slaveDN="cn=admin,dc=delixs-schule,dc=de"
| |
| slavePw="geheim"
| |
| masterDN="cn=admin,dc=delixs-schule,dc=de"
| |
| masterPw="geheim"
| |
| | |
| | |
| /etc/smbldap-tools/smbldap.conf (Datei im Paket)
| |
| | |
| mit net getlocalsid >> /etc/smbldap-tools/smbldap.conf
| |
| dann verschieben z.B. mit den MC
| |
| | |
| SID="S-1-5-21-3733721172-1526293526-4229837797"
| |
| sambaDomain="SCHULE"
| |
| # muss bei uns gleich sein
| |
| slaveLDAP="127.0.0.1"
| |
| slavePort="389"
| |
| masterLDAP="127.0.0.1"
| |
| masterPort="389"
| |
| # ich verschluessel nichts
| |
| ldapTLS="0"
| |
| verify="none"
| |
| cafile=""
| |
| clientcert=""
| |
| clientkey=""
| |
| # delixs
| |
| suffix="dc=delixs-schule,dc=de"
| |
| usersdn="ou=people,ou=accounts,${suffix}"
| |
| computersdn="ou=machines,ou=accounts,${suffix}"
| |
| groupsdn="ou=groups,${suffix}"
| |
| # das ist noch unklar
| |
| idmapdn="ou=Idmap,${suffix}"
| |
| sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
| |
| scope="sub"
| |
| hash_encrypt="MD5"
| |
| # der naechste Eintrag soll nicht stoeren
| |
| crypt_salt_format="%s"
| |
| userLoginShell="/bin/bash"
| |
| userHome="/home/students/%U"
| |
| userHomeDirectoryMode="700"
| |
| userGecos="System User"
| |
| defaultUserGid="1002"
| |
| defaultComputerGid="1004"
| |
| skeletonDir="/etc/skel"
| |
| # ein leerer Wert wird nicht akzeptiert. also habe ich einen großen Wert genommen
| |
| defaultMaxPasswordAge="10000"
| |
| # die naechsten 4 Werte sollen aus der smb.conf genommen werden
| |
| userSmbHome=""
| |
| userProfile=""
| |
| userHomeDrive=""
| |
| userScript=""
| |
| mailDomain="delixs-schule.de"
| |
| # die naechsten Werte waren Vorgabe
| |
| with_smbpasswd="0"
| |
| smbpasswd="/usr/bin/smbpasswd"
| |
| with_slappasswd="0"
| |
| slappasswd="/usr/sbin/slappasswd"
| |
| | |
| | |
| 6. wir ändern die UID und GID von sysadm
| |
| | |
| direkt in der shadow und der passwd UID und GID auf 0 setzen (mit dem mcedit)
| |
| | |
| | |
| 7. die Hauptgruppen anlegen
| |
| | |
| diese legen wir in der /etc/groups an
| |
| | |
| smbldap-groupadd -g 1000 -a ws-user
| |
| smbldap-groupadd -g 1001 -a teacher
| |
| smbldap-groupadd -g 1002 -a students
| |
| smbldap-groupadd -g 1003 -a exam
| |
| smbldap-groupadd -g 1004 -a machines
| |
| | |
| | |
| | |
| | |
| 8. Population im LDAP erzeugen
| |
| | |
| es wurde direkt mit smbldap-populate der LDAP gefüllt. Die Einträge haben
| |
| gleich die richtige SID (wegen smbldap.conf). Es wurden folgende Einträge
| |
| im LDAP angelegt. Offensichtlich alles fürs Funktionieren von Samba
| |
| notwendige Einträge.
| |
| | |
| ou=Idmap,dc=delixs-schule,dc=de
| |
| uid=root,ou=people,ou=accounts,dc=delixs-schule,dc=de
| |
| uid=nobody,ou=people,ou=accounts,dc=delixs-schule,dc=de
| |
| cn=Domain Admins,ou=groups,dc=delixs-schule,dc=de
| |
| cn=Domain Users,ou=groups,dc=delixs-schule,dc=de
| |
| cn=Domain Guests,ou=groups,dc=delixs-schule,dc=de
| |
| cn=Domain Computers,ou=groups,dc=delixs-schule,dc=de
| |
| cn=Administrators,ou=groups,dc=delixs-schule,dc=de
| |
| cn=Account Operators,ou=groups,dc=delixs-schule,dc=de
| |
| cn=Print Operators,ou=groups,dc=delixs-schule,dc=de
| |
| cn=Backup Operators,ou=groups,dc=delixs-schule,dc=de
| |
| cn=Replicators,ou=groups,dc=delixs-schule,dc=de
| |
| sambaDomainName=SCHULE,dc=delixs-schule,dc=de
| |
| | |
| 9. die Delixs-Gruppen im LDAP anlegen
| |
| | |
| Dazu verwenden wir das LDIF-File delixsgroups.ldif (Datei im Paket)
| |
| | |
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
| |
| !!! dieses LDIF-File *muss* erst bearbeitet werden !!!
| |
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
| |
| | |
| und zwar muss die SID von Samba hier eingefügt werden (8x !!!), dazu
| |
| - die SID anhängen mit
| |
| | |
| 'net getlocalsid >> delixsgroups.ldif'
| |
| | |
| - z.B. mit dem MC dann mit suchen und ersetzen die alte SID durch die neue SID
| |
| *überall* eintragen.
| |
| | |
| dieses bearbeitete LDIF-File in den LDAP einfügen mit
| |
| | |
| ldapadd -x -D cn=admin,dc=delixs-schule,dc=de -W -f /root/delixsgroups.ldif
| |
| | |
| | |
| 10. smb.conf erstellen
| |
| | |
| die folgende 'smb.conf' habe ich "zusammenkopiert". testparm meckert nicht.
| |
| die Pfade für die smbldaptools habe ich überprüft, die übernommenen Parameter
| |
| scheinen mir sinnvoll.
| |
| | |
| meine 'smb.conf': http://www.arktur.th.schule.de/smb.conf (Datei im Paket)
| |
| | |
| | |
| | |
| 11. Sambapasswort setzen
| |
| | |
| als root aufrufen (es muss das LDAP-root-Passwort sein - bei mir 'geheim')
| |
| | |
| smbpasswd -w geheim
| |
| | |
| | |
| 12. Konfiguration neu einlesen
| |
| | |
| /etc/init.d/samba restart
| |
| | |
| | |
| 13. Test
| |
| | |
| Aufruf von "smbclient -L alix -N" brachte:
| |
| | |
| Anonymous login successful
| |
| Domain=[SCHULE] OS=[Unix] Server=[Samba 3.2.5]
| |
| | |
| Sharename Type Comment
| |
| --------- ---- -------
| |
| netlogon Disk Anmeldeverzeichnis
| |
| tmp Disk Datenaustausch
| |
| pub Disk Unterrichtsmaterial
| |
| intranet Disk Intranet-Seiten
| |
| fachl Disk Fachlehrer-Zugang
| |
| admins Disk Admin-Freigabe
| |
| IPC$ IPC IPC Service (Schulserver alix)
| |
| Anonymous login successful
| |
| Domain=[SCHULE] OS=[Unix] Server=[Samba 3.2.5]
| |
| | |
| Server Comment
| |
| --------- -------
| |
| ALIX Schulserver alix
| |
| | |
| Workgroup Master
| |
| --------- -------
| |
| SCHULE ALIX
| |
| | |
| | |
| | |
| 14. User anlegen
| |
| | |
| smbldap-useradd -a -A 1 -g 1002 -n -c 'Manfred Mustermann,5a' -d /home/students/mmustermann -m mmustermann
| |
Hinweis
Die default Einstellung "host msdfs = Yes" verursacht auf jedem
Samba-Server ein Speicherproblem, wenn folgendes zutrifft:
- LDAP-Anbindung
- ein MS IIS Server im Netz
Wenn es in Euren Netzen einen IIS gibt, setzt diesen Parameter auf "No"
und startet Samba neu :-) . Natürlich nur, wenn Ihr msdfs nicht
benutzt; was sehr wahrscheinlich der Fall ist.
Kontrolle mit:
testparm -s -v 2>/dev/null|grep 'host msdfs'
host msdfs = Yes
siehe auch dd 16.06.2009
Ergänzungen, damit unix und SAMBA-Passworte automatisch synchron bleiben:
cgrep /etc/hosts
127.0.0.1 localhost
10.100.0.1 alix.delixs-schule.de alix
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
cgrep /etc/samba/smb.conf
[global]
unix charset = LOCALE
server string = Schulserver %h
workgroup = SCHULE
netbios name = alix
domain logons = Yes
domain master = Yes
local master = yes
preferred master =yes
interfaces = eth1 127.0.0.1/8
bind interfaces only = Yes
name resolve order = wins bcast host
security = user
auth methods = guest, sam
hosts allow = 127. 10.
time server = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
case sensitive = no
preserve case = yes
short preserve case = yes
logon script = %a.bat
logon path = \\%L\%U\%a
logon home = \\%L\%U\%a
domain logons = yes
domain master = yes
os level = 255
preferred master = yes
passdb backend = ldapsam:ldap://localhost
ldapsam:trusted = yes
ldap passwd sync = yes
pam password change = Yes
encrypt passwords = yes
ldap suffix = dc=delixs-schule,dc=de
ldap admin dn = cn=admin,dc=delixs-schule,dc=de
ldap group suffix = ou=groups
ldap user suffix = ou=people,ou=accounts
ldap machine suffix = ou=machines,ou=accounts
passwd program = /usr/sbin/smbldap-passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n
*Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully*
add machine script = /usr/sbin/smbldap-useradd -w "%u"
add user script = /usr/sbin/smbldap-useradd -m -a -A 1 "%u"
delete user script = /usr/sbin/smbldap-userdel "%u"
ldap delete dn = yes
dns proxy = no
wins support = yes
admin users = adm, root, Administrator
guest account = nobody
mangled names = no
log level = 1
veto files = /*.eml/*.nws/riched20.dll/*.{*}/
Hier steht viel zuviel Zeugs drin, aber so passt es erstmal :-)
aptitude install tdb-tools
und nachschauen, ob das geänderte admin Passwort eingetragen ist :-)
tdbdump /var/lib/samba/secrets.tdb
{
key(16) = "SECRETS/SID/ALIX"
data(68)
= "\01\04\00\00\00\00\00\05\15\00\00\00\A4\04\86}\19\C5\9F\1A\FE\B8\0Eo\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"
}
{
key(18) = "SECRETS/SID/SCHULE"
data(68)
= "\01\04\00\00\00\00\00\05\15\00\00\00\A4\04\86}\19\C5\9F\1A\FE\B8\0Eo\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"
}
{
key(52) = "SECRETS/LDAP_BIND_PW/cn=admin,dc=delixs-schule,dc=de"
data(7) = "schule\00"
}
Jetzt "schule" nicht mehr "geheim"
--Harry 2009/03/29 in DD