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

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

2. Samba и LDAP

В этом разделе описана интеграция Samba и LDAP. В этом случае сервер Samba выполняет роль «отдельного» сервера, а LDAP обеспечивает уровень аутентификации с описанием пользователя, группы и информации о пользователе компьютера для нормального функционирования и выполнения своих ролей (из 3 возможных). Отправной точкой в этом может служить сервер OpenLDAP с определённой директорией, которая принимает запросы аутентификации. Подробнее эта процедура описана в предыдущей главе Раздел 1, «Сервер OpenLDAP» [107]. После прочтения этой главы, вы должны решить для себя что вы хотите от вашего сервера Samba, а затем настроить его относительно ваших потребностей.

2.1. Установка программного обеспечения

Для интеграции Samba с LDAP необходимы три пакета: samba, samba-doc и smbldap-tools.

Строго говоря, пакет smbldap-tools не является необходимым, но, пока у вас нет других способов управления различными сущностями Samba

(пользователями, группами, компьютерами) в контексте LDAP, вам следует установить его.

Установите эти пакеты сейчас:

sudo apt-get install samba samba-doc smbldap-tools

2.2. Конфигурация LDAP

Теперь настроим LDAP-сервер, чтобы он мог хранить данные Samba. Для этого нам необходимо выполнить три пункта:

1.Импортировать схему

2.Индексировать записи

3.Добавить объекты

2.2.1. Схема Samba

Для того чтобы OpenLDAP использовался как дополнение к Samba, теоретически в дереве (DIT) должны присутствовать атрибуты, которые корректно описывают данные Samba. Такие атрибуты могут быть получены путём введения схемы Samba в LDAP. Сейчас мы это сделаем.

Для более детальной информации о схемах и их установке смотрите

Раздел 1.4, «Изменение базы данных настройки slapd» [113].

135

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

1.Такая схема находится в свежеустановленном вами пакете samba-doc. Её требуется скопировать и разархивировать в каталог /etc/ldap/schema:

sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema sudo gzip -d /etc/ldap/schema/samba.schema.gz

2.Получаем файл конфигурации 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/ldapns.schema include /etc/ldap/schema/pmi.schema include /etc/ldap/schema/samba.schema

3.Оставляем каталог ldif_output для вывода.

4.Определите индекс схемы:

slapcat -f schema_convert.conf -F ldif_output -n 0 | grep samba,cn=schema

dn: cn={14}samba,cn=schema,cn=config

5.Конвертируем схему в формат LDIF:

slapcat -f schema_convert.conf -F ldif_output -n0 -H \ ldap:///cn={14}samba,cn=schema,cn=config

6.Редактируем созданный файл cn=samba.ldif, удаляя индексную информацию, по достижению:

dn: cn=samba,cn=schema,cn=config

...

cn: samba

Удалите нижние строки:

structuralObjectClass: olcSchemaConfig entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95 creatorsName: cn=config

136

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

createTimestamp: 20080827045234Z

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

modifyTimestamp: 20080827045234Z

Значения ваших атрибутов могут быть другими.

7.Добавляем новую схему:

sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\=samba.ldif

Для запроса и просмотра новой схемы введите:

sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config 'cn=*samba*'

2.2.2. Индексы Samba

Теперь, когда slapd знает о атрибутах Samba, мы можем создать несколько индексов на их основе. Индексация записей является способом повышения производительности, когда клиент осуществляет выборочный поиск в дереве (DIT).

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

dn: olcDatabase={1}hdb,cn=config changetype: modify

add: olcDbIndex olcDbIndex: uidNumber eq olcDbIndex: gidNumber eq olcDbIndex: loginShell eq

olcDbIndex: uid eq,pres,sub olcDbIndex: memberUid eq,pres,sub olcDbIndex: uniqueMember eq,pres olcDbIndex: sambaSID eq

olcDbIndex: sambaPrimaryGroupSID eq olcDbIndex: sambaGroupType eq olcDbIndex: sambaSIDList eq olcDbIndex: sambaDomainName eq olcDbIndex: default sub

Используйте утилиту ldapmodify для загрузки новых индексов:

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

Если всё настроено правильно, вы увидите новые индексы, используя утилиту ldapsearch:

sudo ldapsearch -Q -LLL -Y EXTERNAL -H \ ldapi:/// -b cn=config olcDatabase={1}hdb olcDbIndex

137

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