Diskussion:Entwicklungsumgebung/Samba

Aus Delixs
Version vom 3. Juli 2009, 08:15 Uhr von Schoffer (Diskussion | Beiträge) (Text verschoben zu den Vorüberlegungen)
Zur Navigation springen Zur Suche springen

Hinweis

Die default Einstellung "host msdfs = Yes" verursacht auf jedem Samba-Server ein Speicherproblem, wenn folgendes zutrifft:

  1. LDAP-Anbindung
  2. 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

Installation von Samba

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



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