Diskussion:Entwicklungsumgebung/Samba: Unterschied zwischen den Versionen

Aus Delixs
Zur Navigation springen Zur Suche springen
(Text verschoben zu den Vorüberlegungen)
(Anleitung abgearbeitet)
 
Zeile 18: Zeile 18:


siehe auch dd 16.06.2009
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


----
----

Aktuelle Version vom 10. Juli 2009, 17:15 Uhr

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


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