3.16.1 Установка сервера Samba DC
Samba может выступать в роли контроллера домена и сервиса Active Directory
На нашем Youtube-канале вы можете подробнее ознакомиться с информацией по установке и настройке сервера samba, просмотрев видео Настройка Samba как контроллера домена, а также найти много другой полезной информации.
1. Установка Samba DC
Перейдите в сеанс пользователя root:
su -
и выполните обновление РЕД ОС:
для РЕД ОС версии 7.2:
yum clean all && yum update
для РЕД ОС версии 7.3 и старше:
dnf makecache && dnf update
Установите необходимые пакеты:
eсли вы используете РЕД ОС версии 7.2, выполните команду:
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
eсли вы используете РЕД ОС версии 7.3 и старше, выполните команду:
dnf 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 DC сервера, в нашем примере это 10.81.1.96
2.4 Перезагрузите сетевой интерфейс для применения настроек:
systemctl restart NetworkManager
Проверьте записи в /etc/resolv.conf выполнив команду:
cat /etc/resolv.conf
В терминале выведется содержимое файла, где должна быть информация DNS-адресах и поисковом домене:
# 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 сервера Samba
BIND9_DLZ — параметр определяет, что в качестве DNS сервера будет использоваться BIND.DNS forwarder IP address. Данный параметр позволяет указать IP-адрес DNS-сервера, на который будут перенаправлены dns запросы, в случае когда сервер Samba не сможет их разрешить.
Пример листинга настройки самбы в интерактивном режиме:
samba-tool domain provision --use-rfc2307 --interactive
Realm [SKYNET.MUROM]: Domain [SKYNET]: Server Role (dc, member, standalone) [dc]: dcDNS 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.1Administrator 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, позволяющий Samba корректно обрабатывать Windows ACL (Access Control List). Для полноценной поддержки прав доступа к файлам используйте модуль acl_xattr. Для этого добавьте в smb.conf в раздел [global] следующие параметры:
nano /etc/samba/smb.conf
vfs objects = dfs_samba4 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 = dfs_samba4 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 fr om /etc/samba/smb.conf Loaded services file OK.
Weak crypto is allowed 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/
Добавляем в /etc/krb5.conf время жизни тикета керберос - в секцию [libdefaults]:
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
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.