LDAP Linux Auth: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 25: Строка 25:
 
</PRE>
 
</PRE>
   
  +
Создать отдельную базу данных для своих объектов.
  +
<BR>
  +
Внимательно проверить права на директорию - она должна существовать и быть доступна серверу на запись (/var/lib/ldap_fuel_domain/)
  +
<PRE>
 
dn: olcDatabase={2}hdb,cn=config
  +
objectClass: olcDatabaseConfig
  +
objectClass: olcHdbConfig
  +
olcDatabase: {2}hdb
  +
olcDbDirectory: /var/lib/ldap_fuel_domain/
  +
olcSuffix: dc=fuel_domain
  +
olcAccess: {0}to * by * write
  +
olcLastMod: TRUE
  +
olcRootDN: cn=admin,dc=fuel_domain
  +
olcRootPW: {SSHA}bxQpFzYmIkILSbDEL3cVl+nf03mdra/t
  +
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
  +
</PRE>
   
  +
Обратить внимание на
 
  +
<PRE>
 
  +
olcAccess: {0}to * by * write
 
  +
</PRE>
  +
Изначально я даю полный доступ всем на все, изменю его позже.
  +
<BR>
  +
Создание: (подключение через -H ldapi:/// в установке по умолчанию доступно руту без пароля.
 
<PRE>
 
<PRE>
 
ldapadd -Y EXTERNAL -H ldapi:/// < database
 
ldapadd -Y EXTERNAL -H ldapi:/// < database
Строка 37: Строка 62:
 
</PRE>
 
</PRE>
   
  +
Если права на директорию неправильные ИЛИ не настроен apparmor возникает ошибка:
 
 
<PRE>
 
<PRE>
 
root@node-3:~/ldap# ldapadd -Y EXTERNAL -H ldapi:/// < database
 
root@node-3:~/ldap# ldapadd -Y EXTERNAL -H ldapi:/// < database
Строка 48: Строка 73:
 
</PRE>
 
</PRE>
   
  +
Исправить:
 
 
<PRE>
 
<PRE>
  +
/etc/apparmor.d/usr.sbin.slapd
   
  +
##
root@node-3:~/ldap# ldapadd -Y EXTERNAL -H ldapi:/// < database
 
  +
/var/lib/ldap** rwk,
SASL/EXTERNAL authentication started
 
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
 
SASL SSF: 0
 
adding new entry "olcDatabase={2}hdb,cn=config"
 
ldap_add: Other (e.g., implementation specific) error (80)
 
additional info: <olcDbIndex> failed startup
 
 
 
</PRE>
 
</PRE>
 
* http://ubuntuforums.org/showthread.php?t=1492043
 
* http://ubuntuforums.org/showthread.php?t=1492043

Версия 16:22, 15 мая 2016


1

getent passwd getent group

LDAP Server Installation

"Тихая" установка

DEBIAN_FRONTEND=noninteractive apt-get install slapd ldap-utils

Современные дистрибутивы OpenLDAP используют сам LDAP как хранилище конфигурации.


Посмотреть содержимое можно так:

ldapsearch -Y EXTERNAL -H ldapi:///  -b "cn=config"

Создать отдельную базу данных для своих объектов.
Внимательно проверить права на директорию - она должна существовать и быть доступна серверу на запись (/var/lib/ldap_fuel_domain/)

dn: olcDatabase={2}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap_fuel_domain/
olcSuffix: dc=fuel_domain
olcAccess: {0}to  *  by *  write
olcLastMod: TRUE
olcRootDN: cn=admin,dc=fuel_domain
olcRootPW: {SSHA}bxQpFzYmIkILSbDEL3cVl+nf03mdra/t
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

Обратить внимание на

olcAccess: {0}to  *  by *  write

Изначально я даю полный доступ всем на все, изменю его позже.
Создание: (подключение через -H ldapi:/// в установке по умолчанию доступно руту без пароля.

ldapadd  -Y EXTERNAL -H ldapi:/// <  database
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcDatabase={2}hdb,cn=config"

Если права на директорию неправильные ИЛИ не настроен apparmor возникает ошибка:

root@node-3:~/ldap# ldapadd  -Y EXTERNAL -H ldapi:/// <  database
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcDatabase={2}hdb,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
	additional info: olcDbDirectory: value #0: invalid path: Permission denied

Исправить:

/etc/apparmor.d/usr.sbin.slapd

##
  /var/lib/ldap** rwk,


Для работы создаем свой домен куда будем помещать все объекты.

LDAP Configuration

alias ldapsearch='ldapsearch -D "cn=admin,dc=fuel" -w r00tme'
alias ldapmodify='ldapmodify -D "cn=admin,dc=fuel" -w r00tme'

slapcat

dn: dc=fuel
objectClass: top
objectClass: dcObject
objectClass: organization
o: fuel_org
dc: fuel
structuralObjectClass: organization
entryUUID: 9e2a168a-a714-1035-9f39-4b3bdb074971
creatorsName: cn=admin,dc=fuel
createTimestamp: 20160505135423Z
entryCSN: 20160505135423.540761Z#000000#000#000000
modifiersName: cn=admin,dc=fuel
modifyTimestamp: 20160505135423Z

dn: cn=admin,dc=fuel
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9dndjQVZSdnlXWHhyT05LTmpZQVIyMlpmMnFocmg4eWs=
structuralObjectClass: organizationalRole
entryUUID: 9e2a9772-a714-1035-9f3a-4b3bdb074971
creatorsName: cn=admin,dc=fuel
createTimestamp: 20160505135423Z
entryCSN: 20160505135423.544062Z#000000#000#000000
modifiersName: cn=admin,dc=fuel
modifyTimestamp: 20160505135423Z

Добавить организацию Обратить внимание - dn: dc=example_organization,dc=fuel - порядок важен. dc В КОТОРЫЙ добавляется должен быть последним.

# example.org
dn: dc=example_organization,dc=fuel
dc: example_organization
o: Example Organization
objectClass: dcObject
objectClass: organization

Сокращения

alias ldapadd='ldapadd -D "cn=admin,dc=fuel" -w r00tme'
alias ldapmodify='ldapmodify -D "cn=admin,dc=fuel" -w r00tme'
alias ldapsearch='ldapsearch -D "cn=admin,dc=fuel" -w r00tme'
ldapadd < org
adding new entry "dc=example_organization,dc=fuel"


# Manager
dn: cn=Manager,dc=example_organization,dc=fuel
cn: Manager
description: LDAP administrator
objectClass: organizationalRole
objectClass: top
roleOccupant: dc=example_organization,dc=fuel

# People
dn: ou=People,dc=example_organization,dc=fuel
ou: People
objectClass: top
objectClass: organizationalUnit

# Groups
dn: ou=Group,dc=example_organization,dc=fuel
ou: Group
objectClass: top
objectClass: organizationalUnit


dn: uid=sirmax,ou=People,dc=example_organization,dc=fuel
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: sirmax
cn: Max Mazur
sn: Mazur
givenName: Mazur
title: test user
telephoneNumber: +38 067 341 80 70
mobile: +38 067 341 80 70
postalAddress: AddressLine1$AddressLine2$AddressLine3
userPassword: {SSHA}pNCOaigx9LpjZp80yG4lDd/LPI2sZj7K
labeledURI: http://wiki.sirmax.noname.com.ua/
loginShell: /bin/bash
uidNumber: 9999
gidNumber: 9999
homeDirectory: /home/sirmax/
description: This is an example user

Пароль криптуется с помощью slappasswd


Проверить (\ - отключить алиас) (настройки безопасности - отдельная тема, http://www.openldap.org/doc/admin24/access-control.html )

\ldapsearch -x -b 'dc=example_organization,dc=fuel' '(objectclass=*)'
 \ldapsearch -D "uid=sirmax,ou=People,dc=example_organization,dc=fuel" -w r00tme -b 'dc=example_organization,dc=fuel' '(uid=sirmax)'
dn: cn=sirmax,ou=Group,dc=example_organization,dc=fuel
changetype: add
cn: fuel users
objectClass: posixGroup
gidNumber: 9999
description: Fuel Users
memberUid: sirmax
dn: cn=fuel_users,ou=Group,dc=example_organization,dc=fuel
changetype: add
cn: fuel users
objectClass: posixGroup
gidNumber: 109999
description: Fuel Users
memberUid: sirmax

Ссылки


PAM

PAM vs NSS

http://serverfault.com/questions/538383/understand-pam-and-nss

http://skeletor.org.ua/?p=464

http://pro-ldap.ru/tr/zytrax/ch6/slapd-config.html

https://wiki.archlinux.org/index.php/LDAP_authentication


RUS http://www.bog.pp.ru/work/LDAP.html http://pro-ldap.ru/tr/zytrax/ch6/slapd-config.html http://xgu.ru/wiki/man:ldapmodify https://rtfm.co.ua/openldap-migraciya-s-slapd-conf-na-cnconfig-olc/