SambaSMBLdap

Материал из Русский WINE
Перейти к: навигация, поиск

SMB+LDAP

В данной статье будет рассмотрен инструмент Smbldap-tools, набор скриптов, который обеспечивает синхронную работу с базами данных пользователей, групп и компьютеров сервера Samba и LDAP каталога.

Иными словами, с его помощью вы сможете использовать в файловом сервере Samba логины и пароли из LDAP.

Установка

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

Настройка LDAP

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

  • Импортировать схему
  • Индексировать записи
  • Добавить объекты

Схема Samba

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

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

#cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema
#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 -l cn=samba.ldif

6. Редактируем созданный файл cn=samba.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. Добавляем новую схему:

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

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

#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

Добавление объектов Samba к LDAP

Далее настройте пакет smbldap-tools для соответствия среды работы. Пакет поставляется со скриптом конфигурации, в котором указаны вопросы о необходимых опциях установки. Для запуска скрипта введите в терминале:

sudo gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz
sudo perl /usr/share/doc/smbldap-tools/configure.pl

Если у вас есть резервная копия, продолжайте наполнять директорию:

sudo smbldap-populate

Вы можете создать файл LDIF содержащий новые объекты Samba выполнив sudo smbldap-populate -e samba.ldif. Это позволит просматривать изменения, убедившись, что все работает правильно. Если это так, перезапустите скрипт без опции '-e'. Либо вы можете взять файл LDIF и импортировать его данные в обычном режиме.

Сейчас ваша директория LDAP имеет всю необходимую информацию для авторизации пользователей Samba.

Конфигурация Samba

Есть несколько способов настройки Samba. Более подробную информацию смотри в разделе «Windows Networking». Чтобы настроить Samba для использования LDAP необходимо отредактировать конфигурационный файл /etc/samba/smb.conf указав комментарий в значении passdb и добавив некоторые значения для работы LDAP:

# passdb backend = tdbsam

# LDAP Settings
   passdb backend = ldapsam:ldap://hostname
   ldap suffix = dc=example,dc=com
   ldap user suffix = ou=People
   ldap group suffix = ou=Groups
   ldap machine suffix = ou=Computers
   ldap idmap suffix = ou=Idmap
   ldap admin dn = cn=admin,dc=example,dc=com
   ldap ssl = start tls
   ldap passwd sync = yes
...
   add machine script = sudo /usr/sbin/smbldap-useradd -t 0 -w "%u"

Измените значения для вашей конфигурации.

Перегрузите сервер Samba для применения изменений.

sudo restart smbd
sudo restart nmbd

Теперь укажите Samba пароль DN пользователя root (который указывается при установке пакета slapd):

sudo smbpasswd -w password

Если у вас уже есть существующие пользователи LDAP, которых вы хотите включить в вашу конфигурацию Samba, они должны иметь необходимые атрибуты. Утилита smbpasswd подойдет для этого наилучшим образом (ваш компьютер должен иметь возможность видеть (нумеровать) этих пользователей через NSS; или же должны быть установлены и настроены пакеты libnss-ldapd или libnss-ldap):

sudo smbpasswd -a username

Вам будет предложено ввести пароль. Это рассматривается как выдача нового пароля пользователю, что делает его таким как прежде и является разумным решением.

Для настройки пользователей, групп и учётных записей на компьютерах используйте стандартные утилиты предоставляемые пакетом smbldap-tools. Вот несколько примеров:

1. Добавление нового пользователя:

#smbldap-useradd -a -P username

Опция '-a' добавляет атрибут Samba, а опция '-P' вызывает утилиту smbldap-passwd, после того как пользователь создан, позволяя создать новый пароль для этого пользователя.

2. Удаление пользователя:

#smbldap-userdel username

В этой команде также можно использовать опцию '-r' для удаления домашней директории пользователя.

3. Добавление группы:

#smbldap-groupadd -a groupname

В smbldap-useradd опция '-a' добавляет атрибуты Samba.

4. Сделать существующего пользователя членом группы:

#smbldap-groupmod -m username groupname

Опция -m может добавлять более одного пользователя за раз, если использовать список, разделенный запятыми.

5. Удаление пользователя из группы:

#smbldap-groupmod -x username groupname

6. Добавить в Samba учетную запись компьютера:

#smbldap-useradd -t 0 -w username

Замените username на имя рабочей станции. Опция -t 0 создает учетную запись без задержки, в то время как опция -w определяет пользователя как учетную запись компьютера. Также обратите внимание, что параметр add machine script в /etc/samba/smb.conf изменен чтобы использовался smbldap-useradd.

Источник

Samba
Search.png
Файловое хранилище Samba как файловый серверПодключение общей папкиSamba как файловый сервер в доменеSMB+LDAP
Служба каталогов
Сервер Samba как служба каталогов (AD)Изменение IP-адреса ADРепликация сервера ADРезервное копирование и восстановлениеУправление пользователямиГрупповые политикиГрупповая политика паролей
Клиент Подключение клиента AD Через WinbindЧерез SSSD
Бэкэнды идентификаторов winbind idmap config tdbidmap config adidmap config rididmap config autorid
Прочее Samba как сервер печатиПроверка конфигурационного файлаУтилиты командной строки
Информация SSSD vs WinbindУстановка Samba