LDAP Linux Auth: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 25: | Строка 25: | ||
</PRE> |
</PRE> |
||
+ | Создать отдельную базу данных для своих объектов. |
||
+ | <BR> |
||
+ | Внимательно проверить права на директорию - она должна существовать и быть доступна серверу на запись (/var/lib/ldap_fuel_domain/) |
||
+ | <PRE> |
||
⚫ | |||
+ | 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 |
||
⚫ | |||
− | 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 https://www.ibm.com/developerworks/ru/library/l-pam/
PAM
PAM vs NSS
http://serverfault.com/questions/538383/understand-pam-and-nss
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/