Краткое how-to для поднятия CA, адресной книги и почты

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

Previous post Next post
Up