Это старая версия документа.
Содержание
Samba и LDAP
В этом разделе описана интеграция Samba и LDAP. В этом случае сервер Samba выполняет роль «отдельного» сервера, а LDAP обеспечивает уровень авторизации с описанием пользователя, группы и информации о пользователе компьютера для нормального функционирования и выполнения своих ролей (из 3 возможных). Отправной точкой в этом может служить сервер OpenLDAP с определённой директорией, которая принимает запросы авторизации. Подробнее эта процедура описана в предыдущей главе OpenLDAP сервер. После прочтения этой главы, вы должны решить для себя что вы хотите от вашего сервера Samba, а затем настроить его относительно ваших потребностей.
Установка пакетов
Для правильной интеграции Samba и LDAP вам необходимо установить три пакета: samba, samba-doc и smbldap-tools. Откровенно говоря, пакет smbldap-tools не является необходимым, но если вы хотите настроить ваш сервер иным способом, он может вам понадобится в дальнейшем.
Для установки введите в терминале:
sudo apt-get install samba samba-doc smbldap-tools
Настройка LDAP
Теперь настроим LDAP сервер, чтобы он мог хранить данные Samba. Для этого нам необходимо выполнить три пункта:
- Импортировать схему
- Индексировать записи
- Добавить объекты
Схема Samba
Для того чтобы OpenLDAP использовался как дополнение к Samba, теоретически в дереве (DIT) должны присутствовать атрибуты которые корректно описывают данные Samba. Такие атрибуты могут быть получены путем введения схемы Samba в LDAP. Сейчас мы это сделаем.
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:
dn: cn=samba,cn=schema,cn=config ... cn: samba
Удалив следующие строки:
structuralObjectClass: olcSchemaConfig entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95 creatorsName: cn=config 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*'
Индексы 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