Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
wiki:руководство_по_ubuntu_server:авторизация_по_сети:samba_and_ldap [2012/06/12 19:24] |
wiki:руководство_по_ubuntu_server:авторизация_по_сети:samba_and_ldap [2012/06/13 07:31] [Настройка LDAP] |
||
---|---|---|---|
Строка 10: | Строка 10: | ||
В этом разделе описана интеграция Samba и LDAP. В этом случае сервер Samba выполняет роль "отдельного" сервера, а LDAP обеспечивает уровень авторизации с описанием пользователя, группы и информации о пользователе компьютера для нормального функционирования и выполнения своих ролей (из 3 возможных). Отправной точкой в этом может служить сервер OpenLDAP с определённой директорией, которая принимает запросы авторизации. Подробнее эта процедура описана в предыдущей главе [[wiki:руководство_по_ubuntu_server:авторизация_по_сети:openldap_server|OpenLDAP сервер]]. После прочтения этой главы, вы должны решить для себя что вы хотите от вашего сервера Samba, а затем настроить его относительно ваших потребностей. | В этом разделе описана интеграция Samba и LDAP. В этом случае сервер Samba выполняет роль "отдельного" сервера, а LDAP обеспечивает уровень авторизации с описанием пользователя, группы и информации о пользователе компьютера для нормального функционирования и выполнения своих ролей (из 3 возможных). Отправной точкой в этом может служить сервер OpenLDAP с определённой директорией, которая принимает запросы авторизации. Подробнее эта процедура описана в предыдущей главе [[wiki:руководство_по_ubuntu_server:авторизация_по_сети:openldap_server|OpenLDAP сервер]]. После прочтения этой главы, вы должны решить для себя что вы хотите от вашего сервера Samba, а затем настроить его относительно ваших потребностей. | ||
- | =====Установка пакетов===== | + | ====Установка пакетов==== |
Для правильной интеграции Samba и LDAP вам необходимо установить три пакета: //samba, samba-doc// и //smbldap-tools//. | Для правильной интеграции Samba и LDAP вам необходимо установить три пакета: //samba, samba-doc// и //smbldap-tools//. | ||
Строка 18: | Строка 18: | ||
<code>sudo apt-get install samba samba-doc smbldap-tools</code> | <code>sudo apt-get install samba samba-doc smbldap-tools</code> | ||
- | + | ====Настройка LDAP==== | |
- | =====Настройка LDAP===== | + | |
Теперь настроим LDAP сервер, чтобы он мог хранить данные Samba. Для этого нам необходимо выполнить три пункта: | Теперь настроим LDAP сервер, чтобы он мог хранить данные Samba. Для этого нам необходимо выполнить три пункта: | ||
Строка 26: | Строка 25: | ||
- Добавить объекты | - Добавить объекты | ||
- | Схема Samba | + | ===Схема Samba=== |
- | ---- | + | |
Для того чтобы OpenLDAP использовался как дополнение к Samba, теоретически в дереве (DIT) должны присутствовать атрибуты которые корректно описывают данные Samba. Такие атрибуты могут быть получены путем введения схемы Samba в LDAP. Сейчас мы это сделаем. | Для того чтобы OpenLDAP использовался как дополнение к Samba, теоретически в дереве (DIT) должны присутствовать атрибуты которые корректно описывают данные Samba. Такие атрибуты могут быть получены путем введения схемы Samba в LDAP. Сейчас мы это сделаем. | ||
<note>Для более детальной информации о схемах и их установке смотри [[wiki:руководство_по_ubuntu_server:авторизация_по_сети/openldap_server#изменение_базы_данных_настройки_slapd|Изменение базы данных настройки slapd]].</note> | <note>Для более детальной информации о схемах и их установке смотри [[wiki:руководство_по_ubuntu_server:авторизация_по_сети/openldap_server#изменение_базы_данных_настройки_slapd|Изменение базы данных настройки slapd]].</note> | ||
| | ||
- | 1. Такая схема может быть найдена в установленном вами пакете samba-doc. Этот файл нужно скопировать и разархивировать в директорию ///etc/ldap/schema// следующим образом: | + | 1. Такая схема находится в свежеустановленном вами пакете samba-doc. Ее требуется скопировать и разархивировать в директорию ///etc/ldap/schema// следующим образом: |
| | ||
<code>sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema | <code>sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema | ||
sudo gzip -d /etc/ldap/schema/samba.schema.gz</code> | sudo gzip -d /etc/ldap/schema/samba.schema.gz</code> | ||
- | 2. Найти файл конфигурации schema_convert.conf, который должен содержать следующие строки: | + | 2. Получаем файл конфигурации schema_convert.conf, который должен содержать следующие строки: |
<code> | <code> | ||
include /etc/ldap/schema/core.schema | include /etc/ldap/schema/core.schema | ||
Строка 56: | Строка 55: | ||
</code> | </code> | ||
- | 3. Оставить директорию ldif_output исходящей. | + | 3. Оставляем каталог ldif_output для вывода. |
- | 4. Определить индекс для схемы: | + | 4. Определяем индекс для схемы: |
<code>slapcat -f schema_convert.conf -F ldif_output -n 0 | grep samba,cn=schema | <code>slapcat -f schema_convert.conf -F ldif_output -n 0 | grep samba,cn=schema | ||
dn: cn={14}samba,cn=schema,cn=config</code> | dn: cn={14}samba,cn=schema,cn=config</code> | ||
- | 5. Конвертировать схему в формат LDIF: | + | 5. Конвертируем схему в формат LDIF: |
+ | <code>slapcat -f schema_convert.conf -F ldif_output -n0 -H \ | ||
+ | ldap:///cn={14}samba,cn=schema,cn=config -l cn=samba.ldif</code> | ||
+ | |||
+ | 6. Редактируем созданный файл cn=samba.ldif, удаляя индексную информацию, по достижению: | ||
<code>dn: cn=samba,cn=schema,cn=config | <code>dn: cn=samba,cn=schema,cn=config | ||
... | ... | ||
cn: samba</code> | cn: samba</code> | ||
- | Удалив следующие строки: | + | удалите строки в конце: |
<code>structuralObjectClass: olcSchemaConfig | <code>structuralObjectClass: olcSchemaConfig | ||
entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95 | entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95 | ||
Строка 76: | Строка 79: | ||
modifyTimestamp: 20080827045234Z</code> | modifyTimestamp: 20080827045234Z</code> | ||
- | //Внимание: данные могут незначительно отличаться!// | + | //Внимание: Ваши данные могут отличаться!// |
- | 7. Добавить новую схему: | + | 7. Добавляем новую схему: |
<code>sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\=samba.ldif</code> | <code>sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\=samba.ldif</code> | ||
Строка 84: | Строка 87: | ||
<code>sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config 'cn=*samba*'</code> | <code>sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config 'cn=*samba*'</code> | ||
- | Индексы Samba | + | ===Индексы Samba=== |
- | ---- | + | |
Теперь, когда slapd знает о атрибутах Samba, мы можем создать несколько индексов на их основе. Индексация записей является способом повышения производительности, когда клиент осуществляет выборочный поиск в дереве (DIT). | Теперь, когда slapd знает о атрибутах Samba, мы можем создать несколько индексов на их основе. Индексация записей является способом повышения производительности, когда клиент осуществляет выборочный поиск в дереве (DIT). | ||
Строка 105: | Строка 108: | ||
olcDbIndex: default sub</code> | olcDbIndex: default sub</code> | ||
- | Используйте строку //ldapmodify// для загрузки новых индексов: | + | Используйте утилиту //ldapmodify// для загрузки новых индексов: |
<code>sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f samba_indices.ldif</code> | <code>sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f samba_indices.ldif</code> | ||
- | Если все настроено правильно, вы увидите новые индексы используя //ldapsearch//: | + | Если все настроено правильно, вы увидите новые индексы используя утилиту //ldapsearch//: |
<code>sudo ldapsearch -Q -LLL -Y EXTERNAL -H \ | <code>sudo ldapsearch -Q -LLL -Y EXTERNAL -H \ | ||
ldapi:/// -b cn=config olcDatabase={1}hdb olcDbIndex</code> | ldapi:/// -b cn=config olcDatabase={1}hdb olcDbIndex</code> | ||
+ | |||
+ | Добавление объектов Samba к LDAP | ||
+ | ---- | ||
+ | Далее настройте пакет smbldap-tools для соответствия среды работы. Пакет поставляется со скриптом конфигурации, в котором указаны вопросы о необходимых опциях установки. Для запуска скрипта введите в терминале: | ||
+ | <code>sudo gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz | ||
+ | sudo perl /usr/share/doc/smbldap-tools/configure.pl</code> | ||
+ | |||
+ | Если у вас есть резервная копия, продолжайте наполнять директорию: | ||
+ | <code>sudo smbldap-populate</code> | ||
+ | |||
+ | Вы можете создать файл LDIF содержащий новые обьекты Samba выполнив //sudo smbldap-populate -e samba.ldif//. Это позволит просматривать изменения, убедившись, что все работает правильно. Если это так, перезапустите скрипт без опции '-e'. Либо вы можете взять файл LDIF и импортировать его данные в обычном режиме. | ||
+ | |||
+ | Сейчас ваша директория LDAP имеет всю необходимую информацию для авторизации пользователей Samba. | ||
+ | |||
+ | ====Конфигурация Samba==== | ||
+ | |||
+ | Есть несколько способов настройки Samba. Более подробную информацию смотри в разделе "Windows Networking". Чтобы настроить Samba для использования LDAP необходимо отредактировать конфигурационный файл /etc/samba/smb.conf указав комментарий в значении //passdb// и добавив некоторые значения для работы LDAP: | ||
+ | <code># 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"</code> | ||
+ | |||
+ | //Измените значения для вашей конфигурации.// | ||
+ | |||
+ | Перегрузите сервер Samba для применения изменений. | ||
+ | |||
+ | <code>sudo restart smbd | ||
+ | sudo restart nmbd</code> | ||
+ | |||
+ | Теперь укажите Samba пароль DN пользователя root (который указывается при установке пакета slapd): | ||
+ | |||
+ | <code>sudo smbpasswd -w password</code> | ||
+ | |||
+ | Если у вас уже есть существующие пользователи LDAP, которых вы хотите включить в вашу конфигурацию Samba, они должны иметь необходимые атрибуты. Утилита //smbpasswd// подойдет для этого наилучшим образом (ваш компьютер должен иметь возможность видеть (нумеровать) этих пользователей через NSS; или же должны быть установлены и настроены пакеты libnss-ldapd или libnss-ldap): | ||
+ | |||
+ | <code>sudo smbpasswd -a username</code> | ||
+ | |||
+ | Вам будет предложено ввести пароль. Это рассматривается как выдача нового пароля пользователю, что делает его таким как прежде и является разумным решением. | ||
+ | |||
+ | Для настройки пользователей, групп и учётных записей на компьютерах используйте стандартные утилиты предоставляемые пакетом smbldap-tools. Вот несколько примеров: | ||
+ | |||
+ | 1. Добавление нового пользователя: | ||
+ | <code>sudo smbldap-useradd -a -P username</code> | ||
+ | |||
+ | Опция '-a' добавляет атрибут Samba, а опция '-P' вызывает утилиту //smbldap-passwd//, после того как пользователь создан, позволяя создать новый пароль для этого пользователя. | ||
+ | |||
+ | 2. Удаление пользователя: | ||
+ | <code>sudo smbldap-userdel username</code> | ||
+ | |||
+ | В этой команде также можно использовать опцию '-r' для удаления домашней директории пользователя. | ||
+ | |||
+ | 3. Добавление группы: | ||
+ | <code>sudo smbldap-groupadd -a groupname</code> | ||
+ | |||
+ | В **smbldap-useradd** опция '-a' добавляет атрибуты Samba. | ||
+ | |||
+ | 4. Сделать существующего пользователя членом группы: | ||
+ | <code>sudo smbldap-groupmod -m username groupname</code> | ||
+ | Опция -m может добавлять более одного пользователя за раз, если использовать список, разделенный запятыми. | ||
+ | |||
+ | 5. Удаление пользователя из группы: | ||
+ | <code>sudo smbldap-groupmod -x username groupname</code> | ||
+ | |||
+ | 6. Добавить в Samba учетную запись компьютера: | ||
+ | <code>sudo smbldap-useradd -t 0 -w username</code> | ||
+ | Замените **username** на имя рабочей станции. Опция **-t 0** создает учетную запись без задержки, в то время как опция **-w** определяет пользователя как учетную запись компьютера. Также обратите внимание, что параметр **add machine script** в /etc/samba/smb.conf изменен чтобы использовался **smbldap-useradd**. | ||
+ | |||
+ | Существуют утилиты в пакете **smbldap-tools**, которые тут не рассматривались. Здесь полный список: | ||
+ | |||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-groupadd.8.html|smbldap-groupadd]] \\ | ||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-groupdel.8.html|smbldap-groupdel]] \\ | ||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-groupmod.8.html|smbldap-groupmod]] \\ | ||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-groupshow.8.html|smbldap-groupshow]] \\ | ||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-passwd.8.html|smbldap-passwd]] \\ | ||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-populate.8.html|smbldap-populate]] \\ | ||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-useradd.8.html|smbldap-useradd]] \\ | ||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-userdel.8.html|smbldap-userdel]] \\ | ||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-userinfo.8.html|smbldap-userinfo]] \\ | ||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-userlist.8.html|smbldap-userlist]] \\ | ||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-usermod.8.html|smbldap-usermod]] \\ | ||
+ | [[http://manpages.ubuntu.com/manpages/en/man8/smbldap-usershow.8.html|smbldap-usershow]] | ||
+ | |||
+ | ====Ссылки==== | ||
+ | |||
+ | For more information on installing and configuring Samba see Windows Networking of this Ubuntu Server Guide. | ||
+ | |||
+ | There are multiple places where LDAP and Samba is documented in the upstream Samba HOWTO Collection. | ||
+ | |||
+ | Regarding the above, see specifically the passdb section. | ||
+ | |||
+ | Although dated (2007), the Linux Samba-OpenLDAP HOWTO contains valuable notes. | ||
+ | |||
+ | The main page of the Samba Ubuntu community documentation has a plethora of links to articles that may prove useful. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | <style float-right> | ||
+ | [[wiki:руководство_по_ubuntu_server:авторизация_по_сети:openldap_server|<-назад]] | | ||
+ | [[wiki:руководство_по_ubuntu_server:авторизация_по_сети:kerberos|далее->]]</style> | ||
+ |