Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

OpenLDAP - Anmeldung auf Client mit beliebigen oder ohne Passwort möglich ...

Frage Linux

Mitglied: ccaero

ccaero (Level 1) - Jetzt verbinden

09.11.2010 um 22:45 Uhr, 3367 Aufrufe

Ich habe habe auf meinem Debian-Lenny-Server einen OpenLDAP-Server augesetzt und möchte mich von einem Linux-Client über LDAP-Anmelden.
Die Installation der Komponeten hat problemlos funktioniert.
Allerdings akzeptiert der Client jedes x-beliebiges Password als gültiges LDAP-Password (egal ob korrekt oder nicht).
Als Client verwende ich ebenfalls Debian Lenny mit libnss-ldap und libpam-ldap.

Hallo,

ich habe in meinem LAN auf meinem Debian-Lenny-Server einen OpenLDAP-Server installiert.
LDAP möchte ich später als Backend für SAMBA verwenden, sowie als Benutzer-Datenbank für Linux-Clients.
Später möchte ich auch DNS und DHCP ins LDAP integrieren.

Fürn Anfang reicht mir schon mal wenn die Anmeldung auf Linux-Clients per LDAP funktioniert.

Den LDAP-Server habe ich mit "apt-get install slapd ldap-utils" installiert und anschließend mit "dpkg-reconfigure slapd" konfiguriert.
Anschließend habe ich noch einige kleinigkeiten händisch an der slapd.conf geändernt (Schemate hinzugefügt, Root-DN angepasst).

Der Server startet einwandfrei und ich kann auch mit den ldap-utils sowie mit JXplorer drauf zugreifen und als Admin auch änderungen durchführen.


Danach habe ich ein frischen Debian Lenny in einer VM augesetzte (Standart-Installation ohne GUI) und mit
"apt-get install libnss-ldapd" den LDAP-Client installiert und gleich konfiguriert.

nscd habe ich gleich mit "apt-get purge nscd" wieder gelöscht um Fehlerquellen mal von vornhinein auszuschließen.
Die "/etc/nsswitch.conf" wurde durch das LDAP-Client-Setup bereits korrekt eingestellt (bei passwd, groups und shadow "ldap" hinzugefügt), so das ich hier nicht nacharbeiten hab müssen.
Nur die Config-Datein "common-auth" "common-account" "common-session" und "common-password" im Ordner "/etc/pam.d" habe ich manuell bearbeiten müssen.

Sicherheitshalber habe ich nach den Änderungen die Client-VM neugestartet.
Nach dem Neustart habe ich gleich versucht mich mit meinem neu angelegten LDAP-User "testuser" einzuloggen, was auch wunderbar funktioniert hat.
"getent passwd" und "getent groups" zeigen auch die LDAP-User und Gruppen korrekt an.

Allerding, habe ich bemerkt das der Login mit dem User "testuser" mit jedem X-bliebigen Passwort funktioniert und das schmeißt natürlich jedes Sicherheitskonzept in den Kübel.
Auch der Befehl "passswd" liefert einen Fehler:
"passwd: Berechtigung verweigert
passwd: password unchanged"
Einloggen per SSH auf die Client-Maschine funktioniert auch nicht ("Access denied" nach der Password-Eingabe).

Hier mal meine Config-Dateien:

"/etc/nss-client.conf" auf Client:
01.
# nss-ldapd configuration file. See nss-ldapd.conf(5) 
02.
# for details. 
03.
 
04.
# The user and group nslcd should run as. 
05.
uid nslcd 
06.
gid nslcd 
07.
 
08.
# The location at which the LDAP server(s) should be reachable. 
09.
uri ldap://mastertux.cc-network.at/ 
10.
 
11.
# The search base that will be used for all queries. 
12.
base dc=cc-network,dc=at 
13.
 
14.
# The LDAP protocol version to use. 
15.
#ldap_version 3 
16.
 
17.
# The DN to bind with for normal lookups. 
18.
#binddn cn=annonymous,dc=example,dc=net 
19.
#bindpw secret 
20.
 
21.
# The search scope. 
22.
#scope sub
"/etc/pam_ldap.conf" auf Client
01.
# the configuration of this file will be done by debconf as long as the 
02.
# first line of the file says '###DEBCONF###' 
03.
04.
# you should use dpkg-reconfigure to configure this file 
05.
06.
# @(#)$Id: pam_ldap.conf,v 1.38 2006/05/15 08:13:31 lukeh Exp $ 
07.
08.
# This is the configuration file for the LDAP nameservice 
09.
# switch library and the LDAP PAM module. 
10.
11.
# PADL Software 
12.
# http://www.padl.com 
13.
14.
 
15.
# Your LDAP server. Must be resolvable without using LDAP. 
16.
# Multiple hosts may be specified, each separated by a  
17.
# space. How long nss_ldap takes to failover depends on 
18.
# whether your LDAP client library supports configurable 
19.
# network or connect timeouts (see bind_timelimit). 
20.
#host 127.0.0.1 
21.
 
22.
# The distinguished name of the search base. 
23.
base dc=cc-network,dc=at 
24.
 
25.
# Another way to specify your LDAP server is to provide an 
26.
uri ldapi://mastertux.cc-network.at/ 
27.
# Unix Domain Sockets to connect to a local LDAP Server. 
28.
#uri ldap://127.0.0.1/ 
29.
#uri ldaps://127.0.0.1/    
30.
#uri ldapi://%2fvar%2frun%2fldapi_sock/ 
31.
# Note: %2f encodes the '/' used as directory separator 
32.
 
33.
# The LDAP version to use (defaults to 3 
34.
# if supported by client library) 
35.
ldap_version 3 
36.
 
37.
# Check the 'authorizedService' attribute for access 
38.
# control 
39.
# Default is no; if set to yes, and the user has no 
40.
# value for the authorizedService attribute, and 
41.
# pam_ldap is configured for account management 
42.
# (authorization) then the user will not be allowed 
43.
# to login. 
44.
pam_check_service_attr yes 
45.
 
46.
# HEADS UP: the pam_crypt, pam_nds_passwd, 
47.
# and pam_ad_passwd options are no 
48.
# longer supported. 
49.
50.
# Do not hash the password at all; presume 
51.
# the directory server will do it, if 
52.
# necessary. This is the default. 
53.
pam_password crypt
"/etc/pam.d/common-auth" auf Client
01.
02.
# /etc/pam.d/common-auth - authentication settings common to all services 
03.
04.
# This file is included from other service-specific PAM config files, 
05.
# and should contain a list of the authentication modules that define 
06.
# the central authentication scheme for use on the system 
07.
# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the 
08.
# traditional Unix authentication mechanisms. 
09.
10.
auth	sufficient	pam_unix.so nullok_secure 
11.
auth	sufficient	pam_ldap.so
"/etc/pam.d/common-account" auf Client
01.
02.
# /etc/pam.d/common-account - authorization settings common to all services 
03.
04.
# This file is included from other service-specific PAM config files, 
05.
# and should contain a list of the authorization modules that define 
06.
# the central access policy for use on the system.  The default is to 
07.
# only deny service to users whose accounts are expired in /etc/shadow. 
08.
09.
account sufficient	pam_ldap.so 
10.
account	sufficient	pam_unix.so
"/etc/pam.d/common-session" auf Client
01.
02.
# /etc/pam.d/common-session - session-related modules common to all services 
03.
04.
# This file is included from other service-specific PAM config files, 
05.
# and should contain a list of modules that define tasks to be performed 
06.
# at the start and end of sessions of *any* kind (both interactive and 
07.
# non-interactive).  The default is pam_unix. 
08.
09.
session sufficient	pam_ldap.so 
10.
session	sufficient	pam_unix.so
"/etc/pam.d/common-password" auf Client
01.
02.
# /etc/pam.d/common-password - password-related modules common to all services 
03.
04.
# This file is included from other service-specific PAM config files, 
05.
# and should contain a list of modules that define the services to be 
06.
# used to change user passwords.  The default is pam_unix. 
07.
 
08.
# Explanation of pam_unix options: 
09.
10.
# The "nullok" option allows users to change an empty password, else 
11.
# empty passwords are treated as locked accounts. 
12.
13.
# The "md5" option enables MD5 passwords.  Without this option, the 
14.
# default is Unix crypt. 
15.
16.
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in 
17.
# login.defs. 
18.
19.
# You can also use the "min" option to enforce the length of the new 
20.
# password. 
21.
22.
# See the pam_unix manpage for other options. 
23.
 
24.
password   sufficient	pam_unix.so nullok obscure md5 
25.
password   sufficient	pam_ldap.so 
26.
 
27.
# Alternate strength checking for password. Note that this 
28.
# requires the libpam-cracklib package to be installed. 
29.
# You will need to comment out the password line above and 
30.
# uncomment the next two in order to use this. 
31.
# (Replaces the `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH') 
32.
33.
# password required	  pam_cracklib.so retry=3 minlen=6 difok=3 
34.
# password required	  pam_unix.so use_authtok nullok md5

"/etc/ldap/slapd.conf" auf Server
01.
# This is the main slapd configuration file. See slapd.conf(5) for more 
02.
# info on the configuration options. 
03.
 
04.
####################################################################### 
05.
# Global Directives: 
06.
 
07.
# Features to permit 
08.
#allow bind_v2 
09.
 
10.
# Schema and objectClass definitions 
11.
include         /etc/ldap/schema/core.schema 
12.
include         /etc/ldap/schema/cosine.schema 
13.
include         /etc/ldap/schema/nis.schema 
14.
include         /etc/ldap/schema/inetorgperson.schema 
15.
include		/etc/ldap/schema/samba.schema 
16.
include		/etc/ldap/schema/misc.schema 
17.
 
18.
# Where the pid file is put. The init.d script 
19.
# will not stop the server if you change this. 
20.
pidfile         /var/run/slapd/slapd.pid 
21.
 
22.
# List of arguments that were passed to the server 
23.
argsfile        /var/run/slapd/slapd.args 
24.
 
25.
# Read slapd.conf(5) for possible values 
26.
loglevel        none 
27.
 
28.
# Where the dynamically loaded modules are stored 
29.
modulepath	/usr/lib/ldap 
30.
moduleload	back_hdb 
31.
 
32.
# The maximum number of entries that is returned for a search operation 
33.
sizelimit 500 
34.
 
35.
# The tool-threads parameter sets the actual amount of cpu's that is used 
36.
# for indexing. 
37.
tool-threads 1 
38.
 
39.
####################################################################### 
40.
# Specific Backend Directives for hdb: 
41.
# Backend specific directives apply to this backend until another 
42.
# 'backend' directive occurs 
43.
backend		hdb 
44.
 
45.
####################################################################### 
46.
# Specific Backend Directives for 'other': 
47.
# Backend specific directives apply to this backend until another 
48.
# 'backend' directive occurs 
49.
#backend		<other> 
50.
 
51.
####################################################################### 
52.
# Specific Directives for database #1, of type hdb: 
53.
# Database specific directives apply to this databasse until another 
54.
# 'database' directive occurs 
55.
database        hdb 
56.
 
57.
# The base of your directory in database #1 
58.
suffix          "dc=cc-network,dc=at" 
59.
 
60.
# rootdn directive for specifying a superuser on the database. This is needed 
61.
# for syncrepl. 
62.
rootdn          "cn=admin,ou=special,dc=cc-network,dc=at" 
63.
rootpw		xxx 
64.
 
65.
 
66.
# Where the database file are physically stored for database #1 
67.
directory       "/var/lib/ldap" 
68.
 
69.
# The dbconfig settings are used to generate a DB_CONFIG file the first 
70.
# time slapd starts.  They do NOT override existing an existing DB_CONFIG 
71.
# file.  You should therefore change these settings in DB_CONFIG directly 
72.
# or remove DB_CONFIG and restart slapd for changes to take effect. 
73.
 
74.
# For the Debian package we use 2MB as default but be sure to update this 
75.
# value if you have plenty of RAM 
76.
dbconfig set_cachesize 0 2097152 0 
77.
 
78.
# Sven Hartge reported that he had to set this value incredibly high 
79.
# to get slapd running at all. See http://bugs.debian.org/303057 for more 
80.
# information. 
81.
 
82.
# Number of objects that can be locked at the same time. 
83.
dbconfig set_lk_max_objects 1500 
84.
# Number of locks (both requested and granted) 
85.
dbconfig set_lk_max_locks 1500 
86.
# Number of lockers 
87.
dbconfig set_lk_max_lockers 1500 
88.
 
89.
# Indexing options for database #1 
90.
index           objectClass eq 
91.
 
92.
# Save the time that the entry gets modified, for database #1 
93.
lastmod         on 
94.
 
95.
# Checkpoint the BerkeleyDB database periodically in case of system 
96.
# failure and to speed slapd shutdown. 
97.
checkpoint      512 30 
98.
 
99.
# Where to store the replica logs for database #1 
100.
# replogfile	/var/lib/ldap/replog 
101.
 
102.
# The userPassword by default can be changed 
103.
# by the entry owning it if they are authenticated. 
104.
# Others should not be able to see it, except the 
105.
# admin entry below 
106.
# These access lines apply to database #1 only 
107.
access to attrs=userPassword,shadowLastChange 
108.
        by dn="cn=admin,ou=special,dc=cc-network,dc=at" write 
109.
        by anonymous auth 
110.
        by self write 
111.
        by * none 
112.
 
113.
# Ensure read access to the base for things like 
114.
# supportedSASLMechanisms.  Without this you may 
115.
# have problems with SASL not knowing what 
116.
# mechanisms are available and the like. 
117.
# Note that this is covered by the 'access to *' 
118.
# ACL below too but if you change that as people 
119.
# are wont to do you'll still need this if you 
120.
# want SASL (and possible other things) to work  
121.
# happily. 
122.
access to dn.base="" by * read 
123.
 
124.
# The admin dn has full write access, everyone else 
125.
# can read everything. 
126.
access to * 
127.
        by dn="cn=admin,ou=special,dc=cc-network,dc=at" write 
128.
        by * read 
129.
 
130.
# For Netscape Roaming support, each user gets a roaming 
131.
# profile for which they have write access to 
132.
#access to dn=".*,ou=Roaming,o=morsnet" 
133.
#        by dn="cn=admin,ou=special,dc=cc-network,dc=at" write 
134.
#        by dnattr=owner write 
135.
 
136.
####################################################################### 
137.
# Specific Directives for database #2, of type 'other' (can be hdb too): 
138.
# Database specific directives apply to this databasse until another 
139.
# 'database' directive occurs 
140.
#database        <other> 
141.
 
142.
# The base of your directory for database #2 
143.
#suffix		"dc=debian,dc=org"
Und jetzt noch die Struktur meines LDAP-Test.Verzeichniss aus ldif-Export:
01.
version: 1 
02.
dn: dc=cc-network,dc=at 
03.
objectClass: top 
04.
objectClass: dcObject 
05.
objectClass: organization 
06.
dc: cc-network 
07.
o: cc-network.at 
08.
 
09.
dn: ou=birkenweg2,dc=cc-network,dc=at 
10.
objectClass: organizationalUnit 
11.
description: Standort Birkenweg 2 Hollabrunn 
12.
ou: birkenweg2 
13.
 
14.
dn: ou=users,ou=birkenweg2,dc=cc-network,dc=at 
15.
objectClass: organizationalUnit 
16.
description: Birkenweg2 Benutzer 
17.
ou: users 
18.
 
19.
dn: uid=testuser,ou=users,ou=birkenweg2,dc=cc-network,dc=at 
20.
objectClass: inetOrgPerson 
21.
objectClass: organizationalPerson 
22.
objectClass: posixAccount 
23.
objectClass: shadowAccount 
24.
objectClass: person 
25.
objectClass: top 
26.
cn: testuser 
27.
gidNumber: 1500 
28.
givenName: Test 
29.
homeDirectory: /home/testuser 
30.
loginShell: /bin/bash 
31.
sn: User 
32.
uid: testuser 
33.
uidNumber: 1200 
34.
userPassword:: xxx 
35.
 
36.
dn: ou=groups,ou=birkenweg2,dc=cc-network,dc=at 
37.
objectClass: organizationalUnit 
38.
description: Birkenweg2 Gruppen 
39.
ou: groups 
40.
 
41.
dn: cn=users,ou=groups,ou=birkenweg2,dc=cc-network,dc=at 
42.
objectClass: posixGroup 
43.
objectClass: top 
44.
cn: users 
45.
gidNumber: 1500 
46.
 
47.
dn: ou=computers,ou=birkenweg2,dc=cc-network,dc=at 
48.
objectClass: organizationalUnit 
49.
description: Birkenweg2 SAMBA Maschinenaccounts 
50.
ou: computers 
51.
 
52.
dn: ou=internet,dc=cc-network,dc=at 
53.
objectClass: organizationalUnit 
54.
description: Container fuer externe User 
55.
ou: internet 
56.
 
57.
dn: ou=users,ou=internet,dc=cc-network,dc=at 
58.
objectClass: organizationalUnit 
59.
description: Externe Benutzer 
60.
ou: users 
61.
 
62.
dn: ou=groups,ou=internet,dc=cc-network,dc=at 
63.
objectClass: organizationalUnit 
64.
description: Externe Gruppen 
65.
ou: groups 
66.
 
67.
dn: ou=special,dc=cc-network,dc=at 
68.
objectClass: organizationalUnit 
69.
description: Container fuer Spezialobjekte 
70.
ou: special 
71.
 
72.
dn: cn=admin,ou=special,dc=cc-network,dc=at 
73.
objectClass: simpleSecurityObject 
74.
objectClass: organizationalRole 
75.
cn: admin 
76.
description: LDAP administrator 
77.
userPassword:: xxx 
78.
 
79.
dn: cn=proxyuser,ou=special,dc=cc-network,dc=at 
80.
objectClass: simpleSecurityObject 
81.
objectClass: organizationalRole 
82.
objectClass: top 
83.
cn: proxyuser 
84.
description:: VXNlciBmw7xyIGFub255bWUgTERBUC1BYmZyYWdlbg== 
85.
userPassword:: xxx 
86.
 
87.
dn: ou=service,dc=cc-network,dc=at 
88.
objectClass: organizationalUnit 
89.
description: Container fuer Dienstobjecte 
90.
ou: service
Die Passwörter sind als SSHA abgelegt, hier habe ich sie ausgeblendet.

Hätte vl hier jemand eine Idee wo das Problem liegen könnte? Ich vermute das das Problem an PAM liegt, nur mit PAM habe ich leider nicht soviel Erfahrung.

Danke im vorraus ;)
Neuester Wissensbeitrag
DSL, VDSL

Telekom blockiert immer noch den Port 7547 in ihrem Netz

(3)

Erfahrungsbericht von joachim57 zum Thema DSL, VDSL ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...