Zum Inhalt springen

LDAP - Authentifizierung


merenda

Empfohlene Beiträge

Hallo,

so langsam fang ich das LDAP - Konzept zu verstehen.

Nur die Authentifizierung will nicht so ganz funktionieren ?!

Also LDAP Funktioniert ich hab auch schon einige User über LDIF auf dem LDAP-Server angelegt. Unter anderem auch den folgenden User:

dn: uid=ldapuser2,ou=Mitarbeiter,ou=users,o=avci,c=de

objectclass: top

objectclass: person

objectclass: inetorgPerson

objectclass: posixAccount

objectclass: organizationalPerson

cn: LDAP Testuser2

sn: ldap2

uid: ldapuser2

uidNumber: 506

gidNumber: 100

homeDirectory: /home/ldapuser2

userPassword: test2

loginShell: /bin/bash
Was habe ich gemacht. Auf einen Ldap Server A habe ich den oben genanten User angelegt. Dann habe ich mittels Yast auf einem Client B den LDAP Server mittels Yast editiert
yast aufgerunfen --> Use LDAP ausgewählt --> LDAP base DN eingetragen --> IP-Adresse des LDAP - Servers eingetragen -->  LDAP TLS/SSL ausgewält --> Finish.

Nach dem dies erledigt war habe ich versucht mittels Putty mich mit dem User ldapuser2 auf der dem Client B einzulogen. Er Promptet mich nach dem Passwort aber wenn ich das Passwort eingebe nihmt er das nicht an.

Hat jemand eine Ahnung was ich falsch gemacht haben könnte ?!

Danke schon mal für die Hilfe

Gruß

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

danke erst mal für dein Post. Also die Dateien /var/log/auth* || /var/log/ssh* sind nicht vorhaden, dafür ist die /var/log/message da. Und Sie gibt folgendes aus, wenn ich versuche, mich mit dem User ldapuser2 über Putty anzumelden:

Jun 22 09:29:43 mars sshd[6861]: Illegal user ldapuser2 from ::ffff:10.206.155.144

Jun 22 09:29:43 mars sshd[6861]: Failed none for illegal user ldapuser2 from ::ffff:10.206.155.144 port 4304 ssh2

Jun 22 09:29:58 mars sshd[6865]: Illegal user ldapuser2 from ::ffff:10.206.155.144

Jun 22 09:29:58 mars sshd[6865]: Failed none for illegal user ldapuser2 from ::ffff:10.206.155.144 port 4305 ssh2

:confused:

Warum sagt er illegal User ? Kann ich irgend wie testen oder client überhaupt funktioniert ?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Melde Dich am Client an und füre folgenden Befehl aus:

getent passwd
Taucht in dieser Liste Dein LDAP-User auf? Falls ja scheint LDAP richtig integriert zu sein. Ich selbst nutze normalerweise nicht Yast um LDAP-User anzulegen sondern phpldapadmin (phpldapadmin.sf.net). Was mir aber gerade noch auffällt ist, dass die Klasse 'shadowAccount' nicht genutzt wird. Ein
getent shadow
sollte Deinen LDAP-User nicht finden und deswegen klappt auch die Anmeldung nicht. Ich hänge hier mal ein Beispiel an wie z.B. mein LDAP-Account aussieht. Lass Dich aber nicht davon stören, dass da noch mein Samba-Account und auch meine Postfix-/Amavis-Einstellungen drin stehen:

# Eintrag 1: uid=steffen,ou=People,ou=Auth,dc=Rock,dc=Local

dn: uid=steffen,ou=People,ou=Auth,dc=Rock,dc=Local

objectClass: top

objectClass: inetOrgPerson

objectClass: posixAccount

objectClass: shadowAccount

objectClass: sambaSamAccount

objectClass: amavisAccount

cn: steffen

sn: steffen

uid: steffen

uidNumber: 1002

gidNumber: 513

homeDirectory: /home/steffen

loginShell: /bin/bash

gecos: System User

sambaSID: S-1-5-21-137636792-4063881662-3838030484-3004

sambaPrimaryGroupSID: S-1-5-21-137636792-4063881662-3838030484-513

displayName: Steffen Schoch

sambaKickoffTime: 0

sambaPasswordHistory: 000000000000000000000000000000000000000000000000000000

 0000000000

sambaLogonHours: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

sambaAcctFlags: [U          ]

sambaPwdCanChange: 1115460024

sambaPwdMustChange: 2147483647

sambaLMPassword: 9C722E2517CAE830AAD3B435B51404EE

sambaNTPassword: 11E8485C17199DAAEA9F57BB466C3EB9

sambaPwdLastSet: 1115460024

userPassword: {SSHA}X+qlxteo2U9S7A8rzz9BM4lcnTeu1HPX

amavisSpamModifiesSubj: TRUE

mail: XXXXXX@XXX.XXX

mail: XXXXXX@XXX.XX

mail: XX.XXXX@XXX.XX

mail: XX.XXXX@XXX.XXX

mail: steffen@rock.local

Nicht nötig ist sambaSamAccount und amavisAccount für eine Linux Authentifizierung.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi, auch dir danke für dein Post.

Also ich hab das mal ausgetestet. Mit

getent passwd
und
getent shadow

In beiden Fällen, wurde ist der User nicht aufgetaucht.

Den User hab ich mit ldapadd angelet mittels dem LDIF - Format (siehe oben).

Ich hab nur den LDAP-Client mit Yast konfiguriert.

Also habe ich das jetzt richtig verstaden ?

Der User: ldapuser2 muss "nur" auf dem LDAP-Server A vorhanden sein ? Und nicht auf dem LDAP-Client B ?

Gruß

Merenda

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm was steht den in /etc/pam.d/sshd ?

sind die ganzen pam Dateien auf ldap auth umgestellt?

Auf dem Server A oder auf dem Client B ? Ich poste mal alles:

LDAP-SERVER A

#%PAM-1.0

auth required   pam_unix2.so # set_secrpc

auth required   pam_nologin.so

auth required   pam_env.so

account required        pam_unix2.so

account required        pam_nologin.so

password required       pam_pwcheck.so

password required       pam_unix2.so    use_first_pass use_authtok

session required        pam_unix2.so    none     # trace or debug

session required        pam_limits.so
LDAP-CLIENT B
#%PAM-1.0

auth required   pam_unix2.so # set_secrpc

auth required   pam_nologin.so

auth required   pam_env.so

account required        pam_unix2.so

account required        pam_nologin.so

password required       pam_pwcheck.so

password required       pam_unix2.so    use_first_pass use_authtok

session required        pam_unix2.so    none     # trace or debug

session required        pam_limits.so

Link zu diesem Kommentar
Auf anderen Seiten teilen

Unter SuSE Linux sind keine Änderungen an den pam-Dateien notwendig - dass macht Yast alles für einen. Welches SuSE Linux ist eigentlich im Einsatz?

Auf dem Client muss der User mittels getent ... angezeigt werden, sonst klappt's nicht. Habe im ersten Thread mal nach ganz rechts gescrollt: da steht drin TLS aktiviert. Läuft das auch auf dem Server? Schalte TLS einfach mal ab und probier's dann nochmals.

Falls das dann immer noch nicht funktioniert hätte ich gerne mal einen Blick in folgende Dateien geworfen:

Server:

/etc/openldap/slapd.conf

Client:

/etc/nsswitch.conf

/etc/security/pam_unix2.conf

/etc/ldap.conf

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi, danke es funkt jetzt DANKE !!!! :D

Es lag am TLS. HURRA ....

Jetzt hab ich noch ein paar andere Fragen zum Thema LDAP - Authentifizierung:

- Stand Heute Authentifizieren sich die User Local an den einzelnen Maschinen via SSH (Private- / Public-Key

Verfahren). Kann man das im LDAP so einstellen, dass die User sich weiterhin mit den Private- / Public-Key

Verfahren einloggen können ? So das sie von der Umstellung nichts mitbekommen ?

- Für was ist TLS gut ? Braucht man das ?

- Wie ist das mit dem Home-Verzeichnisse. Gibt es eine Möglichkeit diese automatisch auf den Lokalen Maschinen

anzulegen, wenn ein neuer User auf dem LDAP-Server angelegt wird ? Oder muss man die Home-Verzeichnisse jedes

Mal händisch auf der Lokalen Maschinen Anlegen ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Antwort auf Frage 1: Ja, sollte möglich sein ;) siehe Doku ^^ Dazu muss meiner Meinung nach das Zertifikat eben nicht am Client selbst sondern am LDAP geprüft werden.

Antwort auf Frage 2: TLS = Transport Layer Security, damit werden die Credentials von Client zum Server SSL/TLS verschlüsselt übertragen. Für TLS muss der LDAP Server auf einem anderen Port hören, is glaub ich Port 6xx (bin zu faul zum portliste dursuchen :)). Achja, natürlich muss es der Server unterstützen.

Frage 3 kann ich leider nicht beantworten.

cu dummabua

Link zu diesem Kommentar
Auf anderen Seiten teilen

Skriptbar is fast alles. Sollte schon gehen, nur da is dann Handarbeit gefragt.

Ich fänds nur einfacher alle Home Verzeichnisse auf einem Server aufzuheben, is einfacher zum backupen und gegenseitig können die wenn die Verzeichnisse die richtigen berechtigungen haben eh nicht woanders reinsehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok ... ich denke ich werde das mal alles auprobieren. ICh danke euch aufjedefall für die hilfe. Die Authentifizirung funkt jetzt.

Da hätte ich noch ein anders Prob. Ich wollt jetzt mal den phpLDAPadmin testen. Leider habe ich da ein kleines Konfigurationsproblem mit dem phpLDAPadmin. Nach dem ich alles eingerichtet habe, kommt folgende Fehlermeldung, wenn ich mich versuche auf dem Server anzumelden:

Fehler phpLDAPadmin cannot safely encrypt & decrypt your 

sensitive information, because $blowfish_secret is not set in config.php. 

You need to edit config.php and set $blowfish_secret to some secret string now.
Weiß jemand an was das liegen kann ? Hier sind meine Einstellungen:
$i=0;

$servers = array();

$servers[$i]['name'] = 'TEST LDAP Server';

$servers[$i]['host'] = '10.206.59.87';

$servers[$i]['base'] = 'o=avci,c=de';

$servers[$i]['port'] = 389;

$servers[$i]['auth_type'] = 'cookie';

$servers[$i]['login_dn'] = 'cn=admin,o=avci,c=de';

$servers[$i]['login_pass'] = 'test';

$servers[$i]['tls'] = false;

$servers[$i]['low_bandwidth'] = false;

$servers[$i]['default_hash'] = 'md5';

$servers[$i]['login_attr'] = 'dn';

$servers[$i]['login_string'] = 'cn=admin,o=avci,c=de';

$servers[$i]['login_class'] = '';

$servers[$i]['read_only'] = false;

$servers[$i]['show_create'] = true;

$servers[$i]['enable_auto_uid_numbers'] = false;

$servers[$i]['auto_uid_number_mechanism'] = 'search';

$servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=example,dc=com';

$servers[$i]['auto_uid_number_min'] = 1000;

$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,

$servers[$i]['auto_uid_number_search_dn'] = '';dc=com';

$servers[$i]['auto_uid_number_search_dn_pass'] = '';

$servers[$i]['disable_anon_bind'] = false;

$servers[$i]['custom_pages_prefix'] = 'custom_';

$servers[$i]['unique_attrs_dn'] = '';

$servers[$i]['unique_attrs_dn_pass'] = '';


// If you want to configure additional LDAP servers, do so below.

$i++;

$servers[$i]['name'] = 'Another server';

$servers[$i]['host'] = '';

$servers[$i]['base'] = 'dc=example,dc=com';

$servers[$i]['port'] = 389;

$servers[$i]['auth_type'] = 'config';

$servers[$i]['login_dn'] = '';

$servers[$i]['login_pass'] = '';

$servers[$i]['tls'] = false;

$servers[$i]['low_bandwidth'] = false;

$servers[$i]['default_hash'] = 'crypt';

$servers[$i]['login_attr'] = 'dn';

$servers[$i]['login_class'] = '';

$servers[$i]['read_only'] = false;

$servers[$i]['show_create'] = true;

$servers[$i]['enable_auto_uid_numbers'] = false;

$servers[$i]['auto_uid_number_mechanism'] = 'search';

$servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=example,dc=com';

$servers[$i]['auto_uid_number_min'] = 1000;

$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';

$servers[$i]['unique_attrs_dn'] = '';

$servers[$i]['unique_attrs_dn_pass'] = '';

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ich habe hier einfach mal den Teil meiner Config angehängt mit dem es bei mir funktioniert. Der UID-Pool ist zunächst noch uninteressant, da kann also stehen was will.


$servers[$i]['name'] = 'Rock.Local';

$servers[$i]['host'] = 'localhost';

$servers[$i]['base'] = 'dc=Rock,dc=Local';

$servers[$i]['port'] = 389;

$servers[$i]['auth_type'] = 'config';

$servers[$i]['login_dn'] = 'cn=Manager,dc=Rock,dc=Local';

$servers[$i]['login_pass'] = 'blablabla';

$servers[$i]['tls'] = false;

$servers[$i]['low_bandwidth'] = false;

$servers[$i]['default_hash'] = 'crypt'; 

$servers[$i]['login_attr'] = 'dn';

$servers[$i]['login_string'] = 'uid=<username>,ou=People,dc=example,dc=com';

$servers[$i]['login_class'] = ''; 

$servers[$i]['read_only'] = false; 

$servers[$i]['show_create'] = true; 

$servers[$i]['enable_auto_uid_numbers'] = true;

$servers[$i]['auto_uid_number_mechanism'] = 'search';

$servers[$i]['auto_uid_number_search_base'] = 'ou=People,ou=Auth,dc=Rock,dc=Local';

$servers[$i]['auto_uid_number_min'] = 10000;

$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';

$servers[$i]['auto_uid_number_search_dn'] = '';

$servers[$i]['auto_uid_number_search_dn_pass'] = '';

$servers[$i]['disable_anon_bind'] = false;

$servers[$i]['custom_pages_prefix'] = 'custom_';

$servers[$i]['unique_attrs_dn'] = '';

$servers[$i]['unique_attrs_dn_pass'] = '';

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

danke für dein Post.

Also ich hab es gerade mit deinen Einstellugen Probiert und es hatte damit auch nicht funktioniert, immer noch gleiche Fehlermeldung.

Ich wollte gerade die Datei schliesen und da fiel mir folgender Eintrag auf:

/**

 * phpLDAPadmin can encrypt the content of sensitive cookies if you set this

 * to a big random string.

 */

$blowfish_secret = '';

Ich hab da einfach mal irgendwas eingetragen und siehe da, es hat funktioniert. Was für eine Version hast du ? Ich hab die Version phpLDAPadmin - 0.9.6.

Was mir gerade noch aufgefallen ist, wenn ich jetzt weitere Clients konfiguriere, sprich, wenn ich sie an dem LDAP - Server anbinde, dann sind ja da immer die gleichen User wie auf den anderen Clients.

Wie kann ich das Abschirmen, so das sich auf einem Client A nur User der Abteilung A, auf einem Client B nur User der Abteilung B u.s.w. authentifizieren können ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Fehler phpLDAPadmin cannot safely encrypt & decrypt your 

sensitive information, because $blowfish_secret is not set in config.php. 

You need to edit config.php and set $blowfish_secret to some secret string now.

Weiß jemand an was das liegen kann ?

Hier sind meine Einstellungen:

ist die Fehlermeldung nicht eindeutig? Als Erstes würde ich mal einen Blick in die config.php werfen und nach "$blowfish_secret" suchen - schaden kanns ja nicht :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Unterteilen kannst Du das ganze indem Du in LDAP ou bildest. Auf den jeweiligen Clients muss man dann halt in der LDAP Konfiguration die jeweilige ou angeben und nicht den Wurzelknoten. Wer's ganz sicher haben will muss dann halt noch am Berechtigungsmodel drehen, idR. reicht aber die 1. Variante bereits völlig aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Schlaubi, wie ich schon vorhin gepostet habe, es funktioniert. Aber danke für dein Post. :)

Leider weiß ich immer noch nicht wie ich das mit den Abschirmen der einzelen Abteilungen vornehme :(

Gruß

Merenda

Hups, da hätte ich mal den Browser reloaden sollen ;)

'ou' bezeichnet wenn ich mich recht erinnere eine Organisation{al} Unit sozusagen ein Container dort bildest du - wie Dr. Disk bereits erwähnte die einzelnen Abteilungen und steckt dort Gruppen und User hinein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ach ja, die phpldapversion die ich benutze ist die 0.9.6 - eigentlich die Gleiche wie bei Dir...
Häm hast du das mit dem blowfisch auch eingetragen ?!

Ok ... natürlich ... die OUs ! Jetzt bimmelt es :D Also ich hab schon eine Kleine Unterteilung Gemacht ou=users und ou=Partner (siehe Anhang).

Aber wo muss ich das eintragen ? in gehe mal stark davon aus in der /etc/ldap.conf, oder ?

Ich poste mal meine ldap.conf, wo muss ich das jetzt genau eintragen bzw. wie muss man das eintragen?!

# Your LDAP server. Must be resolvable without using LDAP.

host    10.206.155.144


# The distinguished name of the search base.

base    o=avci,c=de


# The LDAP version to use (defaults to 3

# if supported by client library)

ldap_version    3


# The port.

# Optional: default is 389.

port    389


# Hash password locally; required for University of

# Michigan LDAP server, and works with Netscape

# Directory Server if you're using the UNIX-Crypt

# hash mechanism and not using the NT Synchronization

# service.

pam_password    crypt


# OpenLDAP SSL mechanism

# start_tls mechanism uses the normal LDAP port, LDAPS typically 636

ssl     no

TLS_REQCERT     allow

nss_map_attribute       uniqueMember member

pam_filter      objectclass=posixAccount

nss_base_passwd o=avci,c=de

nss_base_shadow o=avci,c=de

nss_base_group  o=avci,c=de

#ssl on

Gruß

merenda

post-25816-14430447169877_thumb.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mein Blowfish Feld ist leer - habe bisher noch nie Bedarf gehabt da was reinzuschreiben...

Unten in der ldap.conf findest Du doch Einträge wie z.B. den folgenden: 'nss_base_passwd'. Da musst Du halt die entsprechende Basis reinschreiben für den Inhalt von passwd (und analog für die Gruppen usw.). Ein kleines Beispiel:

nss_base_passwd ou=People,ou=Einkauf,ou=Stuttgart,dc=Rock,dc=Local

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

ja es Hat gefunzt :D Cool ... DANKE !

Zwecks dem Thema "Homeverzeichnis Automatisch anlegen, wenn ein neuer User angelegt wird" habe ich mal weiter gesucht und ich bin auf folgendes gestoßen:

session  required       pam_mkhomedir.so skel=/etc/skel/ umask=0022

das muss man anscheinend in ein Pam-Modul eintragen, aber ich hab das in verschiedene Pam-Module eingetragen und es hat nicht gefunzt :confused: Sag das jemand irgend was ?!

Im Anhang habe ich eine Kleine LDAP-Struktur aufgebaut wie ich das gerne realiesieren würde, was meint ihr könnte ich das einfach so lassen oder soll ich da noch was ändern ?!?

Gruß

Merenda

post-25816-14430447170126_thumb.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...