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

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

4. Kerberos и LDAP

Большинство людей не используют Kerberos сам по себе; как только пользователь аутентифицировался (Kerberos), нам нужно вычислить что пользователь может делать (авторизация). И это становится задачей таких программ, как LDAP.

Репликация базы данных учётных записей (принципалов) Kerberos между двумя серверами может быть сложной и добавляет в вашу сеть дополнительную базу данных пользователей. К счастью, MIT Kerberos можно сконфигурировать для использования каталога LDAP в качестве базы данных принципалов. В этом разделе рассматривается конфигурирование первичного и вторичного серверов Kerberos для использования OpenLDAP для базы данных принципалов.

Приведенные здесь примеры предполагают использование MIT

Kerberos и OpenLDAP.

4.1. Настройка OpenLDAP

В первую очередь, schema должен быть загружен на OpenLDAP сервер, который имеет подключения к сети на Первичном и Вторичном KDC. Далее в этом разделе предполагается, что у вас также настроена репликация LDAP, как минимум, между двумя серверами. Для получения информации о настройке OpenLDAP смотрите Раздел 1, «Сервер OpenLDAP» [107].

Необходимо также настроить OpenLDAP для TLS и SSL-соединений, чтобы трафик между KDC и LDAP сервером был в зашифрованном виде. Подробнее смотрите в Раздел 1.8, «TLS» [123] .

cn=admin,cn=config — пользователь, которого мы создали с правами редактирования базы ldap. Много раз это был RootDN. Измените его значение для соответствия вашим настройкам.

Для загрузки схемы в LDAP, на сервере LDAP установите пакет krb5-kdc- ldap. В терминале введите:

sudo apt-get install krb5-kdc-ldap

• Далее распакуйте файл kerberos.schema.gz:

sudo gzip -d /usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz

sudo cp /usr/share/doc/krb5-kdc-ldap/kerberos.schema /etc/ldap/schema/

151

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

Схема kerberos должна быть добавлена к дереву cn=config. Процедура добавления новой схемы к slapd детально описана в секции Раздел 1.4, «Изменение базы данных настройки slapd» [113].

1.Сначала создадим файл настроек с именем schema_convert.conf или другим значащим именем, содержащим следующие строки:

include /etc/ldap/schema/core.schema include /etc/ldap/schema/collective.schema include /etc/ldap/schema/corba.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/duaconf.schema include /etc/ldap/schema/dyngroup.schema

include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/java.schema

include /etc/ldap/schema/misc.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/openldap.schema include /etc/ldap/schema/ppolicy.schema include /etc/ldap/schema/kerberos.schema

2.Создадим временный каталог для хранения LDIF файлов:

mkdir /tmp/ldif_output

3.Теперь используем slapcat для конвертирования файлов схемы:

slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s \ "cn={12}kerberos,cn=schema,cn=con

Измените имена файла и каталога выше для соответствия вашим именам, если они отличаются.

4.Отредактируйте созданный файл /tmp/cn\=kerberos.ldif, изменив следующие атрибуты:

dn: cn=kerberos,cn=schema,cn=config

...

cn: kerberos

И удалите следующие строки в конце файла:

structuralObjectClass: olcSchemaConfig entryUUID: 18ccd010-746b-102d-9fbe-3760cca765dc creatorsName: cn=config

createTimestamp: 20090111203515Z

entryCSN: 20090111203515.326445Z#000000#000#000000 modifiersName: cn=config

modifyTimestamp: 20090111203515Z

152

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

Значения атрибутов могут отличаться, просто убедитесь, что атрибуты удалены.

5.Загрузите новую схему с помощью ldapadd:

ldapadd -x -D cn=admin,cn=config -W -f /tmp/cn\=kerberos.ldif

6.Добавьте индекс для атрибута krb5principalname:

ldapmodify -x -D cn=admin,cn=config -W

Enter LDAP Password:

dn: olcDatabase={1}hdb,cn=config add: olcDbIndex

olcDbIndex: krbPrincipalName eq,pres,sub

modifying entry "olcDatabase={1}hdb,cn=config"

7.В конце обновите списки контроля доступа (ACL):

ldapmodify -x -D cn=admin,cn=config -W

Enter LDAP Password:

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

olcAccess: to attrs=userPassword,shadowLastChange,krbPrincipalKey by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none

-

add: olcAccess

olcAccess: to dn.base="" by * read

-

add: olcAccess

olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read

modifying entry "olcDatabase={1}hdb,cn=config"

Ну вот, теперь ваш каталог LDAP готов обслуживать базу данных учётных записей Kerberos.

4.2. Настройка первичного KDC

С настроенным OpenLDAP самое время настроить KDC.

• Сначала установите необходимые пакеты, набрав в теминале:

sudo apt-get install krb5-kdc krb5-admin-server krb5-kdc-ldap

Теперь редактируем /etc/krb5.conf, добавив следующие опции в соответствующие секции:

[libdefaults]

153

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

default_realm = EXAMPLE.COM

...

[realms]

EXAMPLE.COM = {

kdc = kdc01.example.com kdc = kdc02.example.com

admin_server = kdc01.example.com admin_server = kdc02.example.com default_domain = example.com database_module = openldap_ldapconf

}

...

[domain_realm]

.example.com = EXAMPLE.COM

...

[dbdefaults]

ldap_kerberos_container_dn = dc=example,dc=com

[dbmodules]

openldap_ldapconf = { db_library = kldap

ldap_kdc_dn = "cn=admin,dc=example,dc=com"

#this object needs to have read rights on

#the realm container, principal container and realm sub-trees ldap_kadmind_dn = "cn=admin,dc=example,dc=com"

#this object needs to have read and write rights on

#the realm container, principal container and realm sub-trees ldap_service_password_file = /etc/krb5kdc/service.keyfile ldap_servers = ldaps://ldap01.example.com ldaps://ldap02.example.com ldap_conns_per_server = 5

}

Замените example.com, dc=example,dc=com, cn=admin,dc=example,dc=com, и ldap01.example.com на соответствующие домен, LDAP объект и LDAP сервер вашей сети.

• Далее используем утилиту kdb5_ldap_util для создания области:

sudo kdb5_ldap_util -D cn=admin,dc=example,dc=com create -subtrees \ dc=example,dc=com -r EXAMPLE

Создаём тайник для пароля, используемого для подключения к LDAPсерверу. Этот пароль используется опциями ldap_kdc_dn и ldap_kadmin_dn

в /etc/krb5.conf:

154

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