ldap slapd ldapscripts

Настройка

Установка

apt install slapd -y

Вылезет окошко где попросят поставить пароль для ldap

Первоначальная настройка

Это позволит настроить доменное имя, имя организации и пароль админа

dpkg-reconfigure slapd
  • NO
  • Написать домен
  • Указать организацию
  • Ввести пароль
  • NO
  • YES

Настройка

Качаем чтобы чуть облегчить ( можно и без него )

apt install ldapscripts -y
cp /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@A7
ldapadd -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 -c
slapcat
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.ldif
dn: 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)