Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
serverguide-precise-ru.pdf
Скачиваний:
77
Добавлен:
03.05.2015
Размер:
1.86 Mб
Скачать

Сетевая аутентификация

Вопреки распространённому мнению, вам не обязательно указывать ldaps:// в /etc/default/slapd чтобы использовать шифрование. Вам достаточно указать:

SLAPD_SERVICES="ldap:/// ldapi:///"

LDAP поверх TLS/SSL (ldaps://) осуждается в пользу StartTLS. Последний опирается на существующую LDAP сессию (прослушивание TCP порта 389), защищённую TLS/SSL в то время как LDAPS, подобно HTTPS, является другим защищённым-с-самого- начала протоколом, который работает через TCP порт 636.

Сужаем права на владение и доступ:

sudo adduser openldap ssl-cert

sudo chgrp ssl-cert /etc/ssl/private/ldap01_slapd_key.pem sudo chmod g+r /etc/ssl/private/ldap01_slapd_key.pem sudo chmod o-r /etc/ssl/private/ldap01_slapd_key.pem

Перезапустите OpenLDAP:

sudo service slapd restart

Проверьте журналы вашего хоста (/var/log/syslog), чтобы убедиться, что сервер запущен правильно.

1.9. Репликация и TLS

Если вы настроили репликацию между серверами, существует общая практика шифровать (StartTLS) трафик репликации для исключения прослушивания. Лучше всего использовать шифрование с аутентификацией, как мы делали выше. В этом разделе мы будем основываться на проделанной работе по TLS-аутентификации.

Здесь предполагается, что вы настроили репликацию между Поставщиком и Провайдером в соответствии с Раздел 1.6, «Репликация» [116] и настроили TLS для аутентификации на Поставщике, следуя инструкциям

Раздел 1.8, «TLS» [123].

Как утверждалось ранее, цель (для нас) репликации — это высокая доступность сервиса LDAP. Поскольку мы имеем TLS для аутентификации на Поставщике, мы нуждаемся в этом и на Потребителе. Однако в дополнение к этому мы хотим зашифровать трафик репликации. Что остается сделать, так это создать ключ и сертификат для Потребителя и затем провести соответствующую настройку. Мы создадим ключ и сертификат на

125

Сетевая аутентификация

Поставщике для предотвращения создания другого Центра сертификатов, а затем перенесем необходимые данные на Потребителя.

1.На Поставщике:

Создаём промежуточный каталог (который будет использоваться для переноса) и затем секретный ключ Потребителя:

mkdir ldap02-ssl cd ldap02-ssl

sudo certtool --generate-privkey \ --bits 1024 \ --outfile ldap02_slapd_key.pem

Создаём информационный файл ldap02.info для сервера Потребителя; подставляйте свои соответствующие значения:

organization = Example Company cn = ldap02.example.com tls_www_server

encryption_key signing_key expiration_days = 3650

Создаём сертификат Потребителя:

sudo certtool --generate-certificate \ --load-privkey ldap02_slapd_key.pem \ --load-ca-certific

Получаем копию сертификата CA:

cp /etc/ssl/certs/cacert.pem .

Всё готово. Теперь переносим каталог ldap02-ssl на сервер Потребителя. Здесь мы использовали scp (данные изменяем соответственно):

cd ..

scp -r ldap02-ssl user@consumer:

2.На Потребителе:

Настраиваем TLS-аутентификацию:

sudo apt-get install ssl-cert sudo adduser openldap ssl-cert

sudo cp ldap02_slapd_cert.pem cacert.pem /etc/ssl/certs sudo cp ldap02_slapd_key.pem /etc/ssl/private

sudo chgrp ssl-cert /etc/ssl/private/ldap02_slapd_key.pem sudo chmod g+r /etc/ssl/private/ldap02_slapd_key.pem sudo chmod o-r /etc/ssl/private/ldap02_slapd_key.pem

126

Сетевая аутентификация

Создаём файл /etc/ssl/certinfo.ldif со следующим содержимым (исправляйте соответственно):

dn: cn=config

add: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem

-

add: olcTLSCertificateFile

olcTLSCertificateFile: /etc/ssl/certs/ldap02_slapd_cert.pem

-

add: olcTLSCertificateKeyFile

olcTLSCertificateKeyFile: /etc/ssl/private/ldap02_slapd_key.pem

Настраиваем базу slapd-config:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f certinfo.ldif

Настраиваем /etc/default/slapd как на Поставщике (SLAPD_SERVICES).

3.На Потребителе:

Настраиваем TLS для репликации на стороне Потребителя. Изменяем существующий атрибут olcSyncrepl присоединяя некоторые TLS опции. Делая это, мы увидим в первый раз как изменять значения атрибутов.

Создайте файл consumer_sync_tls.ldif со следующим содержимым:

dn: olcDatabase={1}hdb,cn=config replace: olcSyncRepl

olcSyncRepl: rid=0 provider=ldap://ldap01.example.com bindmethod=simple binddn="cn=admin,dc=example,dc=com" credentials=secret searchbase="dc=example,dc=com" logbase="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))" schemachecking=on type=refreshAndPersist retry="60 +" syncdata=accesslog starttls=critical tls_reqcert=demand

Дополнительные опции определяют, соответственно, что Потребитель должен использовать StartTLS и что CA сертификат требуется для идентификации Поставщика. Также обратите внимание на LDIF синтаксис для изменения значений атрибута ('replace').

Применяем эти изменения:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f consumer_sync_tls.ldif

И перезапустите slapd:

127

Сетевая аутентификация

sudo service slapd restart

4.На Поставщике:

Проверяем, что TLS сессия устанавливается. В /var/log/syslog, предполагая что вы настроили уровень журналирования 'conns', вы сможете увидеть подобные записи:

slapd[3620]: conn=1047 fd=20 ACCEPT from IP=10.153.107.229:57922 (IP=0.0.0.0:389) slapd[3620]: conn=1047 op=0 EXT oid=1.3.6.1.4.1.1466.20037

slapd[3620]: conn=1047 op=0 STARTTLS

slapd[3620]: conn=1047 op=0 RESULT oid= err=0 text=

slapd[3620]: conn=1047 fd=20 TLS established tls_ssf=128 ssf=128 slapd[3620]: conn=1047 op=1 BIND dn="cn=admin,dc=example,dc=com" method=128

slapd[3620]: conn=1047 op=1 BIND dn="cn=admin,dc=example,dc=com" mech=SIMPLE ssf=0 slapd[3620]: conn=1047 op=1 RESULT tag=97 err=0 text

1.10. Установление подлинности через LDAP

Поскольку вы имеете работающий LDAP сервер, вам потребуется установить библиотеки на клиенте, которые будут знать, как и когда к нему (серверу) подсоединяться. На Ubuntu это традиционно производится установкой пакета libnss-ldap Этот пакет добавит другие инструменты, которые будут помогать вам на шаге настройки. Теперь установим этот пакет:

sudo apt-get install libnss-ldap

У вас будут запрошены подробности по вашему LDAP серверу. Если вы сделаете ошибку, вы можете попробовать снова, используя:

sudo dpkg-reconfigure ldap-auth-config

Результат диалога можно увидеть в /etc/ldap.conf. Если ваш сервер требует опции, недоступные в меню, редактируйте этот файл самостоятельно.

Теперь настраиваем LDAP профиль для NSS:

sudo auth-client-config -t nss -p lac_ldap

Настраиваем систему на использование LDAP для аутентификации:

sudo pam-auth-update

Из меню, выберите LDAP и любые другие механизмы аутентификации, которые вам требуются.

128

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]