|
|
(2 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
| |
| 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.
| |
| | |
| Es sollte in Anlehnung an Arktur4 folgende Gruppen geben:
| |
| | |
| hadmins (Hauptadmins), cadmins (Co-Admins), tadmins (Teiladmins)
| |
| Gruppe material, Gruppe fachl (Fachlehrer)
| |
| | |
| Es sollen folgende Rechte damit verbunden sein:
| |
| | |
| | |
| # bei Schülern # bei Lehrern
| |
| Gruppe # #
| |
| # LDAP | Homeverzeich. # LDAP | Homeverzeich.
| |
| | |
| ------------------------------------------------------------------------
| |
| # | #
| |
| hadmin # Schreibrecht | Schreibrecht # Schreibrecht | Schreibrecht
| |
| # | # |
| |
| cadmin # Schreibrecht | Schreibrecht # |
| |
| # | # |
| |
| tadmin # Schreibrecht | # |
| |
| # | # |
| |
| material # | Schreibrecht # |
| |
| # | # |
| |
| fachl # | Leserecht # |
| |
| | |
| | |
| ist aber noch nicht vollständig: es fehlen mir die raumadmins. Oder
| |
| 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
| |
| 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.
| |
| | |
| 1. Systemgruppen (wegen speziellen Accounts):
| |
| | |
| 'ws-user' ('platznutzer') war 100 => 1000
| |
| '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
| |
|
| |
|
| | siehe auch dd 16.06.2009 |
|
| |
|
| ---- | | ---- |
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