Openldap: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
Zeile 165: Zeile 165:
 
=user ldif anlegen=
 
=user ldif anlegen=
 
<pre>
 
<pre>
dn: uid=leroy,ou=user,dc=linuggs,dc=de
+
dn: uid=leroy,ou=users,dc=linuggs,dc=de
 
cn: leroy
 
cn: leroy
 
objectClass: account
 
objectClass: account
Zeile 177: Zeile 177:
 
loginShell: /bin/bash
 
loginShell: /bin/bash
 
</pre>
 
</pre>
 +
 
=user hinzufügen=
 
=user hinzufügen=
 
  ldapadd -xD cn=admin,dc=linuggs,dc=de -w sysadm -f user.ldif  
 
  ldapadd -xD cn=admin,dc=linuggs,dc=de -w sysadm -f user.ldif  

Version vom 13. März 2017, 14:48 Uhr

installation

apt-get

passwort nach wahl festlegen

apt-get install  slapd ldap-utils libldap2-dev  db-util sasl2-bin
  • slapd: OpenLDAP Standalone Server
  • ldap-utils: Utilities zum Zugriff auf den LDAP Server

grundkonfiguration

dpkg-reconfigure  -p low slapd

kontrolle

kontrolle der konfig files

root@maria:/etc/ldap# find /etc/ldap/slapd.d/ -type f 
/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif
/etc/ldap/slapd.d/cn=config/olcBackend={0}hdb.ldif
/etc/ldap/slapd.d/cn=config/olcDatabase={-1}frontend.ldif
/etc/ldap/slapd.d/cn=config/cn=schema.ldif
/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif
/etc/ldap/slapd.d/cn=config/cn=schema/cn={3}inetorgperson.ldif
/etc/ldap/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif
/etc/ldap/slapd.d/cn=config/cn=schema/cn={0}core.ldif
/etc/ldap/slapd.d/cn=config/cn=schema/cn={2}nis.ldif
/etc/ldap/slapd.d/cn=config/cn=module{0}.ldif
/etc/ldap/slapd.d/cn=config.ldif

kontrolle der konfig files

alles

  • ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config

konfiguration

  • ldapsearch -Y EXTERNAL -LLL -H ldapi:/// -b cn=config "(|(cn=config)(olcDatabase={1}hdb))"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcLogLevel: none
olcPidFile: /var/run/slapd/slapd.pid
olcToolThreads: 1

dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=linuggs,dc=de
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
 s auth by dn="cn=admin,dc=linuggs,dc=de" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write by dn="cn=admin,dc=linuggs,dc=de" write by *
 read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=linuggs,dc=de
olcRootPW: {SSHA}2Iric7Ph1nLUNfoDm8FzOgyTW63kz2gr
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq

struktur

  • ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
dn: cn=config

dn: cn=module{0},cn=config

dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

dn: olcBackend={0}hdb,cn=config

dn: olcDatabase={-1}frontend,cn=config

dn: olcDatabase={0}config,cn=config

dn: olcDatabase={1}hdb,cn=config

stimmt der base dn?

ldapsearch -x -LLL -H ldap:/// -b dc=linuggs,dc=de dn
dn: dc=linuggs,dc=de 

dn: cn=admin,dc=linuggs,dc=de

Starten des slapd

serivce slapd start
Starting OpenLDAP: slapd.

Stoppen des slapd

serivce slapd stop
Stopping OpenLDAP: slapd.

Neustarten des slapd

service slapd restart
Stopping OpenLDAP: slapd.
Starting OpenLDAP: slapd.Starten des slapd

Auf welchem Port lauscht der slapd

netstat -lntp | grep slapd
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN     499/slapd

Welche PID hat der slapd

pgrep slapd
499
500
501

Abfragen

anonym

 ldapsearch -x -LLL -H  ldap://127.0.0.1 -b  dc=linuggs,dc=de

gebunden interaktiv

ldapsearch -x -LLL -D "cn=admin, dc=linuggs, dc=de" -W -H  ldap://127.0.0.1 -b  dc=linuggs,dc=de

gebunden automatisch

ldapsearch -x -LLL -D "cn=admin, dc=linuggs, dc=de" -w sysadm  -H  ldap://127.0.0.1 -b  dc=linuggs,dc=de

Defaultclientkonfiguration von LDAP

cat /etc/ldap/ldap.conf
base            dc=linuggs, dc=de
uri             ldap://127.0.0.1
ldap_version    3
rootbinddn      cn=admin, dc=linuggs, dc=de
pam_password    md5

Passwort für den Adminzugang eintragen

echo sysadm > /etc/ldap.secret

füllen der datenbank

struktur.ldif

dn: ou=users,dc=linuggs,dc=de
objectClass: organizationalUnit
ou: users

dn: ou=groups,dc=linuggs,dc=de
objectClass: organizationalUnit
ou: groups

dn: ou=hosts,dc=linuggs,dc=de
objectClass: organizationalUnit
ou: hosts

struktur hinzufügen

ldapadd -xD cn=admin,dc=linuggs,dc=de -w sysadm -f struktur.ldif

gruppe ldif anlegen

cat group.ldif 
dn: cn=it,ou=groups,dc=linuggs,dc=de
objectClass: posixGroup
objectClass: top
cn: it
gidNumber:  3001

gruppe hinzufügen

ldapadd -xD cn=admin,dc=linuggs,dc=de -w sysadm -f group.ldif 
adding new entry "cn=it,ou=groups,dc=linuggs,dc=de"

user ldif anlegen

dn: uid=leroy,ou=users,dc=linuggs,dc=de
cn: leroy
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
objectClass: top
uid: leroy
uidNumber: 2001
gidNumber: 3001
homeDirectory: /home/leroy
loginShell: /bin/bash

user hinzufügen

ldapadd -xD cn=admin,dc=linuggs,dc=de -w sysadm -f user.ldif 
adding new entry "uid=leroy,ou=user,dc=linuggs,dc=de"

ldapscripts

nsswitch anbinden

apt-get install libnss-ldap

Wir benutzen nur eine Konfigurationdatei

ln -sf /etc/ldap/ldap.conf /etc/ldap.conf

ergänzen /etc/nsswitch.conf

passwd:         compat ldap
group:          compat ldap

nsswitch tests

passwd test

getent passwd | grep 3001
leroy:x:2001:3001:leroy:/home/leroy:/bin/bash

group test

getent group | grep 3001
it:*:3001:

id test

id leroy
uid=2001(leroy) gid=3001(it) Gruppen=3001(it)


ldap pam installieren

apt-get install libpam-ldap

Anpassen der Pam

Die Authentifizierung(installation nimmt einstellung schon vor)

gawron:/etc/pam.d# cat common-auth
auth    sufficient   pam_ldap.so
auth    required     pam_unix.so nullok_secure use_first_pass

Das Accounting(installation nimmt einstellung schon vor)

gawron:/etc/pam.d# cat common-account
account sufficient      pam_ldap.so
account required        pam_unix.so

Passwort änderungen

gawron:/etc/pam.d# cat common-password
password    sufficient    pam_ldap.so
password    sufficient    pam_unix.so
password    required      pam_deny.so

Die Session

gawron:/etc/pam.d# cat common-session
session required pam_mkhomedir.so  skel=/etc/skel umask=0022
session required        pam_unix.so

Passwort für den User setzen

gawron:/etc/pam.d# passwd leroy
New password:
Re-enter new password:
LDAP password information changed for leroy
passwd: password updated successfully

ldapsearch

root@maria:~# ldapsearch -x -LLL -b dc=linuggs,dc=de 'uid=thomas' cn gidNumber
dn: uid=thomas,ou=People,dc=linuggs,dc=de
cn: thomas will
gidNumber: 5000

apache2 ldap

verlinken der module

a2enmod authnz_ldap

ldap anbinden

<Directory /var/www/html>
   #SetHandler ldap-status
   AuthType Basic
   AuthBasicProvider ldap
   AuthName LDAP-AUTHENTIFIKATION
   AuthLDAPURL ldap://192.168.244.154/dc=linuggs,dc=de?uid?sub
   Require valid-user
</Directory>


ssl

certifikate generieren

ssl.ldif erstellen

dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ldap/ssl/xin-ca.crt
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ldap/ssl/xin-ca-maria.xinux.org.crt
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ldap/ssl/xin-ca-maria.xinux.org.key

konfig hinzufügen

ldapmodify -Y EXTERNAL -H ldapi:/// -f ssl.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config

Servertools

slapdadd

User zur SLAPD Datenbank hinzufügen

slapadd -b dc=linuggs,dc=de -l muster.ldif
  • -b: Baseroot
  • -l: Informationen werden aus der angegebenen Datei gelsen. Nicht vom Standard-Input
slapadd -b dc=linuggs,dc=de -f slapd.conf
  • -f: eine alternative slapd.conf benutzen

slapcat

Der Befehl slapcat ermöglicht die Speicherung der aktuellen LDAP-Daten in einer Textdatei im LDIF-Format

slapcat > ldapdaten.txt