OpenLDAP/TLS: различия между версиями
(Import from freesource.info) |
Ilis (обсуждение | вклад) Нет описания правки |
||
(не показаны 4 промежуточные версии 4 участников) | |||
Строка 1: | Строка 1: | ||
{{MovedFromFreesourceInfo|AltLinux/Dokumentacija/OpenLDAP/TLS}} | {{MovedFromFreesourceInfo|AltLinux/Dokumentacija/OpenLDAP/TLS}} | ||
{{span|font-size: 180%|OpenLDAP и TLS/SSL}} | |||
Ниже описан способ понятия TLS/SSL для OpenLDAP, без проверки сертификата сервера клиентам (мне важна только защита от сниффиров, правильные сертификаты описаны здесь: [[OpenLDAP|Настройка OpenLDAP и его клиентов]]). | |||
== Генерация сертификата == | |||
Для простой генерации сертификата можно использовать пакет <tt>cert-sh-functions</tt>. Готовой утилиты, для данного действа, в данном пакете нет, но содержащийся там шеллфункцией <tt>ssl_generate</tt> пользоваться достаточно удобно: | |||
Для простой генерации сертификата можно использовать пакет <tt>cert-sh-functions</tt>. Готовой утилиты, для данного действа, в данном пакете нет, но содержащийся там | |||
<pre>sudo -H sh -c '. /usr/bin/cert-sh-functions; ssl_generate ldap ' | <pre>sudo -H sh -c '. /usr/bin/cert-sh-functions; ssl_generate ldap ' | ||
Строка 28: | Строка 22: | ||
Полученный таким образом сертификат <tt>ldap.cert</tt> будет самоподписанным, а его <tt>CN=`hostname`</tt>. | Полученный таким образом сертификат <tt>ldap.cert</tt> будет самоподписанным, а его <tt>CN=`hostname`</tt>. | ||
== Настройка <tt>slapd</tt> == | |||
# Сертификат (<tt>ldap.cert</tt>) и ключ (<tt>ldap.key</tt>) необходимо скопировать в <tt>/etc/openldap/ssl/</tt>. Именно скопировать: в дистрибутивах ALT <tt>slapd</tt> запускаетя в chroot, и на фактическое место файлы переносится с помощью <tt>update_chrooted</tt> (если сделать симлинки, то в chroot`е они могут стать битыми). | # Сертификат (<tt>ldap.cert</tt>) и ключ (<tt>ldap.key</tt>) необходимо скопировать в <tt>/etc/openldap/ssl/</tt>. Именно скопировать: в дистрибутивах ALT <tt>slapd</tt> запускаетя в chroot, и на фактическое место файлы переносится с помощью <tt>update_chrooted</tt> (если сделать симлинки, то в chroot`е они могут стать битыми). | ||
# В <tt>/etc/openldap/slapd.conf</tt> добавить следующие: | # В <tt>/etc/openldap/slapd.conf</tt> добавить следующие: | ||
<pre>TLSCipherSuite HIGH:MEDIUM:+SSLv2 | <pre>TLSCipherSuite HIGH:MEDIUM:+SSLv2 | ||
# Т. к. сертификат самоподписанный: | # Т. к. сертификат самоподписанный: | ||
Строка 39: | Строка 31: | ||
TLSCertificateKeyFile /etc/openldap/ssl/ldap.key</pre> | TLSCertificateKeyFile /etc/openldap/ssl/ldap.key</pre> | ||
== Настройка клиентов == | |||
Для большинства клиентов режим проверки сертификатов можно указать через файл <tt>/etc/openldap/ldap.conf</tt> (часто это единственное место, если файл отсутствует — его нужно создать). Для своей задачи, я использую такой: | |||
Для большинства клиентов режим проверки сертификатов можно указать через файл <tt>/etc/openldap/ldap.conf</tt> (часто это единственное место, если файл | |||
<pre># | <pre># | ||
Строка 62: | Строка 53: | ||
TLS_CRLCHECK none</pre> | TLS_CRLCHECK none</pre> | ||
=== NSS/PAM === | |||
Редкий случай, когда <tt>cat /etc/openldap/ldap.conf</tt> не нужен: режим проверки серверного сертификата настраивается непосредственно в ##/etc/{nss, pam}_ldap.conf: | |||
Редкий случай, когда <tt>cat /etc/openldap/ldap.conf</tt> не нужен: режим проверки серверного сертификата настраивается непосредственно в ##/etc/{nss,pam}_ldap.conf: | |||
<pre># OpenLDAP SSL mechanism | <pre># OpenLDAP SSL mechanism | ||
Строка 79: | Строка 69: | ||
tls_checkpeer no</pre> | tls_checkpeer no</pre> | ||
=== Dovecot === | |||
В <tt>/etc/dovecot/dovecot-ldap.conf</tt> (см. [[OpenLDAP/Services/Dovecot|Open LDAP и Dovecot]]) можно только включить TLS: | В <tt>/etc/dovecot/dovecot-ldap.conf</tt> (см. [[OpenLDAP/Services/Dovecot|Open LDAP и Dovecot]]) можно только включить TLS: | ||
Строка 86: | Строка 75: | ||
tls = yes</pre> | tls = yes</pre> | ||
Остальное — через <tt>/etc/openldap/ldap.conf</tt>. | |||
=== OpenLDAP (репликация через syncprov/syncrepl) === | |||
В файле конфигурации БД (у меня <tt>/etc/openldap/slapd-hdb-db01.conf</tt>): | В файле конфигурации БД (у меня <tt>/etc/openldap/slapd-hdb-db01.conf</tt>): | ||
Строка 97: | Строка 85: | ||
starttls=yes</pre> | starttls=yes</pre> | ||
Остальное — через <tt>/etc/openldap/ldap.conf</tt>. | |||
== Ссылки == | |||
* [[Документация/OpenLDAP|Настройка OpenLDAP и его клиентов]] | * [[Документация/OpenLDAP|Настройка OpenLDAP и его клиентов]] | ||
* [[OpenLDAP/Services/Dovecot|Open LDAP и Dovecot]] | * [[OpenLDAP/Services/Dovecot|Open LDAP и Dovecot]] | ||
* [http://freesource.info/wiki//Stati/PKCS12 Создание сертификатов PKCS12] | * [http://freesource.info/wiki//Stati/PKCS12 Создание сертификатов PKCS12] | ||
{{Category navigation|title=LDAP|category=LDAP|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 14:34, 2 марта 2009
OpenLDAP и TLS/SSL
Ниже описан способ понятия TLS/SSL для OpenLDAP, без проверки сертификата сервера клиентам (мне важна только защита от сниффиров, правильные сертификаты описаны здесь: Настройка OpenLDAP и его клиентов).
Генерация сертификата
Для простой генерации сертификата можно использовать пакет cert-sh-functions. Готовой утилиты, для данного действа, в данном пакете нет, но содержащийся там шеллфункцией ssl_generate пользоваться достаточно удобно:
sudo -H sh -c '. /usr/bin/cert-sh-functions; ssl_generate ldap ' Generating ldap SSL private key: /usr/bin/cert-sh-functions: line 125: success: command not found Generating ldap SSL certificate request: /usr/bin/cert-sh-functions: line 125: success: command not found Generating ldap SSL self-signed certificate: /usr/bin/cert-sh-functions: line 125: success: command not found
Несмотря на ругань, данная операция сгенерирует следующие файлы:
/var/lib/ssl/private/ldap.key /var/lib/ssl/certs/ldap.cert /var/lib/ssl/certs/ldap.csr
Полученный таким образом сертификат ldap.cert будет самоподписанным, а его CN=`hostname`.
Настройка slapd
- Сертификат (ldap.cert) и ключ (ldap.key) необходимо скопировать в /etc/openldap/ssl/. Именно скопировать: в дистрибутивах ALT slapd запускаетя в chroot, и на фактическое место файлы переносится с помощью update_chrooted (если сделать симлинки, то в chroot`е они могут стать битыми).
- В /etc/openldap/slapd.conf добавить следующие:
TLSCipherSuite HIGH:MEDIUM:+SSLv2 # Т. к. сертификат самоподписанный: TLSCACertificateFile /etc/openldap/ssl/ldap.cert TLSCertificateFile /etc/openldap/ssl/ldap.cert TLSCertificateKeyFile /etc/openldap/ssl/ldap.key
Настройка клиентов
Для большинства клиентов режим проверки сертификатов можно указать через файл /etc/openldap/ldap.conf (часто это единственное место, если файл отсутствует — его нужно создать). Для своей задачи, я использую такой:
# # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. #BASE dc=example, dc=com #URI ldap://ldap.example.com ldap://ldap-master.example.com:666 #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never tls_reqcert never # Полностью отключаю проверку серверного сертификата: TLS_CRLCHECK none
NSS/PAM
Редкий случай, когда cat /etc/openldap/ldap.conf не нужен: режим проверки серверного сертификата настраивается непосредственно в ##/etc/{nss, pam}_ldap.conf:
# OpenLDAP SSL mechanism # start_tls mechanism uses the normal LDAP port, LDAPS typically 636 ssl start_tls #ssl on # OpenLDAP SSL options # Require and verify server certificate (yes/no) # Default is to use libldap's default behavior, which can be configured in # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for # OpenLDAP 2.0 and earlier is "no", for 2.1 and later is "yes". #tls_checkpeer yes tls_checkpeer no
Dovecot
В /etc/dovecot/dovecot-ldap.conf (см. Open LDAP и Dovecot) можно только включить TLS:
# Use TLS to connect to the LDAP server. tls = yes
Остальное — через /etc/openldap/ldap.conf.
OpenLDAP (репликация через syncprov/syncrepl)
В файле конфигурации БД (у меня /etc/openldap/slapd-hdb-db01.conf):
syncrepl rid=123 provider=ldap://ldap.my.lan:389 ... starttls=yes
Остальное — через /etc/openldap/ldap.conf.
Ссылки