среда, 19 мая 2010 г.

Настройка OpenLDAP-сервера

Использованные материалы:
http://www.gentoo.org/doc/en/ldap-howto.xml
http://www.ibm.com/developerworks/linux/library/l-openldap/

Сервер я настроил в CentOS 5.5, но для Gentoo алгоритм будет такой же.

Устанавливаем сам сервер и утилиты для управления:
# yum install openldap-servers openldap-clients

В Gentoo пакет называется openldap
Создаем пароль для управления сервером:
# slappasswd
New password: my-password
Re-enter new password: my-password
{SSHA}EzP6I82DZRnW+ou6lyiXHGxSpSOw2XO4

В файле /etc/openldap/slapd.conf
#Раскоментировать схемы
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema

#Раскоментировать разрешения
access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read
access to *
by self write
by users read
by anonymous auth

#Задать параметры базы
database        bdb
suffix          "dc=oper777,dc=local"
rootdn          "cn=Manager,dc=oper777,dc=local"
rootpw                  {SSHA}EzP6I82DZRnW+ou6lyiXHGxSpSOw2XO4

В файле /etc/openldap/ldap.conf указать
BASE            dc=oper777, dc=local
URI             ldap://localhost:389
TLS_REQCERT     allow

Теперь скопировать конфиг базы
Для Centos
# cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

Для Gentoo
# cp /var/lib/openldap-data/DB_CONFIG{.example,}

Запустить и добавить в автозапуск:
# service ldap start
# chkconfig ldap on

(для Gentoo /etc/init.d/slapd start и rc-update add slapd default, соответственно).

Добавим запись о нашем домене в базу:
# cat /root/ldap/base.ldif
dn: dc=oper777,dc=local
objectClass: dcObject
objectClass: organization
dc: oper777
o: oper777 test ldap domain

# ldapadd -x -D "cn=Manager,dc=oper777,dc=local" -W -f /root/ldap/base.ldif

Теперь создадим ветки People (где будут храниться учетные записи) и Groups, где будут храниться группы:
# cat /root/ldap/branch.ldif
dn: ou=People,dc=oper777,dc=local
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Groups,dc=oper777,dc=local
ou: Groups
objectClass: top
objectClass: organizationalUnit

# ldapadd -x -D "cn=Manager,dc=oper777,dc=local" -W -f /root/ldap/branch.ldif

Заведем первую группу:
# cat /root/ldap/group.ldif
dn: cn=ldapgroup,ou=Groups,dc=oper777,dc=local
objectClass: posixGroup
objectClass: top
cn: ldapgroup
gidNumber: 1000

# ldapadd -x -D "cn=Manager,dc=oper777,dc=local" -W -f /root/ldap/group.ldif

Создадим пользователя:
# cat /root/ldap/user.ldif
dn: uid=oper,ou=People,dc=oper777,dc=local
objectClass: posixAccount
objectClass: account
objectClass: shadowAccount
objectClass: top
cn: oper
uid: oper
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/oper
loginShell: /bin/bash

# ldapadd -x -D "cn=Manager,dc=oper777,dc=local" -W -f /root/ldap/user.ldif

Зададим пользователю пароль:
# ldappasswd -x -D "cn=Manager,dc=oper777,dc=local" -W -s password uid=oper,ou=People,dc=oper777,dc=local

Проверить этого пользователя можно командой
# ldapsearch -x -D "cn=Manager,dc=oper777,dc=local" -W uid=oper
Enter LDAP Password:                                                              
# extended LDIF                                                                   
#                                                                                 
# LDAPv3
# base <> with scope subtree
# filter: uid=oper
# requesting: ALL
#

# oper, People, oper777.local
dn: uid=oper,ou=People,dc=oper777,dc=local
objectClass: posixAccount
objectClass: account
objectClass: shadowAccount
objectClass: top
cn: oper
uid: oper
uidNumber: 1000
gidNumber: 1000
loginShell: /bin/bash
userPassword:: e1NTSlhcTZrUUUrNGcxSjVhVjBJZkdicElDUzYvYlU=
homeDirectory: /home/oper

# search result
search: 2
result: 0 Success

Сервер готов.

Комментариев нет:

Отправить комментарий