Установка и настройка сервера
	Для начала установим пакет OpenLDAP-сервера:
	# yum install openldap-servers
	
	Демон OpenLDAP называется slapd. Сконфигурируем его. Но сначала надо внести некоторые изменения в конфигурацию rsyslog и iptables:
	
	В /etc/rsyslog.conf нужно добавить строчку:
	local4.*                                /var/log/ldap
	
	А в /etc/sysconfig/iptables такую:
	-A INPUT -m state --state NEW -m tcp -p tcp --dport 389 -j ACCEPT
	
	После чего перезагрузить сервисы:
	 # /sbin/service rsyslog restart
	# /sbin/service iptables restart
	
	Начиная с RedHat 6 OpenLDAP использует т.н. dynamic config: вся конфигурация хранится в формате LDIF в директории /etc/openldap/slapd.d Удалим эту директорию, т.к. мы будем использовать текстовый конфигурационный файл:
	# rm -r /etc/openldap/slapd.d
	
	Создадим конфигурационный файл /etc/openldap/slapd.conf:
	 include   /etc/openldap/schema/core.schema
	include   /etc/openldap/schema/cosine.schema
	include   /etc/openldap/schema/inetorgperson.schema
	
	include   /etc/openldap/schema/nis.schema
	
	pidfile   /var/run/openldap/slapd.pid
	
	access to attrs=userPassword
	    by self write by anonymous auth
	    by dn.base="cn=root,dc=tdc" write
	    by dn.exact="cn=proxyuser,ou=role,dc=tdc" read
	    by * read
	access to *
	    by self write
	    by dn.base="cn=root,dc=tdc" write
	    by * read
	
	 database bdb
	suffix "dc=tdc"
	rootdn "cn=root,dc=tdc"
	rootpw {SSHA}tWdDKXtLj+HQma3STSZ8kjZNIE5+WxHg
	directory /var/lib/ldap
	loglevel 128
	
	Директивы include нужны для подключения схем каталогов LDAP - без них slapd не сможет даже прочитать строчку dc=tdc. Директива suffix определяет суффикс всех DN, обслуживаемых данным сервером, как правило это сетевой домен в форме dc=example,dc=com (в моем случае это tdc). rootdn - это имя сущности, представляющей администратора сервера, ее же пароль задается директивой rootpw. Создать пароль для директивы rootpw можно с помощью команды slappasswd. И наконец, database и directory задают бек-энд базы данных и расположения файлов с данными. В нашем случае это  /var/lib/ldap - домашняя директория пользователя LDAP.
	Теперь можно запустить slapd:
	# /sbin/service slapd start
	Создаем пользователей и группы
	Теперь можно создать пользователя и группу для него. Но сначала потребуется описать некоторые каталоги ldap: корневой объект dc и организационные элементы (organizationalUnit) people для пользователей и groups для групп. Кроме этого нам потребуется специальная роль proxyuser для того, чтобы ее могли использовать клиенты pam_ldap. В данном примере мы создадим пользователя ogsadm и группу ogsusers. Опишем их записи в формате LDIF и сохраним в файле /tmp/ogsadm.ldap:
	
	 dn: dc=tdc
	dc: tdc
	description: Root LDAP entry for tdc
	objectClass: dcObject
	objectClass: organizationalUnit
	ou: rootobject
	
	dn: ou=people,dc=tdc
	ou: people
	description: All people in organisation
	objectClass: organizationalUnit
	
	dn: ou=groups,dc=tdc
	ou: groups
	description: All groups in organisation
	objectClass: organizationalUnit
	
	dn: cn=ogsusers,ou=groups,dc=tdc
	cn: ogsusers
	objectClass: top
	objectClass: posixGroup
	gidNumber: 300
	
	# User account
	dn: uid=ogsadm,ou=people,dc=tdc
	cn: ogsadm
	givenName: ogsadm
	sn: OGS Administrator
	uid: ogsadm
	uidNumber: 300
	gidNumber: 300
	homeDirectory: /grid/ogsadm
	mail: ogsadm@mt-mercury.tdc
	objectClass: top
	objectClass: posixAccount
	objectClass: shadowAccount
	objectClass: inetOrgPerson
	objectClass: organizationalPerson
	objectClass: person
	loginShell: /bin/bash
	userPassword: {CRYPT}*
	
	 dn: ou=role,dc=tdc
	objectclass: organizationalUnit
	ou: role
	
	dn: cn=proxyuser,ou=role,dc=tdc
	cn: proxyuser
	objectclass: top
	objectclass: person
	objectclass: posixAccount
	objectclass: shadowAccount
	uid: proxyuser
	uidNumber: 64001
	gidNumber: 55
	homeDirectory: /home/proxyuser
	loginShell: /sbin/nologin
	userPassword:
	sn: proxyuser
	description: Account for read-only access
	
	После этого вызовем ldapadd чтобы добавить эти записи:
	 # ldapadd -D "cn=root,dc=tdc" -W -x -f /tmp/ogsadm.ldap
	Если в процессе конфигурации возникла ошибка, то нужно использовать ldapmodify например так:
	 # ldapmodify -D "cn=root,dc=tdc" -W -x
	Enter LDAP Password:
	dn: uid=ogsadm,ou=people,dc=tdc
	changetype: modify
	replace: cn
	cn: ogsadm
	-
	<CR>
	
	modifying entry "uid=ogsadm,ou=people,dc=tdc"
	^C
	Также нужно установить пароль для  роли proxyuser:
	# ldappasswd -D "cn=root,dc=tdc" -W -s proxypassword -x cn=proxyuser,ou=role,dc=tdc
	Настройка клиентов
	Установим openldap-клиент:
	# yum install openldap-clients nss-pam-ldapd
	
	В RedHat конфигурацию LDAP можно выполнить через графическую утилиту system-config-authentication или посредством команды authconfig. Во втором случае команда будет выглядеть следующим образом:
	# authconfig --enableldap --enableldapauth --ldapserver=ldap://mt-mercury.tdc \
	                        --ldapbasedn="dc=tdc" --update
	
	Здесь ldapbasedn - путь до организационного элемента, хранящего пользовательские записи, а ldapserver - URL до ldap-сервера. Задать binddn и bindpw для pam_ldap нужно отдельно. Достаточно просто дописать следующие строчки в конфиг /etc/pam_ldap.conf:
	binddn cn=proxyuser,ou=role,dc=tdc
	bindpw proxypassword
	
	
	После этого проверим, появился ли у нас пользователь ogsadm:
	# getent passwd ogsadm
	ogsadm:x:300:300:ogsadm:/grid/ogsadm:/bin/bash
	Также можно попробовать залогиниться через ssh. Овсянка готова!
	В моем случае uid пользователя был 300, тогда как RHEL считает, что пользовательские UID'ы начинаются с 500, что видно в файлах /etc/pam.d/system-auth и /etc/pam.d/password-auth