Відмінності між версіями «LDAP-configure»

Матеріал з Wiki Welard
Перейти до навігації Перейти до пошуку
 
(Не показані 3 проміжні версії цього користувача)
Рядок 1: Рядок 1:
−
== Установка OpenLDAP сервера на CentOS 5 ==
+
== Установка OpenLDAP сервера на CentOS 5 ==
  
 
  '''yum -y install openldap'''
 
  '''yum -y install openldap'''
 +
 
и правим файл настроек  
 
и правим файл настроек  
 +
 
  /etc/openldap/slapd.conf
 
  /etc/openldap/slapd.conf
  
 
основные поля что обязательно надо поставить  
 
основные поля что обязательно надо поставить  
 +
 
  suffix  "dc=server-linux,dc=info"
 
  suffix  "dc=server-linux,dc=info"
 
  rootdn  "cn=Manager,dc=server-linux,dc=info"
 
  rootdn  "cn=Manager,dc=server-linux,dc=info"
 
  rootpw  {MD5}************************
 
  rootpw  {MD5}************************
  
−
копируем файл и устанавливаем атрибуты
+
копируем файл и устанавливаем атрибуты  
 +
 
 
  '''cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG'''
 
  '''cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG'''
 
  '''chown ldap:ldap /var/lib/ldap/DB_CONFIG'''
 
  '''chown ldap:ldap /var/lib/ldap/DB_CONFIG'''
−
и стартуем сервер
 
−
'''service ldap start'''
 
−
и что бы при каждом старте запускался
 
−
'''chkconfig ldap on'''
 
  
 +
и стартуем сервер
  
 +
'''service ldap start'''
  
−
== Защита LDAP при помощи SSL. ==
+
и что бы при каждом старте запускался
  
−
В LDAP существует возможность защиты данных, передаваемых по
+
  '''chkconfig ldap on'''
−
сети. При этом используется два метода: TLS и SASL. Первый из них не меняет
 
−
порта, на котором слушает LDAP(336), а просто организует аутентификацию
 
−
асимметрическим шифрованием, SASL же меняет порт LDAP на ldaps:// и соединение
 
−
идёт по-другому механизму: через туннель SASL. TLS намного проще в настройке,
 
−
поэтому я расскажу именно о нём. Для начала надо сгенерировать серверную пару
 
−
ключей асимметрического шифрования. Для этого в Linux удобно воспользоваться
 
−
единым центром сертификации OpenSSL(об этом я уже писал на страницах 2-го номера):
 
−
 
 
−
а) создаем rsa ключ длиной 1024 бита и сохраняем его в файле ldap.key
 
−
 
 
−
        $ openssl genrsa -out ldap.key 1024
 
−
 
 
−
б) создаём запрос на сертификацию
 
−
 
 
−
        $ openssl req -new -config .cfg -key ldap.key -out ldap.csr
 
−
 
 
−
в) создаём сертификат, которому будем доверять(CACertificate); вначале делаем
 
−
ключ длиной 2048 бит:
 
−
 
 
−
        $ openssl genrsa -des3 -out ca.key 2048
 
−
 
 
−
г) создаём self-signed сертификат сроком действия на год на основе сгенерированного ключа
 
−
 
 
−
        $ openssl req -new -x509 -days 365 -key ca.key -out ca.cert
 
−
 
 
−
д) теперь на основе созданного для LDAP ключа и доверенного сертификата создаём
 
−
сертификат LDAP
 
−
 
 
−
        $ openssl x509 -req -in ldap.csr -out ldap.cert -CA ca.cert -CAkey ca.key -CAcreateserial \
 
−
          -days 365 -extfile .cfg
 
−
 
 
−
При этом файл конфигурации .cfg должен содержать следующие расширения:
 
−
 
 
−
        [ v3_req ]
 
−
        subjectAltName  = email:copy
 
−
        basicConstraints = CA:false
 
−
        nsComment        = "LDAP server certificate"
 
−
        nsCertType      = server
 
−
 
 
−
Немного страшновато выглядит, но в ходе всех этих действий создаются два
 
−
сертификата: доверенный сертификат и подписанный им сертификат сервера. Таким
 
−
образом, сервер LDAP сможет проверить правильность своего сертификата через
 
−
доверенный сертификат. Кстати, если у вас уже есть доверенные
 
−
сертификаты, то можно воспользоваться ими: просто пропустите шаги б) и в) и на
 
−
шаге г) введите имя своего доверенного сертификата(можно также воспользоваться
 
−
моим скриптом CA).
 
−
 
 
−
Итак после всех этих действий перемещаем сертификаты и ключ сервера
 
−
LDAP(ldap.key) куда-нибудь в /etc/ssl/ldap(принято хранить все ключи и
 
−
сертификаты, созданные openssl в /etc/ssl) и делаем их доступными для чтения
 
−
только владельцу:
 
−
 
 
−
        #chmod 0400 /etc/ssl/ldap/*
 
−
 
 
−
и меняем владельца на ldap
 
−
 
 
−
        #chown ldap:ldap /etc/ssl/ldap/*
 
−
 
 
−
Настройка сервера предельно проста: необходимо просто прописать пути к
 
−
сертификатам и ключам в файле slapd.conf следующим образом:
 
−
 
 
−
        # Сертификат сервера
 
−
        TLSCertificateFile /etc/ssl/ldap/ldap.cert
 
−
        # Ключ сервера
 
−
        TLSCertificateKeyFile /etc/ssl/ldap/ldap.key
 
−
        # Доверенный сертификат
 
−
        TLSCACertificateFile /etc/ssl/ldap/ca.cert
 
−
 
 
−
Сервер можно конфигурировать и альтернативным методом - через туннель stunnel
 
−
или ssh. Обычно применяют stunnel, но для начала опять же генерируют
 
−
сертификат сервера(при этом сам LDAP не должен быть настроен для поддержки SSL
 
−
т.к. stunnel будет заменять встроенные механизмы SSL ldapa). После генерации
 
−
сертификата делаем следующее:
 
−
 
 
−
        #stunnel  -r ldap -d 636 -p /etc/ssl/stunnel/stunnel.pem
 
−
 
 
−
Записываем эту команду в один из init файлов и добавляем правило iptables для
 
−
отбрасывния сетевого трафика с порта 389 с целью повышения безопасности(это
 
−
запрещает доступ по сети к серверу ldap без механизма ssl). Для генерации
 
−
сертификата в данном случае можно применить скрипт для генерации stunnel
 
−
сертификатов, который обычно поставляется вместе с stunnel. Можно также
 
−
применить следующее:
 
−
 
 
−
        $ openssl req -new -x509 -days 365 -nodes -config stunnel.cnf \             
 
−
            -out stunnel.pem -keyout stunnel.pem                           
 
−
        $ openssl gendh 512 >> stunnel.pem   
 
−
 
 
−
для генерации self-signed сертификата и параметров для ключей
 
−
Дифлемана-Хельмана.
 
−
 
 
−
На самом деле через туннель у меня все работало просто на ура, а встроенные
 
−
механизмы работали несколько странно, хотя я перечитал все маны и руководства,
 
−
но это не помогло...
 
  
−
Теперь перезапускаем slapd и настраиваем клиентов. Для настройки клиентов надо
+
See also:  
−
прописать в файле ldap.conf следующие строки:
 
  
−
        # Аутентификация через TLS
+
[[Ldap-errors|ошибки LDAP]]
−
        ssl start_tls
 
−
        # По умолчанию клиент пытается использовать обычное соединение, закомментировав
 
−
        # следующую строчку мы ставим жирный крест на его безобразиях
 
−
        #ssl off
 

Поточна версія на 22:12, 7 квітня 2009

Установка OpenLDAP сервера на CentOS 5

yum -y install openldap

и правим файл настроек

/etc/openldap/slapd.conf

основные поля что обязательно надо поставить

suffix   "dc=server-linux,dc=info"
rootdn   "cn=Manager,dc=server-linux,dc=info"
rootpw   {MD5}************************

копируем файл и устанавливаем атрибуты

cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/DB_CONFIG

и стартуем сервер

service ldap start

и что бы при каждом старте запускался

chkconfig ldap on

See also:

ошибки LDAP