OpenLDAP/TLS: различия между версиями

Материал из ALT Linux Wiki
(→‎OpenLDAP и TLS/SSL: cosmetic changes)
Нет описания правки
 
Строка 1: Строка 1:
{{MovedFromFreesourceInfo|AltLinux/Dokumentacija/OpenLDAP/TLS}}
{{MovedFromFreesourceInfo|AltLinux/Dokumentacija/OpenLDAP/TLS}}
 
{{span|font-size: 180%|OpenLDAP и TLS/SSL}}
== OpenLDAP и TLS/SSL ==
 
__TOC__
 


Ниже описан способ понятия TLS/SSL для OpenLDAP, без проверки сертификата сервера клиентам (мне важна только защита от сниффиров, правильные сертификаты описаны здесь: [[OpenLDAP|Настройка OpenLDAP и его клиентов]]).
Ниже описан способ понятия TLS/SSL для OpenLDAP, без проверки сертификата сервера клиентам (мне важна только защита от сниффиров, правильные сертификаты описаны здесь: [[OpenLDAP|Настройка OpenLDAP и его клиентов]]).


=== Генерация сертификата ===
== Генерация сертификата ==
 
Для простой генерации сертификата можно использовать пакет <tt>cert-sh-functions</tt>. Готовой утилиты, для данного действа, в данном пакете нет, но содержащийся там шеллфункцией <tt>ssl_generate</tt> пользоваться достаточно удобно:
Для простой генерации сертификата можно использовать пакет <tt>cert-sh-functions</tt>. Готовой утилиты, для данного действа, в данном пакете нет, но содержащийся там шелфункцией <tt>ssl_generate</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 '
Строка 27: Строка 22:
Полученный таким образом сертификат <tt>ldap.cert</tt> будет самоподписанным, а его <tt>CN=`hostname`</tt>.
Полученный таким образом сертификат <tt>ldap.cert</tt> будет самоподписанным, а его <tt>CN=`hostname`</tt>.


=== Настройка <tt>slapd</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
# Т. к. сертификат самоподписанный:
# Т. к. сертификат самоподписанный:
Строка 38: Строка 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> (часто это единственное место, если файл отсутствует — его нужно создать). Для своей задачи, я использую такой:


Строка 61: Строка 53:
TLS_CRLCHECK none</pre>
TLS_CRLCHECK none</pre>


==== NSS/PAM ====
=== 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:


Строка 78: Строка 69:
tls_checkpeer no</pre>
tls_checkpeer no</pre>


==== Dovecot ====
=== 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:


Строка 87: Строка 77:
Остальное — через <tt>/etc/openldap/ldap.conf</tt>.
Остальное — через <tt>/etc/openldap/ldap.conf</tt>.


==== OpenLDAP (репликация через syncprov/syncrepl) ====
=== OpenLDAP (репликация через syncprov/syncrepl) ===
 
В файле конфигурации БД (у меня <tt>/etc/openldap/slapd-hdb-db01.conf</tt>):
В файле конфигурации БД (у меня <tt>/etc/openldap/slapd-hdb-db01.conf</tt>):


Строка 98: Строка 87:
Остальное — через <tt>/etc/openldap/ldap.conf</tt>.
Остальное — через <tt>/etc/openldap/ldap.conf</tt>.


=== Ссылки ===
== Ссылки ==
 
* [[Документация/OpenLDAP|Настройка OpenLDAP и его клиентов]]
* [[Документация/OpenLDAP|Настройка OpenLDAP и его клиентов]]
* [[OpenLDAP/Services/Dovecot|Open LDAP и Dovecot]]
* [[OpenLDAP/Services/Dovecot|Open LDAP и Dovecot]]

Текущая версия от 11:34, 2 марта 2009

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.

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

  1. Сертификат (ldap.cert) и ключ (ldap.key) необходимо скопировать в /etc/openldap/ssl/. Именно скопировать: в дистрибутивах ALT slapd запускаетя в chroot, и на фактическое место файлы переносится с помощью update_chrooted (если сделать симлинки, то в chroot`е они могут стать битыми).
  2. В /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.

Ссылки