Anzeige:
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 15 von 40

Thema: Samba und LDAP

  1. #1
    Tuxaner
    Registriert seit
    Jan 2002
    Ort
    Berlin
    Beiträge
    96

    Samba und LDAP

    Hallo,

    ich habe letztens meine ersten Schritte mit LDAP unternommen. Nachdem ich ein vorgefertigtes Samba inclusive LDAP-Unterstützung heruntergeladen und installiert habe und auch openLDAP installiert war, lief eigentlich alles wie geschmiert. Ich konnte Unixbenutzer anlegen und per smbpasswd für Samba bekannt machen. In diesem Schritt griff auch LDAP ein und übernahm den jeweiligen Benutzer. Freigaben und alles schien soweit zu funktionieren (für ausschweifende Tests war keine Gelegenheit).

    Nun habe ich ein kleines Problem. Jetzt ist ungefähr eine Woche vergangen und ich möchte mich weiter damit beschäftigen. Doch jetzt hapert es auf einmal mit den Benutzern. Sobald ich smbpasswd ausführe, bekomme ich folgende Fehlermeldung:

    # Bind failed: Invalid credentials
    # Bind failed: Invalid credentials
    # Failed to add entry for user testrechner$
    # Failed to modify password for user testrechner$

    Meines Wissens nach sind alle Dienste (Samba, LDAP) gestartet. Mit einem Java-Tool, "LDAP Browser/Editor v2.8.2", kann ich mir allerdings alle Einträge anzeigen lassen und theoretisch auch welche hinzufügen. Doch bin ich mir dann nicht so sicher, ob sich das dann auch wieder auf Samba auswirkt. ...

    Hat jemand eine Idee, was ich übersehe?
    »Die Geduld nicht zu verlieren,
    auch wenn es unmöglich scheint - das ist Geduld!«

  2. #2
    Registrierter Benutzer Avatar von mamue
    Registriert seit
    Oct 2002
    Beiträge
    2.455
    Mhm, ich habe Samba mit ldap sowohl unter SuSE 8.0 als auch 8.1 laufen.
    Nur smbpasswd bei einem existierenden Rechneraccount habe ich noch nicht gemacht.
    Welchen Sinn hat denn das?
    Notfalls halt den Eintrag per ldapdelete löschen und neu anlegen.
    In jedem Fall, ob smbpasswd oder löschen/anlegen wird man wohl die Domäne neu betreten müssen.

    mamue

  3. #3
    Tuxaner
    Registriert seit
    Jan 2002
    Ort
    Berlin
    Beiträge
    96
    Hallo,

    danke ersteinmal für die Antwort. Ich verwende ebenfalls SuSE 8.0.

    Warum einen Rechneraccount? Nun, soviel Ahnung habe ich auch noch nicht - weder von Samba noch von LDAP. Aber laut einer Doku und Hinweisen von Leuten, die sich bereits damit beschäftigt haben:

    "Bevor sich ein Rechner an einer Domäne anmelden kann, muss der Rechnername bei der Domäne eingetragen werden. Um also eine Arbeitsstation anzumelden, muss ein Maschinenkonto von ihr erstellt werden. [...]"

    Und dies habe ich versucht. Aber sei das dahin gestellt. Auch bei ganz normalen Usern bekomme ich diese Fehlermeldung.

    Bei dem ersten Anlauf bin ich ebenfalls über Probleme gestolpert, so dass ich gar nicht auf auf LDAP zugreifen konnte. Das Problem damals: Ich hatte einen Client genommen und ihn entsprechend vorbereitet und konfiguriert. ... Und dabei vergessen den FQDN entsprechend anzupassen. Das kann jetzt aber nicht das Problem sein.

    Wie sonst füge ich Benutzer hinzu? Wenn ich sie "nur" bei LDAP eintrage, funktioniert das auch mit Samba? Verstehe ich vielleicht die Art und Weise wie Samba und LDAP zusammenarbeiten nicht ganz?
    »Die Geduld nicht zu verlieren,
    auch wenn es unmöglich scheint - das ist Geduld!«

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2000
    Ort
    Potsdam
    Beiträge
    44
    Hi,

    wenn du die Meldung
    # Bind failed: Invalid credentials
    bekommst, stimmt irgentwo dein Login für den LDAP-Server nicht! (DC=)

    Guck einfach mal in deine smb.conf
    Bei mir steht ...

    passdb backend = ldapsam:ldap://10.128.11.176:389
    ldap suffix = dc=linux,dc=org
    ldap admin dn = cn=admin,dc=linux,dc=org

    Diese config bezieht sich auf die Alpha von Samba 3.0 für 2.2 müsste an Stelle von "passdb backend"

    ldap server = ldap://10.128.11.176
    ldap port = 389

    stehen!

    Das plegen von User und Maschinenaccount in LDAP macht Sinn da du eine LDAP Datenbank dann später einfach mit einem BDC replizieren kannst!

    Der Maschinen(Rechneraccount) ist notwendig damit sich die Workstation am PDC/BDC authentifizieren kann!

    Wenn das mit deinem vorgefertigtem Samba nicht funktionieren sollte übersetzte es einfach selbst noch einmal neu!

    Einfach mit
    ./configure --with-ldapsam (bei samba 3.0 nicht notwendig da bereits enthalten)
    make
    make install

    btw. hast du die Pakte nss_ldap und pam_ldap installiert?

  5. #5
    Tuxaner
    Registriert seit
    Jan 2002
    Ort
    Berlin
    Beiträge
    96
    Hm. So ungefähr habe ich das dann auch verstanden. Vielen Dank nochmal.

    Ich benutze Samba 2.2.6 und meine smb.conf sah bisher so aus:

    # ldap master = Yes ldap
    # ldap server = localhost
    # ldap port = 389
    # ldap suffix = dc=samba,dc=local
    # ldap admin dn = cn=admin,dc=samba,dc=local
    # ldap filter = "(&(uid=%u)(objectclass=sambaAccount))"
    # ldap ssl = off

    Die Datei habe ich bezogen auf Server und Port so abgeändert:

    # ldap server = ldap://localhost
    # ldap port = 389

    Unabhängig, ob ich die IP oder localhost verwende, bekomme ich nun die Meldung:

    # Bind failed: Can't contact LDAP server

    Sowohl Samba als auch LDAP sind jeweils neu gestartet. Auch die beiden Pakete nss_ldap und pam_ldap habe ich nachinstalliert.
    »Die Geduld nicht zu verlieren,
    auch wenn es unmöglich scheint - das ist Geduld!«

  6. #6
    Registrierter Benutzer
    Registriert seit
    Dec 2000
    Ort
    Potsdam
    Beiträge
    44
    Aber du bist dir sicher das dein LDAP auf Port 389 läuft?
    Mach mal nen telnet "localhost 389"

    Nebenbei kannst du ja mal die Einträge in deiner ldap.conf und slapd.conf überprüfen!
    Wenn das mit Telnet erfolgreich verläuft liegt dein Fehler zu 99% hier!

  7. #7
    Tuxaner
    Registriert seit
    Jan 2002
    Ort
    Berlin
    Beiträge
    96
    @OvermindTom: Du scheinst ziemlich genau eine Ahnung zu haben, wie diese Dateien auszusehen haben. ...

    Also ich habe mir die beiden mal angesehen. Die ldap.conf scheint ok zu sein:

    # host 192.168.102.13
    # ldap_version 2
    # base dc=samba, dc=local
    # uri ldap://localhost/

    Bei der slapd.conf sieht das schon etwas anders aus. Im Groben steht hier:

    # suffix "dc=samba,dc=local"
    # rootdn "cn=admin,dc=samba,dc=local"
    #
    # access to attr=userPassword
    # by self read
    # by anonymous auth
    # by dn="cn=admin,dc=samba,dc=local" write
    # by * none
    ## <---- BEGINN: Auskommentiert
    ## access to attribute=deliveryMode
    ## by dn="cn=admin,dc=samba,dc=local" write
    ## by self write
    ## by * none
    ## ENDE: Auskommentiert ---->
    # access to *
    # by dn="cn=admin,dc=samba,dc=local" write
    # by * read
    #
    # #{START:Samba - Erweiterung der ACLs:
    # #[allow the 'ldap admin dn' access, but deny everyone else]
    # access to attrs=lmPassword,ntPassword
    # by dn="cn=admin,dc=samba,dc=local" write
    # by * none
    ##} ENDE: Samba - Erweiterung der ACLs:

    Hier bin ich mir nicht sicher, warum mal attr, attribute oder attrs steht. Ist damit stets dasselbe gemeint? Oder liegt hier der Fehler?

    Übrigends: Telnet lief auf Anhieb. Ich konnte zumindest eine Verbindung aufbauen. ...
    »Die Geduld nicht zu verlieren,
    auch wenn es unmöglich scheint - das ist Geduld!«

  8. #8
    Registrierter Benutzer
    Registriert seit
    Dec 2000
    Ort
    Potsdam
    Beiträge
    44
    Hmmm,

    lass und das ganze mal umkrempeln! Sichere dir mal deine beiden Files weg und mach mal nen paar Änderungen

    ldap.conf
    -----------
    BASE dc=linux, dc=org
    URI ldap://10.128.11.176:389 ldap://localhost:389



    slapd.conf
    ------------
    include /etc/openldap/schema/core.schema
    include /etc/openldap/schema/cosine.schema
    include /etc/openldap/schema/nis.schema
    include /etc/openldap/schema/inetorgperson.schema
    include /etc/openldap/schema/samba.schema <--- die findest du in den Sourcen von Samba

    pidfile /var/run/slapd.pid
    argsfile /var/run/spapd.args

    database ldbm

    suffix "dc=linux,dc=org"
    rootdn "cn=admin,dc=linux,dc=org"
    rootpw {SSHA}kIYS3n1VWJP7mNyB8QdQMjbKMYPrp/pp <--- wird erzeugt mit slappasswd (damit es nicht im Klartext dasteht)
    directory /var/lib/ldap
    index objectClass eq
    loglevel 0
    access to attrs=userPassword,lmPassword,ntPassword
    by self write
    by * auth
    access to * by * read

    -------------------------------------------------
    Passe mal deine Config Dateien so an oder erstelle Sie neu, je nachdem was schneller geht!
    Son paar Replikationssachen hab ich rausgeschnitten!
    Deine Dateien haben mich ein wenig verwirrt

  9. #9
    Tuxaner
    Registriert seit
    Jan 2002
    Ort
    Berlin
    Beiträge
    96
    OK.

    ldap.conf
    -----------

    # host 192.168.102.13
    # base dc=samba,dc=local
    # uri ldap://192.168.102.13:389 ldap://localhost:389


    sladd.conf
    -------------

    # includes ...
    #
    # pidfile /var/run/slapd.pid
    # argsfile /var/run/slapd.args
    #
    # database ldbm
    # suffix "dc=samba,dc=local"
    # rootdn "cn=admin,dc=samba,dc=local"
    # rootpw --ein verschlüsseltes Passwort, bei dem ich mich hoffentlich nicht verschrieben habe--
    # directory /etc/openldap/db
    # index objectClass eq
    # loglevel 0
    #
    # access to attrs=userPassword,lmPassword,ntPassword
    # by self write
    # by * auth
    # access to * by * read

    Wie kann ich jetzt schnell testen, ob es jetzt funzt? Ich versuche es stets mit smbpasswd oder "pdbedit -l". Bei beiden bekomme ich noch immer:

    # Bind failed: Can't contact LDAP server

    Hm. ... Was ist eigentlich jetzt der große Unterschied zwischen den Konfigurationsdateien?

    Wie gesagt: Das Java-Tool funktioniert noch immer und auch ldapsearch liefert Ergebnisse. ...
    Geändert von mykleines (19.11.02 um 11:41 Uhr)
    »Die Geduld nicht zu verlieren,
    auch wenn es unmöglich scheint - das ist Geduld!«

  10. #10
    Registrierter Benutzer
    Registriert seit
    Dec 2000
    Ort
    Potsdam
    Beiträge
    44
    Ich glaub ich habs !
    Du hast sichlich noch keine Rechte auf die tdb-Tabelle die braucht man aber obwohl man die Daten später in LDAP speichert!
    Gib mal smbpasswd -w <passwort>

    Und dann kannst du deine User mit pdbedit hinzufügen!
    ./pdbedit -a -u root

  11. #11
    Tuxaner
    Registriert seit
    Jan 2002
    Ort
    Berlin
    Beiträge
    96
    Ok.

    # moon:~# smbpasswd -w samba
    # Setting stored password for "cn=admin,dc=samba,dc=local" in secrets.tdb
    # moon:~# pdbedit -a -u admin
    # New SMB password:
    # Retype new SMB password:
    # Bind failed: Can't contact LDAP Server
    # Unable to add user! (does it already exist?)
    »Die Geduld nicht zu verlieren,
    auch wenn es unmöglich scheint - das ist Geduld!«

  12. #12
    Registrierter Benutzer
    Registriert seit
    Dec 2000
    Ort
    Potsdam
    Beiträge
    44
    Mit pdbedit erweiterst du die Posix Accounts um die Samba-Attribute!
    Das heisst der User muss im System existieren! Ist das der Fall?

    Um auszuschließen das es am Samba liegt könntest du ja mal die Sourcen
    von Samba herrunterladen und übersetzten!

    Kurz:

    /etc/init.d/samba stop

    tar zxvf samba2.x.x.tar.gz
    cd /tmp/samba2.x.x/source
    ./configure --with-ldapsam
    make
    make install

    cd /usr/local/samba/lib/
    --> erstellen einer smb.conf mit folgendem Inhalt
    [global]
    workgroup = ldapsmb
    encrypt passwords = yes
    domain logons = yes
    domain master = yes

    ldap server = localhost
    ldap port = 389
    ldap suffix = dc=linux,dc=org
    ldap admin dn = cn=admin,dc=linux,dc=org
    ldap filter = (&(objectclass=sambaaccount)(uid=%u))
    ldap ssl = no

    [homes]
    browseable = no
    valid users = %S
    writeable = yes

    cd /usr/local/samba/bin
    ./smbpasswd -w <password> <--- wichtig

    cd /usr/local/samba/sbin
    ./smbd -D
    ./nmbd -D


    und dann versuchst du das pdbedit nochmal!
    Wäre doch gelacht wenn wir ihn nicht überzeugt bekommen!

  13. #13
    Tuxaner
    Registriert seit
    Jan 2002
    Ort
    Berlin
    Beiträge
    96
    Wenn es keinen anderen Ausweg gibt, werde ich Samba wohl neu übersetzen müssen. Hatte damit (allgemein) bisher allerdings wenig Erfolg.

    Ich habe mir gerade eine kleine *.ldif-Datei angelegt, in der alle nötigen (hoffe ich) Daten für einen neuen Besitzer enthalten sind.

    # moon:~# ldapadd -D "cn=admin,dc=samba,dc=local" -W -s user.ldif
    # ldap_ssl_interactive_bind_s: No such attribute

    ??? Was soll mir das sagen?

    Und: Der user admin existiert. ...
    »Die Geduld nicht zu verlieren,
    auch wenn es unmöglich scheint - das ist Geduld!«

  14. #14
    Registrierter Benutzer
    Registriert seit
    Dec 2000
    Ort
    Potsdam
    Beiträge
    44
    Wow, so eine Meldung hab ich noch nicht bekommen
    Sieht aber so aus als würde dein ldapadd versuchen über SSL auf dein LDAP zuzugreifen!
    Wie hast du LDAP übersetzt/installiert?
    Und was steht in der LDIF Datei?

    Wichtig für eine User im LDIF-File zur Anmeldung ist nur ...

    dn
    objectClass
    cn
    uid
    uidNumber
    gidNumber
    homeDirectory
    loginShell

    Da fällt mir noch ein hast du eigentlich schon deine nsswitch.conf geändert?

    passwd: files ldap
    group: files ldap

    das musst du nämlich tun damit Linux die Daten aus dem LDAP auslesen kann!
    Überprüfen kannst du das dann mit

    getent passwd (ggf musst du noch deinen NSCD [NameServiceCachingDaemon] deaktivieren)

  15. #15
    Tuxaner
    Registriert seit
    Jan 2002
    Ort
    Berlin
    Beiträge
    96
    Hi,

    Samba 2.2.6 frisch kompiliert, smb.conf erstellt und angepasst. Samba gestartet. "smbpasswd -w <passwd>" ausgeführt und akzeptiert.

    # moon:~# pdbedit -a -u ldapadmin
    # New SMB Password:
    # Retype new password:
    # username: ldapadmin
    # user ID/Group: 506/0
    # user RID/GRID: 2012/1001
    # Full Name:
    # Home Directory: \\\ldapadmin
    # HomeDir Drive:
    # Logon Script:
    # Profile Path: \\\ldapadmin\profile

    Das scheint soweit funktioniert zu haben.

    Die nsswitch.conf sieht so aus:

    # passwd: files ldap
    # group: files ldap
    #
    # hosts: files dns
    # networks: files dns
    #
    # etc

    Der nscd ist ebenfalls deaktiviert und "getent passwd" liefert mir den Inhalt der /etc/passwd. Und die ldif-Datei sieht so aus:

    # dn: cn=sascha,ou=user,dc=samba,dc=junits
    # cn: sascha
    # objectclass: organizationalRole
    # objectclass: posixAccount
    # uid: sascha
    # uidnumber: entspricht UserID
    # gidnumber: enspricht GruppenID
    # loginShell: /bin/bash
    # homeDirectory: /daten/home/user/sascha

    Und bevor ich jetzt noch mehr Fehler mache. Wie gehe ich am Dümmsten vor, wenn ich neue Benutzer (und Maschinen-)Accounts anlegen möchte?
    Geändert von mykleines (19.11.02 um 13:27 Uhr)
    »Die Geduld nicht zu verlieren,
    auch wenn es unmöglich scheint - das ist Geduld!«

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •