Difference between revisions of "OpenLDAP"

From HackerNet
Jump to: navigation, search
Tag: visualeditor
Line 90: Line 90:
 
I felsökningssyfte kan ett GUI vara användbart för man kan snabbt skapa sig en överblick och navigera i strukturen. LdapAdmin är ett simplet GUI som kan fetcha DN:s.
 
I felsökningssyfte kan ett GUI vara användbart för man kan snabbt skapa sig en överblick och navigera i strukturen. LdapAdmin är ett simplet GUI som kan fetcha DN:s.
 
  http://ds.karen.hj.se/~cameljoe/LdapAdmin.exe
 
  http://ds.karen.hj.se/~cameljoe/LdapAdmin.exe
 +
 +
==memberOf==
 +
För enkelt göra ställa frågor och se vilken grupp en användare är med i så behöver man aktivera <code>memberOf</code>.
 +
 +
Skapa tre filer med följande kod i.
 +
'''memberof.ldif'''
 +
dn: cn=module,cn=config
 +
cn: module
 +
objectClass: olcModuleList
 +
olcModuleLoad: memberof
 +
olcModulePath: /usr/lib/ldap
 +
 +
dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config
 +
objectClass: olcConfig
 +
objectClass: olcMemberOf
 +
objectClass: olcOverlayConfig
 +
objectClass: top
 +
olcOverlay: memberof
 +
olcMemberOfDangling: ignore
 +
olcMemberOfRefInt: TRUE
 +
olcMemberOfGroupOC: groupOfNames
 +
olcMemberOfMemberAD: member
 +
olcMemberOfMemberOfAD: memberOf
 +
 +
'''refint1.ldif'''
 +
dn: cn=module{1},cn=config
 +
add: olcmoduleload
 +
olcmoduleload: refint
 +
 +
'''refint2'''
 +
dn: olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
 +
objectClass: olcConfig
 +
objectClass: olcOverlayConfig
 +
objectClass: olcRefintConfig
 +
objectClass: top
 +
olcOverlay: {1}refint
 +
olcRefintAttribute: memberof member manager owner
 +
 +
Ladda sedan in filerna i OpenLDAP servern med följande kommandon.
 +
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof.ldif
 +
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif
 +
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif
 +
 +
Skapa sedan en grupp och lägg till användare.
 +
 +
'''add_group.ldif'''
 +
dn: cn=testgrupp,dc=example,dc=se
 +
objectClass: groupofnames
 +
cn: testgrupp
 +
description: All users
 +
member: uid=testuser,ou=users,dc=example,dc=se
 +
 +
ldapadd -x -D cn=admin,dc=example,dc=se -W -f add_group.ldif
 +
 +
För att testa att det funkar kan du ställa denna frågan.
 +
ldapsearch -h <ip> -x -b "dc=example,dc=se" '(uid=testuser)' memberOf
 +
 +
 
=== Förslag på möjliga rubriker ===
 
=== Förslag på möjliga rubriker ===
  

Revision as of 20:36, 21 September 2015

OpenLDAP är en central inloggnings server typ som Active directory är. Det ökar användarvänligheten om man kan använda samma lösenord till flera platser. OBS det är viktigt att klockorna är synkade på maskinerna som ska använda LDAP och att namnuppslag för LDAP-servern kan göras på alla klienter.

Server

Veriferat på Debian 7 (Wheezy)

apt-get update && apt-get install slapd ldap-utils

Slå sedan in det lösenord du vill att admin kontot ska ha.

Öppna filen

vim /etc/ldap/ldap.conf

Och ändra BASE och URI , spara sedan filen.

#
# LDAP Defaults
 #
 
 # See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE    dc=example,dc=com
URI     ldap://192.168.0.100 ldap://192.168.0.100:666

#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never

# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

Sedan kör

dpkg-reconfigure slapd
Svara följande på frågorna som kommer.
  1. No.
  2. Fyll i samma som på BASE
  3. Fyll i ett namn på vad du vill kalla din domän.
  4. Fyll i ditt adminlösenord.
  5. Fyll i samma lösenord.
  6. HDB.
  7. Yes.
  8. Yes.
  9. Nej.

För att skapa användare och grupper enkelt använd programmet LDAP Admin

Client

Installera

Autentisera login mot LDAP servern. Veriferat på Debian 7 (Wheezy)

apt-get update && apt-get install libnss-ldap libpam-ldap ldap-utils
  1. Specifera URL till din ldap server.
  2. Skriv in din base dn. Samma som BASE i /etc/ldap/ldap.conf
  3. Välj V3.
  4. Fyll i hela suffixen till adminkontot.
  5. Lösenordet för adminkontot.
  6. Välj ok. Vi ska ändra i den filen senare.
  7. Välj vad du vill.
  8. Välj vad du vill.
  9. Fyll i hela suffixen till ditt LDAP adminkonto. Oftast samma som i steg 4.
  10. Lösenordet för adminkontot.

Öppna sedan filen,

vim /etc/nsswitch.conf

På linje #7 lägg till,

passwd: compat ldap
group: compat ldap
shadow: compat ldap

På linje #19 ändra till,

netgroup:ldap

Öppna sedan filen,

vim /etc/pam.d/common-password

På linje #26 ta bort use_authtok och lägg till,

password     [success=1 user_unknown=ignore default=die]     pam_ldap.so try_first_pass

I filen /etc/pam_ldap.conf. Leta upp kommandot pam_password och ändra till exop. Om du byter lösenord med passwd så väljer Debian default att skicka över lösenordet krypterat med Crypt. Crypt klarar max 8 tecken och är inte säkert. Väljer man exop så sköter OpenLDAP krypteringen av lösenordet.

pam_password exop

Man kan skippa detta steget om man inte vill att en hemmapp ska skapas automatiskt lokalt på datorn,

vim /etc/pam.d/common-session

Och lägga till denna raden i slutet.

session optional        pam_mkhomedir.so skel=/etc/skel umask=077

Starta sedan om datorn och prova att logga in med ett domänkonto.

Sudo med LDAP

Skapa en grupp som heter sudo. Lägg sedan till användarna som du vill ska få sudo rättigheter i den. Verifiera att din användare finns med i sudo gruppen genom att logga in och skriva groups.

sparco@jumpoff:~$ groups
root wiki owncloud sudo

Lägg sedan till denna raden i /etc/sudoers

%sudo   ALL=(ALL:ALL) ALL

GUI

I felsökningssyfte kan ett GUI vara användbart för man kan snabbt skapa sig en överblick och navigera i strukturen. LdapAdmin är ett simplet GUI som kan fetcha DN:s.

http://ds.karen.hj.se/~cameljoe/LdapAdmin.exe

memberOf

För enkelt göra ställa frågor och se vilken grupp en användare är med i så behöver man aktivera memberOf.

Skapa tre filer med följande kod i. memberof.ldif

dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModuleLoad: memberof
olcModulePath: /usr/lib/ldap

dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

refint1.ldif

dn: cn=module{1},cn=config
add: olcmoduleload
olcmoduleload: refint

refint2

dn: olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: {1}refint
olcRefintAttribute: memberof member manager owner

Ladda sedan in filerna i OpenLDAP servern med följande kommandon.

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof.ldif
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif

Skapa sedan en grupp och lägg till användare.

add_group.ldif

dn: cn=testgrupp,dc=example,dc=se
objectClass: groupofnames
cn: testgrupp
description: All users
member: uid=testuser,ou=users,dc=example,dc=se
ldapadd -x -D cn=admin,dc=example,dc=se -W -f add_group.ldif

För att testa att det funkar kan du ställa denna frågan.

ldapsearch -h <ip> -x -b "dc=example,dc=se" '(uid=testuser)' memberOf


Förslag på möjliga rubriker

LDAP med TLS

LDAP-replikering