winbindd
Эта страница является переводом man
winbindd(8) из пакета Samba—– Врезка не является частью man winbindd (8) и дана для понимания предмета ——
Winbind – это демон («служба» в терминах Windows), работающий на клиентах Samba и действующий как прокси для связи между PAM и NSS, работающими на компьютере Linux, с одной стороны, и Active Directory, работающей на контроллере домена, с другой. В частности, Winbind использует Kerberos для проверки подлинности с помощью Active Directory и LDAP для получения информации о пользователях и группах. Winbind также предоставляет дополнительные услуги, такие, как возможность обнаруживать контролер домена, используя алгоритм, подобный DCLOCATOR в Active Directory, и возможность сбрасывать пароли Active Directory, связываясь с контроллером домена при помощи RPC.
Winbind решает ряд проблем, сохраняющихся при простом использовании Kerberos с помощью PAM. В частности, вместо жесткого кодирования контроллера домена для проверки подлинности PAM Winbind выбирает контроллер домена путем поиска по записям локатора DNS подобно тому, как это делает модуль DC LOCATOR Microsoft.
NSS, или Name-Service Switch – отвечает за то, как и где системный вызов
nsdispatch(3) будет производить поиск разнообразной информации в системных базах вроде названий хостов, имен пользователей, паролей и т.п. В качестве системных баз используются локальные файлы вроде /etc/hosts, /etc/passwd, DNS, NIS и пр. Конфигурирование производится в файле /etc/nsswitch.conf. Формат файла имеет следующий вид: "системная база: список источников [опции]".PAM, или Pluggable Authentication Modules – изощренный модульный метод, для опознавания пользователей и их доступа к службам. Простой путь проверки использования вашей системой PAM состоит в проверке каталога
/etc на вашем диске на наличие файла pam.conf или каталога pam.d.—– Врезка не является частью man winbindd (8) и дана для понимания предмета ——
ИМЯ
Winbindd – демон (служба) NSS, которая используется Samba для преобразования имен от серверов NT.
СИНТАКСИС
winbindd [-D] [-F] [-S] [-i] [-Y] [-d <debug level>] [-s <smb config file>] [-n]
ОПИСАНИЕ
Эта программа является частью пакета
samba(7).winbindd – это демон, который предоставляет доступ сервисам NSS (реализованных в большинстве современных библиотек Си) к различным приложениям через PAM и ntlm_auth, а также в саму Samba. Даже если
winbind не прописан в nsswitch, он используется сервисами smbd, ntlm_auth, а так же PAM модулем pam_winbind.so, управляя соединениями с контроллерами доменов. В этом случае не требуется использовать параметры idmap uid и idmap gid. (Этот режим также известен, как ‘netlogon proxy only mode‘) Служба NSS предоставляет возможность получать пользовательскую и системную информацию из баз данных различных служб, NIS или DNS. Необходимое поведение настраивается в конфигурационном файле
/etc/nsswitch.conf. Пользователи и группы преобразовываются к диапазону идентификаторов пользователей и групп определенных в Samba. Служба, предоставляемая
winbindd называется ‘winbind‘ и используется для получения имен пользователей и групп с сервера Windows NT. Также эта служба может быть использована для аутентификации через модуль. Модуль
pam_winbind поддерживает типы модулей auth, account и password. Следует заметить, что модуль account просто выполняет команду getpwnam(), для подтверждения возможности получения UID пользователя, этого достаточно чтобы контроллер домена проверил права доступа. Это возможно, если библиотека libnss_winbind была корректно установлена, или был сконфигурирован альтернативный источник имен.Служба
winbindd поддерживает несколько типов баз данных:-Dесли ключ задан, то сервер действует в роли демона. Сервер запускается в фоне на соответствующем порту. Этот ключ передается
winbindd в командной строке оболочки.hostsэта база доступна только в ОС IRIX. Информация о пользователях традиционно хранится в файле
hosts(5) и используется функциями gethostbyname(3). Имена получаются через WINS сервер или broadcast.passwdинформация о пользователях традиционно хранится в файле
passwd(5) и используется функциями getpwent(3).groupинформация о группах традиционно хранится в файле
group(5) и используется функциями getgrent(3). В следующем примере конфигурационного файла
/etc/nsswitch.conf информация о пользователях и группах берется из файлов /etc/passwd и /etc/group, а затем из базы сервера Windows NT:passwd: files winbindgroup: files winbind## only available on IRIX: use winbind to resolve hosts:# hosts: files dns winbind## All other NSS enabled systems should use libnss_wins.so like this:hosts: files dns wins В следующем примере конфигурационного файла
/etc/nsswitch.conf информация о именах компютеров берется сначала из файла /etc/hosts, а затем от сервера WINS:hosts: files winsОПЦИИ
-Fесли ключ задан, то
winbindd не будет запущен как демон (служба). Дочерние процессы будут создаваться как обычные для каждого запроса на соединение, но главный процесс не будет завершен. Этот режим подходит для запуска winbindd под менеджерами процессов, такими как supervise и svscan пакета daemontools (автор Daniel J. Bernstein’s), или диспетчером процессов AIX.-Sесли ключ задан, то
winbindd будет выводить лог на стандартный поток вывода, а не в файл.-d | - - debuglevel=levellevel – целое число от 0 до 10. Если ничего не задано, то значение по умолчанию равно 0.
Чем больше значение level, тем более подробным будет лог-файл. При значении, равном нулю, будут записаны только критические ошибки и серьезные предупреждения. Уровень 1 достаточен для ежедневного запуска – при нем записывается маленький объем информации о проведенных операциях.
Уровни выше 1 будут генерировать сравнительно много записей в логе и их следует использовать при столкновении с какой-либо проблемой. Уровни выше 3 введены для использования разработчиками и генерируют ОГРОМНОЕ количество данных лога, большая часть которых чрезвычайно сложно читаема.
Заметьте, что при определении этого параметра будет игнорироваться параметр
log level из файла smb.conf.-VНапечатает номер версии программы.
-s <файл конфигурации>Указанный файл должен содержать конфигурационные данные, необходимые серверу. Информация из этого файла включает специфическую информацию о сервере, такую, как например определение используемого для printcap файла, также как и описания всех служб, предоставляемых этим сервером. Смотрите smb.conf для получения дополнительной информации. Стандартное имя конфигурационного файла определяется во время компиляции.
-l | - - log-basename=logdirectoryИмя главной директории для
log/debug файлов. Будет добавлено расширение «.progname» (например, log.smbclient, log.smbd, и т.д.). Клиент не сможет удалить лог файл.-h | - - helpНапечатает информацию об опциях командной строки.
-i
если ключ задан, то
winbindd выйдет из режима демона и отсоединится от текущего терминала. Этот параметр используется разработчиками при необходимости интерактивной отладки winbindd. Также winbindd выведет лог на стандартный поток вывода, как если бы был указан параметр –s.-n
Отключает кэширование. Это означает, что
winbindd всегда будет ждать ответа от контроллера домена прежде чем ответить клиенту. В результате все будет работать медленнее, но более точно, т.к. результаты из кэша могут быть устаревшими. Также может привести к зависанию winbindd при отсутствии ответа от DC.-Y
Режим «единого» демона. Это означает, что
winbindd будет запущен как единый процесс (так было в Samba 2.2). Стандартное поведение winbindd – запуск дочерних процессов, отвечающих за обновление устаревших записей кэша.Разрешение имени и идентификатора / ID
При создании пользователей и групп на серверах Windows NT им присваиваются абсолютно уникальные идентификаторы безопасности (SID – Security Identificator). Для преобразования пользователя или группы Windows NT в пользователя или группу unix-системы необходимо связать SID с unix-идентификатором пользователя или группы. Это является одной из функций
winbindd. После получения демоном
winbindd данных о пользователе и группе с сервера, ему становятся известными ID пользователя и группы. Далее сравниваются эти ID пользователя и группы с unix IDs и соответствующие ID сохраняются в базе данных. Предупреждение: эта база данных единственное место, где
winbindd хранит соответствия SID и unix ID. Если этот файл будет удален или поврежден, то winbindd не сможет установить соответствие между unix ID группы или пользователя и пользователем (или группой) в Windows NT.Конфигурация
Настройка демона
winbindd производится с помощью параметров в файле smb.conf(5). Все параметры должны быть определены в разделе [global] файла smb.conf:- winbind separator
- idmap uid
- idmap gid
- idmap backend
- winbind cache time
- winbind enum users
- winbind enum groups
- template homedir
- template shell
- winbind use default domain
- winbind rpc only
Пример настройки
Чтобы настроить
winbindd для просмотра пользователей и групп, а также аутентификации с контроллера домена, используйте следующую конфигурацию. Ее тестирование проводилось на довольно старом Red Hat Linux box. В
/etc/nsswitch.conf запишите следующее:passwd: files winbindgroup: files winbind В
/etc/pam.d/* замените auth строки на что-нибудь вроде этого:auth required /lib/security/pam_securetty.soauth required /lib/security/pam_nologin.soauth sufficient /lib/security/pam_winbind.soauth required /lib/security/pam_unix.so use_first_pass shadow nullok Примечание: PAM-модуль
pam_unix недавно был заменен модулем pam_pwdb. Некоторые Linux системы используют модуль pam_unix2 вместо pam_unix. Обратите внимание на то, что используются ключевые слова sufficient и use_first_pass. Теперь замените строки учетных записей следующим образом:
account required /lib/security/pam_winbind.so Следующий шаг – присоединение к домену. Для этого нужно использовать программу
net следующим образом: net join -S PDC -U Administratorименем пользователя после
-U может быть любой пользователь домена, имеющий администраторские права. Подставьте имя или IP вашего PDC вместо “PDC”. Теперь скопируйте
libnss_winbind.so в каталог /lib и pam_winbind.so в каталог /lib/security. Сделайте символическую ссылку /lib/libnss_winbind.so в /lib/libnss_winbind.so.2. Если вы используете более старую версию glibc, то целевая ссылка должна быть /lib/libnss_winbind.so.1. Наконец, настройте в
smb.conf(5) директивы:[global]winbind separator = +winbind cache time = 10template shell = /bin/bashtemplate homedir = /home/%D/%Uidmap uid = 10000-20000idmap gid = 10000-20000workgroup = DOMAINsecurity = domainpassword server = * Теперь запустите
winbindd, и вы увидите, что база данных пользователей и групп увеличилась и включает теперь ваших пользователей и группы NT. Вы можете войти в ваш unix box как пользователь домена, используя конструкцию ДОМЕН+пользователь в качестве имени пользователя. Возможно, вам понадобятся команды getent passwd и getent group для подтверждения операции изменения winbindd.
Заметки
Следующие заметки полезны при настройке и использовании
winbindd.Winbindd не будет работать если nmbd(8) на данной машине отсутствует или не запущен. При конфигурации PAM очень легко ошибиться. Поэтому прежде чем что-либо менять – удостоверьтесь в том, что вы знаете что делаете. Если вы ошибетесь при настройке PAM, то больше не сможете войти в систему.
Если
winbindd запущен на нескольких машинах, то ID пользователей и групп, присвоенные winbindd, разных машин не будут одинаковыми. ID пользователей или групп будут верны только для локальной машины (если только не настроен общий idmap backend). Если файл соответствия Windows NT SID и UNIX-идентификаторов пользователей и групп будет поврежден или уничтожен, то созданные связи будут потеряны.
Сигналы
Следующие сигналы могут быть использованы для управления демоном
winbindd.SIGHUPПерезагрузит файл
smb.conf(5) и применит изменившиеся параметры к winbindd. Этот сигнал также удалит из кэша информацию о пользователях и группах. Лист доверенных доменов winbindd также будет перезагружен.SIGUSR2Этот сигнал даст winbindd команду записать текущий статус в лог-файл. Лог-файлы хранятся в файле, указанном параметром log file.
Файлы
/etc/nsswitch.conf(5)Конфигурационный файл сервиса NSS.
/tmp/.winbindd/pipeИменованный канал UNIX, через который клиенты общаются с программой
winbindd. По соображениям безопасности, клиент winbind будет пытаться соединиться с демоном winbindd только если директория /tmp/.winbindd и файл /tmp/.winbindd/pipe принадлежат root’у.$LOCKDIR/winbindd_privileged/pipeИменованный канал UNIX, через который ‘привилегированные’ клиенты общаются с программой
winbindd. Из соображений безопасности доступ к некоторым функциям winbindd (например, необходимым утилите ntlm_auth) будет ограничен. По умолчанию только пользователи группы ‘root’ получают этот доступ. Администратор может изменить привилегии групп в файле $LOCKDIR/winbindd_privileged для того, чтобы программы, такие как ‘squid’ могли использовать ntlm_auth. Заметьте, что клиент winbind будет пытаться присоединиться к демону winbindd только если директория $LOCKDIR/winbindd_privileged и файл $LOCKDIR/winbindd_privileged/pipe принадлежат root’у./lib/libnss_winbind.so.XИсполняемая библиотека сервисов NSS.
$LOCKDIR/winbindd_idmap.tdbВ этом файле хранятся соответствия Windows NT RID и UNIX ID пользователей и групп.
$LOCKDIR определяется во время изначальной компиляции Samba с помощью опции --with-lockdir. По умолчанию это директория /usr/local/samba/var/locks.$LOCKDIR/winbindd_cache.tdbЭтот файл содержит кэш информации о пользователях и группах.
Версия
Эта страница мануала верна для пакета Samba 3.0.
Также смотрите
Автор
Изначально Samba и сопутствующие утилиты были разработаны Эндрю Тридгеллом (Andrew Tridgell). Сейчас Samba разрабатывается Samba Team в качестве Open Source проекта – напоминает то, как разрабатывается ядро Linux.
Wbinfo и winbindd были написаны Тимом Поттером (Tim Potter). Переведено в формат DocBook для Samba 2.2 Джерардом Картером (Gerald Carter). Переведено в формат XML 4.2 для Samba 3.0 Александром Боковым.
Трансляция на русский язык выполнена Айзятулленым Ренатом. Mail-to: brand20 собака yandex.ru
Обсудить данный перевод можно на Форуме
Метки: winbindd


Трекбек
Ваш отзыв
Вы должны войти, чтобы оставлять комментарии.