Product SiteDocumentation Site

Глава 6. Администрирование Samba

6.1. Управление пользователями и группами
6.1.1. В ADMC
6.1.2. С помощью samba-tool
6.2. Администрирование DNS
6.2.1. DNS-записи при вводе машины в домен
6.2.2. Утилита samba-tool
6.2.3. nsupdate
6.2.4. Oснастка DNS в RSAT
6.2.5. Динамическое обновление DNS-записей
6.2.6. Обновление IP-адресов вручную
6.2.7. Известные проблемы
6.3. Администрирование сайтов и подсетей
6.3.1. Утилита samba-tool
6.4. Управление парольными политиками
6.4.1. Глобальные парольные политики
6.4.2. Объекты настроек паролей (PSO)
6.5. Резервное копирование и восстановление Samba AD DC
6.5.1. Резервное копирование и восстановление из резервной копии
6.5.2. Восстановление произвольного контроллера домена после фатального сбоя
6.6. Роли FSMO
6.6.1. Семь ролей FSMO
6.6.2. Просмотр и передача ролей FSMO
6.7. Настройка Samba для привязки к определённым интерфейсам
6.8. Создание keytab-файла
6.8.1. Назначение и формат SPN
6.8.2. Создание SPN и генерация keytab с помощью samba-tool
6.9. Настройка DHCP-сервера для обновления DNS-записей
6.9.1. Настройка DHCP-сервера
6.9.2. Настройка переключения DHCP
6.10. Аутентификация других сервисов в Samba AD
6.10.1. Настройка аутентификации Kerberos для веб-сервера Apache
6.10.2. Настройка аутентификации Kerberos для веб-сервера Nginx
6.10.3. Настройка браузеров для SSO
6.11. Distributed File System
6.11.1. Пространство DFS-имен
6.11.2. Настройка DFS на сервере Samba
6.12. Настройка SSSD
6.12.1. Журналирование SSSD
6.12.2. Настройки SSSD в ЦУС
6.12.3. Включение автономной аутентификации
6.13. Файловый сервер
6.14. Монтирование общих ресурсов samba
6.14.1. Подключение с использованием gio
6.14.2. Подключение с использованием pam_mount
6.14.3. Подключение с использованием Autofs
6.15. Журналирование в Samba
6.15.1. Настройка бэкендов
6.15.2. Настройка файлов журнала
6.15.3. Уровни журналирования
6.15.4. Настройка ведения журнала аудита
6.15.5. Интерпретация журналов аудита JSON
6.16. Усиление безопасности DC
6.16.1. Возможность анонимного получения списка пользователей, групп
6.16.2. Отключение Netbios
6.16.3. Отключение роли сервера печати
6.16.4. Отключение NTLMv1
6.16.5. Генерация дополнительных хешей паролей
6.16.6. Защита DNS-записей wpad и isatap
6.16.7. Ограничение диапазона динамических портов
6.16.8. Аудит запросов к каталогам SYSVOL и NetLogon
6.16.9. Отправка логов аудита в rsyslog
6.17. Установка RSAT
6.17.1. Windows Server
6.17.2. Windows 10 (1809 и более поздних версиях)
6.17.3. Windows Vista и 7
6.18. Инструменты командной строки
6.18.1. samba-tool
6.18.2. wbinfo
6.18.3. net
6.18.4. adcli
6.18.5. ldapsearch
6.18.6. sssctl
6.18.7. testparm
6.19. Конфигурационные файлы
6.19.1. smb.conf
6.19.2. krb5.conf
6.19.3. sssd.conf
6.19.4. resolv.conf
6.19.5. Bind

6.1. Управление пользователями и группами

6.1.1. В ADMC

Для управления пользователями и группами в «Альт Домен» можно использовать модуль удалённого управления базой данных конфигурации (ADMC). Подробнее см. Модуль удалённого управления базой данных конфигурации.

6.1.2. С помощью samba-tool

Для управления пользователями и группами в «Альт Домен» можно использовать инструмент командной строки samba-tool.

Примечание

Для выполнения команды на удаленном компьютере можно использовать опцию -H или --URL=. Например:
# samba-tool user add domainuser Qwerty1 -H ldap://<DC> -Uadministrator
По умолчанию в качестве значения опции -H передается текущий узел в формате ldap://<имя узла>.

Таблица 6.1. Команды samba-tool для управления пользователями

Команда
Описание
Примечание
user add <имя пользователя> [<пароль>] [опции]
Создать нового пользователя в AD
Переданное в команде значение <имя пользователя> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Оно должно быть уникальным.
Некоторые опции:
  • --surname — фамилия пользователя;
  • --given-name — имя пользователя;
  • --initials — инициалы;
  • --must-change-at-next-login — пользователь должен изменить пароль при первом входе в домен;
  • --random-password — сформировать пароль случайным образом;
  • --smartcard-required — требовать наличие смарт-карты при входе в интерактивном режиме;
  • --use-username-as-cn — включить принудительное использование имени пользователя в качестве общего имени (CN);
  • --userou — имя (DN) альтернативного расположения (без domainDN), в котором будет создан пользователь вместо используемого по умолчанию CN=Users);
  • --company — компания пользователя;
  • --department — подразделение, к которому относится пользователь;
  • --description — информация о пользователе;
  • --mail-address — адрес электронной почты пользователя;
  • --rfc2307-from-nss — включить копирования атрибутов пользователя Unix из диспетчера службы имен (NSS); значение параметра переопределяется в случае явного задания числового идентификатора пользователя (UID), числового идентификатора основной группы пользователя (GID), информации о пользователе (GECOS) или интерпретатора команд, который должен запускаться при входе пользователя в систему (shell);
  • --nis-domain — домен службы сетевой информации (NIS) для пользователя (Unix/RFC 2307);
  • --unix-home — дс пользователя (Unix/RFC 2307);
  • --uid — имя пользователя (Unix/RFC 2307);
  • --uid-number — уникальный числовой идентификатор пользователя (Unix/RFC 2307);
  • --gid-number — числовой идентификатор основной группы пользователя (Unix/RFC 2307);
  • --gecos — информация о пользователе в поле GECOS (Unix/RFC 2307);
  • --login-shell — оболочка (shell), которая должна запускаться при входе в систему пользователя (Unix/RFC 2307).
user create <имя пользователя> [<пароль>] [опции]
Создать нового пользователя в AD
Команда доступна только в целях совместимости. Вместо этой команды рекомендуется использовать команду samba-tool user add
user delete <имя пользователя> [опции]
Удалить существующего пользователя
При удалении учетной записи также удаляются все связанные с нею разрешения, права и членства в группах.
user disable (<имя пользователя>| --filter <фильтр>) [опции]
Отключить пользовательский аккаунт
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене.
user edit <имя пользователя> [опции]
Редактировать объект пользовательского аккаунта AD
В опции --editor=<редактор> можно указать редактор (по умолчанию vi)
user enable (<имя пользователя>| --filter <фильтр>) [опции]
Включить пользовательский аккаунт
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене.
user list [опции]
Вывести список пользователей
По умолчанию выводятся sAMAccountNames пользователей.
Можно использовать следующие опции:
  • --full-dn — показать различающиеся имена пользователей (CN) вместо sAMAccountNames;
  • -b BASE_DN|--base-dn=BASE_DN — вывести пользователей с указанным базовым DN;
  • --hide-expired — не выводить просроченные учётные записи пользователей;
  • --hide-disabled — не выводить отключенные учётные записи пользователей.
user setprimarygroup <имя пользователя> <имя группы> [опции]
Установить основную группу для учётной записи пользователя
user getgroups <имя пользователя> [опции]
Вывести список групп, в которые входит учётная запись пользователя напрямую
Можно использовать следующие опции:
  • --full-dn — показать в списке вместо имен групп SAM (sAMAccountName) их полные уникальные имена (Distinguished Name, DN).
user show <имя пользователя> [опции]
Вывести атрибуты учетной записи
В опции --attributes=USER_ATTRS можно указать, разделённый запятыми, список атрибутов, значения которых требуется отобразить. Для вывода скрытых атрибутов, их необходимо явно указать в параметре --attributes>
user move <имя пользователя> <контейнер> [опции]
Переместить учётную запись пользователя в указанную организационную единицу или контейнер
Имя пользователя указывается в команде в формате sAMAccountName.
Имя организационной единицы или контейнера можно указать как полное DN, так и без компонента domainDN.
user password [опции]
Изменить пароль текущей учетной записи (пользователя, прошедшего аутентификацию)
Если пароль не передается в открытом виде в значении параметра --newpassword, пользователь получит запрос на ввод пароля в командной строке.
user rename <имя пользователя> [опции]
Переименовать пользователя и изменить его атрибуты
По умолчанию выводятся sAMAccountNames пользователей.
Для удаления атрибута следует использовать пустое значение атрибута.
Имя пользователя указывается в команде в формате sAMAccountName.
Некоторые опции:
  • --surname — новая фамилия;
  • --given-name — новое имя;
  • --initials — новые инициалы;
  • --force-new-cn — новый CN (вместо использования комбинации имени, инициалов и фамилии);
  • --reset-cn — установить CN на комбинацию имени, инициалов и фамилии по умолчанию;
  • --display-name — новое отображаемое имя;
  • --mail-address — новая электронная почта;
  • --samaccountname=SAMACCOUNTNAME — новое имя для входа (sAMAccountName);
  • --upn — новое основное имя пользователя.
user setexpiry (<имя пользователя>| --filter <фильтр>) [опции]
Установить срок действия для учётной записи пользователя
По истечении заданного периода учетная запись отключается; пользователь не может получать доступ к ресурсам домена. При этом сохраняются связанные с учетной записью разрешения, права и членства.
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене;
  • --days — продолжительность периода в днях;
  • --noexpiry — период действия неограничен.
user setpassword (<имя пользователя>| --filter <фильтр>) [опции]
Установить или сбросить пароль учетной записи пользователя
Если пароль не передается в открытом виде в значении параметра --newpassword, пользователь получит запрос на ввод пароля в командной строке.
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене;
  • --newpassword — новый пароль;
  • --must-change-at-next-login — пользователь должен изменить пароль при первом входе в домен;
  • --random-password — сформировать пароль случайным образом;
  • --smartcard-required — требовать наличие смарт-карты при входе в интерактивном режиме.
user unlock (<имя пользователя>| --filter <фильтр>) [опции]
Разблокировать учётную запись пользователя в домене
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене.
user getpassword (<имя пользователя>| --filter <фильтр>) [опции]
Получить атрибуты пароля учётной записи пользователя
Параметры вызова:
  • --filter — LDAP-фильтр для поиска объектов в домене;
  • --attributes — атрибуты (через запятую), которые требуется вывести или передать скрипту, заданному в параметре --script. В параметре могут передаваться любые атрибуты, заданные в схеме каталога, а также следующие виртуальные атрибуты: virtualClearTextUTF16, virtualClearTextUTF8, virtualCryptSHA256, virtualCryptSHA512, virtualKerberosSalt, virtualSSHA, virtualSambaGPG, virtualDigest01..29;
  • --decrypt-samba-gpg — дешифровать пароль SambaGPG (должен быть установлен пакет python3-module-gpg).
user syncpasswords [--cache-ldb-initialize] [опции]
Синхронизировать пароли всех учётных записей пользователей с помощью дополнительного сценария
Эта команда должна выполняться только на одном контроллере домена (обычно на PDC).
В первый раз команда должна выполняться с параметром, обеспечивающим инициализацию кеша: --cache-ldb-initialize. Для корректной инициализации кеша требуется передать список атрибутов в параметре --attributes.

Примечание

Полный список параметров каждой команды можно увидеть в справке, например:
# samba-tool user add --help
Примеры:
  • создать пользователя ivanov в подразделении KDE, пользователь должен изменить пароль при следующем входе в систему:
    # samba-tool user add ivanov --given-name='Иван' \
    --surname='Иванов' --mail-address='ivanov@test.alt' \
    --userou='OU=KDE' --must-change-at-next-login
    
    New Password:
    Retype Password:
    User 'ivanov' added successfully
    
  • создать пользователя kim со случайным паролем, с указанием удаленного LDAP-сервера, пользователь должен изменить пароль при следующем входе в систему:
    # samba-tool user add kim --given-name='Виталий' \
    --surname='Ким' --mail-address='kim@test.alt' \
    --must-change-at-next-login  –-random-password \
    -H ldap://dc2.test.alt -U administrator
    
    Password for [TEST\administrator]:
    User 'kim' added successfully
    
  • установить, что срок действия пароля пользователя ivanov никогда не истекает:
    # samba-tool user setexpiry ivanov --noexpiry
    
    Expiry for user 'ivanov' disabled.
    
  • задать 20-дневный период действия (начиная с текущей даты) для учетной записи kim:
    # samba-tool user setexpiry kim --days=20
    
    Expiry for user 'kim' set to 20 days.
    
  • просмотреть список учётных записей пользователей:
    # samba-tool user list
    Guest
    ivanov
    Administrator
    krbtgt
    kim
    
  • отключить пользователя ivanov:
    # samba-tool user disable ivanov
    
  • включить всех пользователей, почтовый ящик которых начинается на k:
    # samba-tool user enable --filter=mail=k*
    Enabled user 'mail=k*'
    
  • изменить пароль пользователя ivanov:
    # samba-tool user setpassword ivanov
    
    New Password:
    Retype Password:
    Changed password OK
    
  • переместить пользователя kim в подразделение KDE:
    # samba-tool user move ivanov 'OU=KDE'
    
    Moved user "kim" into "OU=KDE,DC=test,DC=alt"
    
  • получить информацию о пароле пользователя ivanov:
    # samba-tool user getpassword ivanov \
    --attributes=pwdLastSet,virtualClearTextUTF8
    
    dn: CN=Иван Иванов,OU=TEST,DC=test,DC=alt
    pwdLastSet: 133628348830281440
    
    Got password OK
    
  • удалить пользователя ivanov:
    # samba-tool user delete ivanov
    
    Deleted user ivanov
    

Предупреждение

Не следует допускать одинаковых имён для пользователя и компьютера, это может привести к коллизиям (например, такого пользователя нельзя добавить в группу). Если компьютер с таким именем заведён, удалить его можно командой: pdbedit -x -m имя

Примечание

При удалении учетной записи также удаляются все связанные с нею разрешения, права и членства в группах. Если в последствии в домен будет добавлена учетная запись с тем же именем, она не получит разрешения права или членства удаленной записи, так как ей будет присвоен новый идентификатор безопасности (SID).
Учетная запись может быть отключена, например, по следующим причинам:
  • достигнуто максимальное количество попыток входа, установленное для учетной записи политикой;
  • учетная запись отключена администратором;
  • истек период действия учетной записи.
Команда включения учетной записи может использоваться администратором как для восстановления доступа отключенной ранее учетной записи к ресурсам домена, так и для включения группы учетных записей, созданных с разрешениями по умолчанию.

Таблица 6.2. Команды samba-tool для управления группами

Команда
Описание
Примечание
group add <имя группы> [опции]
Создать новую группу
Переданное в команде значение <имя группы> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Оно должно быть уникальным.
Некоторые опции:
  • --groupou — имя (DN) альтернативного расположения (без domainDN), в котором будет создана группа (вместо используемого по умолчанию CN=Users);
  • --group-scope — область действия, возможные значения: Domain, Global, Universal;
  • --group-type — тип группы, возможные значения: Security, Distribution;
  • --description — описание группы;
  • --mail-address — адрес электронной почты группы;
  • --notes — дополнительная информация;
  • --gid-number — числовой идентификатор группы Unix/RFC 2307;
  • --nis-domain — домен службы сетевой информации (NIS);
  • --special — используется для создания группы безопасности с именем Protected Users.
group create <имя группы> [опции]
Создать новую группу
Доступна только в целях совместимости. Рекомендуется вместо этой команды использовать команду samba-tool group add
group addmembers <имя группы> (<список участников>|--member-dn=<member-dn>) [опции]
Добавить участников в группу
Команда позволяет добавить в группу одного или нескольких участников (указанных через запятую). В качестве участника группы может выступать учетная запись пользователя, учетная запись компьютера или другая группа, существующая в домене.
Опции:
  • --member-dn — уникальное составное имя (DN) добавляемого в группу нового участника (значение опции --object-types игнорируется);
  • --object-types — список типов объектов (через запятую); указанные типы используются в качестве фильтра при выполнении поиска для указанных в команде участников; возможные значения: user, group, computer, serviceaccount, contact, all; значение по умолчанию — user,group,computer;
  • --member-base — базовое уникальное имя (DN) для поиска участников группы; значение по умолчанию — уникальное имя (DN) домена.
group delete <имя группы> [опции]
Удалить группу
Операция удаления является необратимой.
При удалении группы также удаляются все связанные с нею разрешения и права, а также унаследованные от нее разрешения и права участников.
group edit <имя группы> [опции]
Редактировать объект группы
В опции --editor=<редактор> можно указать редактор (по умолчанию vi)
group addunixattrs <имя группы> <gidnumber> [опции]
Добавить атрибуты Unix/RFC 2307 для группы
Для использования этих атрибутов для сопоставления UID/GID в конфигурации (smb.conf) должен быть задан параметр idmap_ldp:use rfc2307 = Yes
group list [опции]
Вывести список групп
По умолчанию выводится список имен учетных записей SAM (sAMAccountName).
Можно использовать следующие опции:
  • --full-dn — выводить уникальные имена (DN) вместо sAMAccountNames;
  • b BASE_DN|--base-dn=BASE_DN — выводить в списке только группы с указанным базовым уникальным именем (DN).
group listmembers <имя группы> [опции]
Вывести список участников данной группы
По умолчанию выводятся sAMAccountNames участников. Если sAMAccountName недоступен, будет использоваться CN.
Можно использовать следующие опции:
  • --full-dn — показать различающиеся имена участников (CN) вместо sAMAccountNames;
  • --hide-expired — не выводить членов группы с истекшим сроком действия;
  • --hide-disabled — не выводить отключённых членов группы.
group move <имя группы> <контейнер> [опции]
Переместить группу в указанную организационную единицу или контейнер
Имя группы указывается в команде в формате sAMAccountName.
Имя организационной единицы или контейнера можно указать как полное DN или без компонента domainDN.
group removemembers <имя группы> (<список участников>|--member-dn=<member-dn>) [опции]
Удалить участников из группы
Команда позволяет удалить из группы одного или нескольких участников (указанных через запятую).
При удалении из группы участник теряет все унаследованные от нее разрешения и права.
Опции:
  • --member-dn — уникальное составное имя (DN) удаляемого из группы участника (значение опции --object-types игнорируется);
  • --object-types — список типов объектов (через запятую); указанные типы используются в качестве фильтра при выполнении поиска для указанных в команде участников; возможные значения: user, group, computer, serviceaccount, contact, all; значение по умолчанию — user,group,computer;
  • --member-base — базовое уникальное имя (DN) для поиска участников группы; значение по умолчанию — уникальное имя (DN) домена.
group show <имя группы> [опции]
Вывести группу и её атрибуты
В опции --attributes=USER_ATTRS можно указать, разделённый запятыми, список атрибутов
group stats [опции]
Показать статистику для общих групп и членства в группах
В результате выполнения команды выводятся следующие сведения:
  • общее количество групп;
  • общее количество участников (без учета вложенности);
  • среднее количество участников в группе;
  • максимальное количество участников в группе;
  • медианное количество участников в группе;
  • распределение участников по группам с точки зрения количественного состава.
group rename <имя группы> [опции]
Переименовать группу и изменить её атрибуты
Для удаления атрибута следует использовать пустое значение атрибута.
Имя группы указывается в команде в формате sAMAccountName.
Можно использовать следующие опции:
  • --force-new-cn=NEW_CN — новый CN (вместо использования sAMAccountName);
  • --reset-cn — установить CN равным sAMAccountName;
  • --mail-address=MAIL_ADDRESS — новая электронная почта;
  • --samaccountname=SAMACCOUNTNAME — новое имя для входа (sAMAccountName).

Примечание

Полный список параметров каждой команды можно увидеть в справке, например:
# samba-tool group add --help
В группу могут входить учетные записи пользователей и компьютеров, а также другие группы. Такое объединение объектов в рамках одной сущности упрощает работу с ними, включая выполнение задач по управлению безопасностью и системному администрированию.
Группы также могут использоваться для создания списков рассылки (группы рассылки). Для этого при вызове команды создания группы должна быть передана опция --group-type=Distribution.
Группы располагаются в подразделениях (OU). Область действия (scope) группы определяет место группы в дереве доменов.
Примеры:
  • добавить группу безопасности:
    # samba-tool group add office --description='Simple group'
    Added group office
    
  • добавить новую группу рассылки с указанием удалёного LDAP-сервера:
    # samba-tool group add manager --group-type=Distribution \
     -H ldap://dc2.test.alt -U administrator
    
    Added group manager
    
  • добавить новую группу в соответствии с RFC 2307 в домен NIS samdom с GID 12345:
    # samba-tool group add mygroup --nis-domain=samdom --gid-number=12345
    Added group mygroup
    
  • удалить группу:
    # samba-tool group delete office
    Deleted group office
    
  • добавить пользователя ivanov в группу «Domain Users»:
    # samba-tool group addmembers "Domain Users" ivanov
    
  • добавить в группу mygroup пользователей kim,ivanov и группу manager:
    # samba-tool group addmembers mygroup manager,kim,ivanov
    
  • удалить пользователя ivanov из группы «Domain Users»:
    # samba-tool group removemembers "Domain Users" ivanov
    
  • переместить группу manager в подразделение OU:
    # samba-tool group move manager 'OU=OU'
    Moved group "manager" into "OU=OU,DC=test,DC=alt"
    
  • получить определённые атрибуты группы manager:
    # samba-tool group show manager --attributes=member,objectGUID
    dn: CN=test2,CN=Users,DC=test,DC=alt
    objectGUID: 2f708ea2-f42c-4344-af22-bc243301c777
    member: CN=Иван Иванов,OU=KDE,DC=test,DC=alt
    
  • вывести пользователей группы «Domain Users»:
    # samba-tool group listmembers "Domain Users"
    
  • получить общую информацию о группах и их участниках:
    # samba-tool group stats
    
    Group membership statistics*
    -------------------------------------------------
    Total groups: 48
    Total memberships: 32
    Average members per group: 0.67
    Max members: 8 (Denied RODC Password Replication Group)
    Median members per group: 0.0
    
    Members        Number of Groups
    -------------------------------------------------
              0-1  42
              2-4  5
              5-9  1
    
    * Note this does not include nested group membership
    
В «Альт Домен» поддерживается работа с группой безопасности «Protected Users» («Защищенные пользователи»). В данную группу должны включаться только учетные записи пользователей. После добавления в группу в отношении учетной записи начинают действовать следующие ограничения:
  • недоступна аутентификация по протоколу NTLM;
  • пользователю не выдаются и от пользователя не принимаются билеты Kerberos с использованием алгоритма шифрования RC4 (используется алгоритм AES);
  • максимальный период действия билета — 4 часа;
  • недоступно неограниченное и ограниченное делегирование Kerberos.

Примечание

Группа «Защищенные пользователи» доступна только при функциональном уровне домена Windows Server 2012 R2.
Для создания группы безопасности «Защищенные пользователи» следует создать группу «Protected Users» с указанием опции --special:
# samba-tool group add 'Protected Users' --special