User Tools

Site Tools


lucid1004:smb:openldap

This is an old revision of the document!


Устанавим сервер OpenLDAP и дополнительные пакеты для начала работы

apt-get update
apt-get install slapd ldap-utils samba-doc

Конвертируем схему samba.schema в формат ldif понятный серверу OpenLDAP

zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema

cat <<EOFLIST > /tmp/schema_convert.conf
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/inetorgperson.schema
include         /etc/ldap/schema/samba.schema
EOFLIST

# prepare
rm -rf /tmp/ldif_output
mkdir /tmp/ldif_output

# generate ldif files
slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output

# copy generated ldif file to slapd directory
find /tmp/ldif_output -type f -name '*samba.ldif' -exec cp {} /etc/ldap/schema/samba.ldif \;

# cut the crap
echo -e '1c\ndn: cn=samba,cn=schema,cn=config\n.\n3c\ncn: samba\n.\n$n\n-6,$d\nwq' | ed /etc/ldap/schema/samba.ldif

# clean up
rm -rf /tmp/ldif_output 

Загрузим необходимые схемы на сервер OpenLDAP

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/samba.ldif

На данный момент сервер OpenLDAP имеет все необходимые классы для работы с учетными записями Samba+Posix. Давайте посмотрим что получилось.

ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config '(objectCLass=olcDatabaseConfig)' dn

Создадим файл конфигурации нашей базы example.com.ldif

# Load dynamic backend modules if it is not already there
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb

# Database settings
dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcSuffix: dc=example,dc=com
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: secret
olcDbConfig: set_cachesize 0 2097152 0
olcDbConfig: set_lk_max_objects 1500
olcDbConfig: set_lk_max_locks 1500
olcDbConfig: set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcAccess: to attrs=userPassword by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: to attrs=sambaLMPassword by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: to attrs=sambaNTPassword by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
oolcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read

Пароль администратора можно зашифровать с помощью утилиты slappasswd

Загрузим конфигурацию нашей базы на сервер

ldapadd -Y EXTERNAL -H ldapi:/// -f example.com.ldif

Итак мы установили полноценный сервер OpenLDAP, который готов хранить в себе учетные записи Samba PDC и все необходимые служебные данные для работы с контроллером домена Windows ™

lucid1004/smb/openldap.1280777924.txt.gz · Last modified: (external edit)