Настройка
Установка
apt install slapd -yВылезет окошко где попросят поставить пароль для ldap
Первоначальная настройка
Это позволит настроить доменное имя, имя организации и пароль админа
dpkg-reconfigure slapd- NO
- Написать домен
- Указать организацию
- Ввести пароль
- NO
- YES
Настройка
Качаем чтобы чуть облегчить ( можно и без него )
apt install ldapscripts -ycp /usr/share/doc/ldapscripts/examples/ldapaddgroup.template.sample ~/ldap.ldif
cat /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample >> ~/ldap.ldifСоздание OU, Group, USER
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Groups,dc=example,dc=com
objectClass: organizationalUnit
ou: Groups
dn: ou=Services,dc=example,dc=com
objectClass: organizationalUnit
ou: Services
dn: cn=linuxadmins,ou=Groups,dc=example,dc=com
objectClass: posixGroup
cn: linuxadmins
gidNumber: 8600
# чтобы сразу в группу кого-то добавить ( не как основную группу, а доп)
# memberuid: Ivan, Test
dn: uid=maya,ou=People,dc=example,dc=com
objectClass: account
objectClass: posixAccount
cn: maya
uidNumber: 8600
gidNumber: 8600
homeDirectory: /home/maya
loginShell: /bin/bash
gecos: maya
UserPassword: Skill39@A7
# ЕСЛИ НУЖНА ПОЧТА
dn: uid=maya,ou=People,dc=example,dc=com
objectClass: posixAccount
objectClass: InetOrgPerson
sn: maya
cn: maya
uidNumber: 8600
gidNumber: 8600
homeDirectory: /home/maya
loginShell: /bin/bash
gecos: maya
mail: maya@nova.a7.test
UserPassword: Skill39@A7
# ЕСЛИ НУЖЕН АККАУНТ ДЛЯ ПРОСМОТРА ЗАПИСЕЙ
# (чтобы анонимусы не могли всё смотреть и нужно было через него зырить)
dn: uid=ldap-reader,ou=Services,dc=example,dc=com
objectClass: account
objectClass: simpleSecurityObject
uid: ldap-reader
UserPassword: Reader39@A7ldapadd -x -D cn=admin,dc=example,dc=com -w Skill39@A7 -f ldap.ldif -c
# тип безопасно пароль ввести
ldapadd -x -D cn=admin,dc=example,dc=com -W -f ldap.ldif -cslapcat
ldapsearch -x -b dc=example,dc=comЕсли требуется чтобы anonymous не видели определенную ou olcAccess
# Подсмотреть можно чуть
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config olcAccess >> anon.ldif
# оставляем dn: olcDatabase={1}mdb,cn=config
man ldapmodify | grep EXAMPLES -A 6 >> anon.ldifdn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0} to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {1} to dn.subtree="ou=People,dc=example,dc=com" by self write by dn.exact="uid=ldap-reader,ou=Services,dc=example,dc=com" read by anonymous auth by * read
olcAccess: {2} to attrs=shadowLastChange by self write by * read
olcAccess: {3} to * by dn.exact="uid=ldap-reader,ou=Services,dc=example,dc=com" read by anonymous none by * read
# При этом olcDisallows не добавлять!!! а то anonymous вообще ниче не увидет# Применить
ldapmodify -Y EXTERNAL -H ldapi:/// -w Skill39@A7 -f anon.ldif
# Проверить
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config olcAccessЕсли требуется чтобы анонимам вообще нельзя прикасаться к святому LDAP
но появляется проблема ldap-reader вроде не получится запустить
dn: cn=config
changetype: modify
replace: olcDisallows
olcDisallows: bind_anon
Проверка
# должны не пустить
ldapsearch -x -b dc=example,dc=com
# должны пустить
ldapsearch -x -b dc=example,dc=com -D cn=ldap-reader,dc=example,dc=com -w Reader39@A7Применение на клиентах
dpkg-reconfigure nslcd
LDAP authentication ti use: Simple
uid=ldap-reader,ou=ServiceAccounts,dc=atlas,dc=a2,dc=lab # User
Skill39@A2reader # Password
Use startTLS
YES
tryПодсмотреть
Если что можно подсмотреть как писать ldif
man ldapmodify
# первый examples +- modify
man slapd-config
# там все фигня для slapd ( чтобы включить ldaps или защиту от anon)