Pierangelo Masarati wrote:
Quello che intendo dire e' che i files
/usr/local/etc/ldap.conf
/usr/local/etc/nss_ldap.conf
nonostante abbiano LDAP nel nome non hanno molto a che fare con OpenLDAP;
sono i files di configurazione di due client che usano LDAP.
ok, come suggerito in lista, ho utilizzato ktrace (tool simile ad
strace) per vedere quali file di cfg
venivano effettivamente cercati dalle librerie OpenLDAP, ed ho scoperto
che il file di configurazione
ldap.conf veniva cercato in /usr/local/etc/openldap/ldap.conf (e non
/usr/local/etc/ldap.conf come
pensavo io).
Dopo aver creato un file ldap.conf adeguato, sono (finalmente) riuscito
ad utilizzare ldapsearch
su ldaps.
/usr/local/etc/openldap/slapd.conf:
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/openldap.schema
include /usr/local/etc/openldap/schema/sudo.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
modulepath /usr/local/libexec/openldap
moduleload back_bdb
database bdb
suffix "dc=test,dc=org"
rootdn "cn=Manager,dc=test,dc=org"
rootpw {SSHA}FNoRa4/LVSCsUBLKz6LQjLcayzvMfOw/
directory /var/db/openldap-data
index objectClass eq
index uid pres,eq,sub
TLSVerifyClient never
#TLSCipherSuite HIGH:MEDIUM:+SSLv2
TLSCACertificateFile /usr/local/etc/openldap/cacert.pem
TLSCertificateFile /usr/local/etc/openldap/servercrt.pem
TLSCertificateKeyFile /usr/local/etc/openldap/serverkey.pem
#access to *
#by self write
#by users read
#by anonymous auth
/usr/local/etc/openldap/ldap.conf:
base dc=test,dc=org
uri ldaps://ferret.tomato.lan:636
bind_policy soft
TLS_REQCERT never
TLS_CERT /usr/local/etc/openldap/ldap.client.pem
TLS_KEY /usr/local/etc/openldap/ldap.client.key.pem
TLS_CACERT /usr/local/etc/openldap/cacert.pem
#TLS_CIPHER_SUITE HIGH:MEDIUM:+SSLv2
[EMAIL PROTECTED]:~ >ps -auxww | grep slapd
ldap 17893 0.0 1.4 45940 35800 p4 S+ 4:30PM 0:00.78
usr/local/libexec/slapd -h ldapi://%2fvar%2frun%2fopenldap%2fldapi/
ldap:/// ldaps:/// -s-1 -d256 -u ldap -g ldap
[EMAIL PROTECTED]:~ >ldapsearch -b "dc=test,dc=org"
# extended LDIF
#
# LDAPv3
# base <dc=test,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# test.org
dn: dc=test,dc=org
dc: test
objectClass: top
objectClass: domain
objectClass: domainRelatedObject
associatedDomain: test.org
# groups, test.org
dn: ou=groups,dc=test,dc=org
objectClass: top
objectClass: organizationalUnit
ou: groups
# people, test.org
dn: ou=people,dc=test,dc=org
objectClass: top
objectClass: organizationalUnit
ou: people
# StupidTest User, people, test.org
dn: cn=StupidTest User,ou=people,dc=test,dc=org
cn: StupidTest User
sn: Dummy
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
uid: testuser
gecos: TestUser
homeDirectory: /home/test
uidNumber: 1999
loginShell: /bin/csh
userPassword:: e1NTSEF9MzY2Z2w1OTZIMmhERlFUSTVTNjE1VmdhOU55ZzM4TDY=
gidNumber: 1666
# smtp_box, groups, test.org
dn: cn=smtp_box,ou=groups,dc=test,dc=org
objectClass: top
objectClass: posixGroup
gidNumber: 1666
cn: smtp_box
memberUid: cn=StupidTest User,ou=people,dc=test,dc=org
# testozzo, groups, test.org
dn: cn=testozzo,ou=groups,dc=test,dc=org
cn: testozzo
memberUid: test
memberUid: testuser
objectClass: top
objectClass: posixGroup
gidNumber: 1999
# testazza, groups, test.org
dn: cn=testazza,ou=groups,dc=test,dc=org
cn: testazza
memberUid: test
memberUid: testuser
objectClass: top
objectClass: posixGroup
gidNumber: 666
# SUDOers, test.org
dn: ou=SUDOers,dc=test,dc=org
objectClass: top
objectClass: organizationalUnit
ou: SUDOers
# defaults, SUDOers, test.org
dn: cn=defaults,ou=SUDOers,dc=test,dc=org
objectClass: top
objectClass: sudoRole
cn: defaults
description: Default sudoOption's go here
# piso, SUDOers, test.org
dn: cn=piso,ou=SUDOers,dc=test,dc=org
objectClass: top
objectClass: sudoRole
cn: piso
sudoUser: piso
sudoHost: ALL
sudoRunAs: ALL
sudoCommand: ALL
sudoOption: !authenticate
# testuser, SUDOers, test.org
dn: cn=testuser,ou=SUDOers,dc=test,dc=org
cn: testuser
objectClass: top
objectClass: sudoRole
sudoHost: ALL
sudoOption: !authenticate
sudoRunAs: ALL
sudoUser: testuser
sudoCommand: ALL
# search result
search: 2
result: 0 Success
# numResponses: 12
# numEntries: 11
log di slapd:
conn=32 fd=14 ACCEPT from IP=192.168.1.19:56098 (IP=0.0.0.0:636)
conn=32 fd=14 TLS established tls_ssf=256 ssf=256
conn=32 op=0 BIND dn="" method=128
conn=32 op=0 RESULT tag=97 err=0 text=
conn=32 op=1 SRCH base="dc=test,dc=org" scope=2 deref=0
filter="(objectClass=*)"
conn=32 op=1 SEARCH RESULT tag=101 err=0 nentries=11 text=
conn=32 op=2 UNBIND
conn=32 fd=14 closed
Da questo deduco che:
-ldaps/certificati funzionano
-il server e' configurato correttamnente per ricevere
richieste da eventuali client
Ora pero' il mio problema si e' spostato sui client (ad esempio pam/nss)
i quali non ne vogliono
sapere di funzionare su ldaps:
/usr/local/etc/ldap.conf - /usr/local/etc/nss_ldap.conf:
base dc=test,dc=org
#uri ldaps://ferret.tomato.lan:636
uri ldap://ferret.tomato.lan
bind_policy soft
sudoers_base ou=SUDOers,dc=test,dc=org
pam_groupdn cn=smtp_box,ou=groups,dc=test,dc=org
pam_member_attribute memberUid
tls_checkpeer no
tls_cacertfile /usr/local/etc/openldap/cacert.pem
tls_cert /usr/local/etc/openldap/ldap.client.pem
tls_key /usr/local/etc/openldap/ldap.client.key.pem
utilizzando la 389 ssh funziona correttamnente e mi posso collegare con
utente testuser e/o utilizzando l'utente definito sulla mia macchina in
/etc/passwd.
Al contrario, se decommento la riga "#uri ldaps://ferret.tomato.lan:636"
nel file sopra citato, ssh smette di funzionare in tutti i sensi:
[EMAIL PROTECTED]:~ >ssh [EMAIL PROTECTED]
Connection closed by 127.0.0.1
[EMAIL PROTECTED]:~ >
slapd log:
conn=41 fd=14 ACCEPT from IP=192.168.1.19:58542 (IP=0.0.0.0:636)
TLS: can't accept.
conn=41 fd=14 closed (TLS negotiation failure)
medesima cosa accade se configuro phpldapadmin per usare ldaps al posto
di ldap:
phpldapadmin:
*Could not connect to "ldaps://ferret.tomato.lan" on port "636"*
*Backtrace*
*PHP Version* 5.2.3
*PLA Version* 1.0.2
*PHP SAPI* apache2handler
*Web Server* Apache/2.2.4 (FreeBSD) DAV/2 PHP/5.2.3 with
Suhosin-Patch mod_ssl/2.2.4 OpenSSL/0.9.8e
*File* /usr/local/www/phpldapadmin/lib/server_functions.php (353)
*Function* pla_error
Array
(
[0] => Could not connect to "ldaps://ferret.tomato.lan" on port "636"
)
*File* /usr/local/www/phpldapadmin/htdocs/login.php (125)
*Function* connect
Array
(
[0] => 1
[1] => user
[2] => 1
)
log slapd:
conn=47 fd=14 ACCEPT from IP=192.168.1.19:63045 (IP=0.0.0.0:636)
TLS: can't accept.
TLS: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
s3_pkt.c:1053
conn=47 fd=14 closed (TLS negotiation failure)
Infine, se la lista e' dedicata esclusivamente ad OpenLDAP (come la
controparte 'ufficiale') mi scuso anticipatamente dell'OT,
ma pensavo che qualcuno di voi si fosse gia' imbattuto in problemi
simili e quindi ho pensato di chiedere lo stesso.
bye,
P.
_______________________________________________
OpenLDAP mailing list
[email protected]
https://www.sys-net.it/mailman/listinfo/openldap