Samba может выступать в роли контроллера домена и сервиса Active Directory
1. Установка Samba AD
Выполните обновление РЕД ОС:
# yum clean all && yum update
Установите необходимые пакеты:
# yum install samba-client*.x86_64 samba-common.noarch samba-common*x86_64 samba-dc*.x86_64 samba-libs.x86_64 samba-winbind*.x86_64 -y
Проверьте Samba на наличие kerberos heimdal (при использовании MIT Kerberos возможна некорректная работа samba c kerberos) см. ссылку
https://wiki.samba.org/index.php/Running_a_Samba_AD_DC_with_MIT_Kerberos_KDC
В том случае, если следующая команда выдаёт «HAVE_LIBKADM5SRV_MIT», тогда нужно установить Samba с поддержкой Kerberos Heimdal.
# smbd -b | grep HAVE_LIBKADM5SRV_MIT HAVE_LIBKADM5SRV_MIT
Переименуйте используемые по умолчанию конфигурационные файлы samba и kerberos:
# mv /etc/krb5.conf /etc/krb5.conf.bak # mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Команда проверки установленной версии samba:
# smbd -V
2. Предварительная настройка сервера Samba DC
2.1 Поменяйте статус SELinux на permissive.
nano /etc/selinux/config
Заменив текст SELINUX=enforcing
на SELINUX=permissive
Выполните:
setenforce 0
Более подробно см.ссылку
Не забудьте включить selinux после завершения настройки.
2.2 Присвойте серверу статический ip-адрес (Настройка сетевого адаптера), а также назначьте имя. Имя должно определять область домена. Например, если ваш домен skynet.murom, то hostname сервера может быть вида: dc1.skynet.murom.
Команда назначения имени серверу:
hostnamectl set-hostname dc1.skynet.murom
Укажите в файле /etc/hosts соответствие ip-адреса сервера с его полный и коротким именем:
# nano /etc/hosts 10.81.1.96 dc1.skynet.murom dc1
2.3 В настройках сетевого адаптера пропишите поисковый домен skynet.murom, а в качестве dns-адреса укажите ip-адрес создаваемого Samba AD сервера, в нашем примере это 10.81.1.96
2.4 Перезагрузите сетевой интерфейс для применения настроек:
# systemctl restart NetworkManager
Проверьте resolv.conf выполнив:
# cat /etc/resolv.conf # Generated by NetworkManager search skynet.murom nameserver 10.81.1.96
3. Запуск конфигурирования Samba в роли контроллера домена в интерактивном режиме:
Описание некоторых настроек для тестового домена dc1.skynet.murom
-
use-rfc2307 — параметр добавляет POSIX атрибуты (UID / GID) на схеме AD. Он понадобится при аутентификации клиентов Linux, BSD, or OS X (в том числе на локальной машине) в дополнение к Microsoft Windows.
-
interactive — параметр заставляет сценарий резерва запускаться в интерактивном режиме.
-
realm — указывает на DNS-имя домена в верхнем регистре, которое настроено в hosts, в нашем тесте realm: skynet.murom
-
Domain — доменное имя сервера, у нас это — skynet
-
Server Rules(роли сервера): dc — (Domen controller)
-
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) — указывает кто, будет в роли DNS сервера. SAMBA_INTERNAL — внутренний DNS самбы.
-
DNS forwarder IP address. Данный параметр позволяет указать IP-адрес DNS-сервера, на который будут перенаправлены dns запросы, в случае когда сервер Samba не сможет их разрешить.
Пример листинга настройки самбы в интерактивном режиме:
[root@dc1 samba]# samba-tool domain provision --use-rfc2307 --interactive Realm [SKYNET.MUROM]: Domain [SKYNET]: Server Role (dc, member, standalone) [dc]: dc DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: DNS forwarder IP address (write 'none' to disable forwarding) [10.81.1.96]: 10.81.1.1 Administrator password: Retype password: Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up share.ldb Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema Unable to determine the DomainSID, can not enforce uniqueness constraint on local domainSIDs Adding DomainDN: DC=skynet,DC=murom Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up display specifiers Modifying display specifiers and extended rights Adding users container Modifying users container Adding computers container Modifying computers container Setting up sam.ldb data Setting up well known security principals Setting up sam.ldb users and groups Setting up self join Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=skynet,DC=murom Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs The Kerberos KDC configuration for Samba AD is located at /var/lib/samba/private/kdc.conf A Kerberos configuration suitable for Samba AD has been generated at /var/lib/samba/private/krb5.conf Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink! Setting up fake yp server settings Once the above files are installed, your Samba AD server will be ready to use Server Role: active directory domain controller Hostname:dc1 NetBIOS Domain:SKYNET DNS Domain: skynet.murom DOMAIN SID:S-1-5-21-4010603892-1310842104-1159347701
После запуска автоматического конфигурирования, Samba сама создаст файлы конфигурации.
4. Дополнительная конфигурация Samba сервера:
Настройки Samba находятся в файле /etc/samba/smb.conf
4.1 Начиная с версии 3.3.0, появился модуль acl_xattr, позволяющий «самбе» корректно обрабатывать Windows ACL (Access Control List). Для полноценной поддержки прав доступа к файлам используйте модуль acl_xattr. Для этого добавьте в smb.conf в раздел [global] следующие параметры:
vfs objects = acl_xattr map acl inherit = yes store dos attributes = yes
4.2 Для обновления записей в DNS добавьте два параметра в раздел [global]:
allow dns updates = nonsecure nsupdate command = /usr/bin/nsupdate -g
4.3 Если при автоконфигурировании не был указан dns форвардинг, то его можно включить, добавив в секцию [global] dns адрес, который используется в вашей локальной сети
dns forwarder = 10.81.1.1
4.5 В секцию [global] добавьте поддержку расширения схемы AD
dsdb:schema update allowed = true
Листинг /etc/samba/smb.conf:
#cat /etc/samba/smb.conf #Global parameters [global] log level = 3 dns forwarder = 10.81.1.1 netbios name = DC1 realm= SKYNET.MUROM server role = active directory domain controller workgroup= SKYNET idmap_ldb:use rfc2307 = yes vfs objects = acl_xattr map acl inherit = yes store dos attributes = yes allow dns updates = nonsecure nsupdate command = /usr/bin/nsupdate -g dsdb:schema update allowed = true [netlogon] path = /var/lib/samba/sysvol/skynet.murom/scripts read only = No [sysvol] path = /var/lib/samba/sysvol read only = No
4.6 После внесения изменений в файл /etc/samba/smb.conf выполните команду проверки:
# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[netlogon]" Processing section "[sysvol]" Loaded services file OK. Server role: ROLE_ACTIVE_DIRECTORY_DC
Предупреждение "rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)"
отображается в связи с тем, что в Linux по умолчанию установлен лимит на 1024 одновременно открытых файлов, а в Windows он 16384. Чтобы убрать предупреждение добавьте в конец файла /etc/security/limits.conf строки:
* - nofile 16384 root - nofile 16384
Для применения настроек перезагрузите сервер.
5. Настройка файла конфигурации kerberos:
Скопируйте настройки kerberos которые создались после настройки samba в /etc
cp /var/lib/samba/private/krb5.conf /etc/
добавляем в него время жизни тикета nano /etc/krb5.conf:
ticket_lifetime = 24h forwardable = yes
Листинг конфигурации krb5.conf:
[libdefaults] default_realm = SKYNET.MUROM dns_lookup_realm = false dns_lookup_kdc = true ticket_lifetime = 24h forwardable = yes
6. Запуск службы samba и проверка работы winbind:
Запуск и добавление в автозапуск сервиса samba:
# systemctl enable samba --now
Проверка статуса:
# systemctl status samba
Не запускайте службу winbindd вручную на контроллере домена Samba Active Directory (AD). Служба запускается автоматически как подпроцесс процесса samba.
https://wiki.samba.org/index.php/Configuring_Winbindd_on_a_Samba_AD_DC
Проверяем dns:
# ping ya.ru
Проверяем запущенные процессы:
ps ax | egrep "samba|smbd|nmbd|winbindd"
Проверьте, может ли служба Winbindd подключаться к контроллеру домена:
wbinfo --ping-dc checking the NETLOGON for domain[SKYNET] dc connection to "DC1.SKYNET.MUROM" succeeded
Посмотреть список пользователей и групп в домене:
wbinfo -u wbinfo -g