Jul 30, 2011 12:02
1. Ставим openssl-perl, 389-ds, dovecot, sendmail, sendmail-cf(!!!)
2. Генерируем самоподписаный Root Certificate, субъектом пишем например такой:
C=RU, O=Example Ltd. Company, OU=IT Dept, CN=Certification Authority
3. Определяемся с именами хост-служб!!!:
LDAP-сервер - ldap.example.com
WWW-сервер - example.com
Почтовый сервер - mail.example.com
5. Генерируем сертификаты для сервисов, то есть сертификаты на следующих субъектов:
C=RU, O=Example Ltd. Company, CN=ldap.example.com -- для LDAP(389-DS)
C=RU, O=Example Ltd. Company, CN=example.com -- для HTTPS
C=RU, O=Example Ltd. Company, CN=mail.example.com -- для почты (dovecot, sendmail)
Создаем .p12-файл для сертификата сервера LDAP:
openssl pkcs12 -inkey ldap.example.com.key -in ldap.example.com.crt -out ldap.example.com.p12 -nodes -name "LDAP server"
6. Сертификаты, ключи и сертификат CA складываем например в /etc/pki/example.com
на каталог ставим права (root:root 755)
на файлы сертификатов (root:root 644)
на ключи сертификатов ставим права (root:root 600)
7. Прописываем сертфифкаты и ключи:
Dovecot -> в /etc/dovecot/conf.d/10-ssl.conf
Sendmail -> в /etc/mail/sendmail.mc(!!!)
8. Подкидываем наш Root Certificate в /etc/opelndap/cacerts - это нужно для валидной работы LDAPовских утилит, иначе будет ж..па:
# ln -s /etc/pki/example.com/root-ca.crt /etc/openldap/cacerts
# c_rehash /etc/openldap/cacerts
(*) Утилита c_rehash взялась из openssl-perl
9. Развертываем каталог (setup-ds-admin.pl)
10. Стартуем 389-console и настраиваем сертификаты:
идем в упраление сервером каталога
выбираем Manage certificates
задаем пароль для базы сертификатов
импортируем корневой сертификат
Использую pk12util импортируем P12 с сертифкатом сервера LDAP в его базу ключей:
pk12util -d /etc/dirsrv/slapd-ldap -i ldap.example.com.p12
Создаем PIN-файл для базы сертификатов со следующим содержанием:
# cat /etc/dirsrv/slapd-ldap/pin.txt
Internal (Software) Token:******
Вместо звездочек подставляем ваш ранее заданый пароль для базы сертификатов
Рестартуем сервер каталога
Идем в его настройки, включаем шифрование, выбираем сертифкат для ldap.example.com, жмем Save
Нас предупреждают, мы запоминаем предупреждение, оптравляемся в SSH и еще раз перестартовываем сервер каталога (service dirsrv restart)
Пароль для базы сертификатов прочтется из pin.txt
11. Проверяем, что у нас работает ldapsearch -H ldaps://ldap.example.com ...
12. Настраиваем SSSD чтобы он работал через LDAPS, указываем id provider, chpass provider и auth provider - везде LDAP.
Рекомендации по настройке SSSD в связке с 389-ds (FDS, RHDS):
ldap_schema = rfc2307bis
ldap_group_member = uniqueMemeber
enumerate = true
О да, для настройки PAM и NSS на использование SSSD используем authconfig: authconfig --update --enablemkhomedir --enablesssd --enablesssdauth
13. Заводим юзеров и группы, проверяем командой getent passwd <имя юзера> и getent group <имя группы>
14. Адресная книга в Outlook - работает нормально. В evolution - выбираем порт 389 и шифрование TLS или SSL
Править записи можно через GQ или Evolution, достаточно достойно получается.
P.S.: пользователям RedHat/CentOS/ScientificLinux - обязательно проверьте наличие /etc/ldap.conf, а также наличие в нем строки "tls_cacertdir /etc/openldap/cacerts" - без этого LDAP'овские клиенты и утилиты будут впадать в истерику по поводу того, что при подключении по SSL или TLS не удается проверить сертификат сервера. ВАЖНО - ИМЕННО cacerts!!! Потому, что в certs уже лежит база PK12 (для openldap?)
rhel,
linux,
centos,
sendmail-survival-guide,
ldap,
fedora directory server,
linux-survival-guide