3.16.2.1 Установка сервера Samba DC
Предварительная настройка сервера
Обновление пакетов
Отключение SELinux
Присваивание серверу доменного имени
Настройка сетевого интерфейса
Настройка сетевого интерфейса вручную
Настройка сетевого интерфейса с помощью утилиты nmtui
Создание нового домена под управлением контроллера домена Samba DC
Установка необходимых пакетов
Создание резервных копий файлов
Настройка конфигурации Kerberos
Первоначальное полуавтоматическое конфигурирование сервера с помощью утилиты samba-tool
Дополнительная настройка сервера
Запуск и проверка работоспособности службы samba
Окружение
- Версия РЕД ОС: 7.3
- Конфигурация: Сервер графический
- Версия ПО: samba-4.17.5-2h, krb5-devel-1.20.1-1, bind-32:9.16.27-1
Предварительная настройка сервера
Обновление пакетов
Перейдите в сеанс пользователя root:
su -
и выполните обновление всех пакетов:
dnf makecache && dnf upgrade -y
Все дальнейшие действия выполняются с правами пользователя root, если не указано иное.
Отключение SELinux
На время настройки переведите SELinux в режим уведомлений:
setenforce 0
Статус службы SELinux можно посмотреть командой sestatus.
Замените в файле конфигурации /etc/selinux/config режим enforcing
на permissive
командой:
sed -i "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config
После перезагрузки системы служба SELinux будет запущена — в режиме, который указан в конфигурационном файле.
Присваивание серверу доменного имени
Сервер контроллера домена должен иметь собственное уникальное доменное имя и статический IP-адрес. Назначьте серверу полное доменное имя: например, если короткое имя сервера dc1, то для домена skynet.murom полное имя сервера имеет вид dc1.skynet.murom:
hostnamectl set-hostname dc1.skynet.murom
Настройка сетевого интерфейса
По умолчанию сетевой интерфейс настроен для получения IP-адреса по DHCP. Нужно установить серверу контроллера домена статический IP-адрес.
Настройку сетевого интерфейса можно выполнить несколькими способами, в данной статье рассматриваются два из них:
- вручную, путём редактирования файла настроек;
- с помощью графической консольной утилиты nmtui.
Настройка сетевого интерфейса вручную
Настройки сетевого интерфейса хранятся в файле настроек /etc/sysconfig/network-scripts/ifcfg-<имя_сетевого_интерфейса>. В данном примере сетевой интерфейс имеет имя enp1s0. Пример содержания файла настроек по умолчанию:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp1s0
UUID=0686e35f-7be2-396d-839e-7a26daacf1dd
DEVICE=enp1s0
ONB OOT=yes
AUTOCONNECT_PRIORITY=-999
Откройте конфигурационный файл в текстовом редакторе:
nano /etc/sysconfig/network-scripts/ifcfg-enp1s0
Внесите следующие изменения:
1) измените значение параметра BOOTPROTO
на none
:
BOOTPROTO=none
2) добавьте параметр IPADDR
, задающий IP-адрес, и впишите его значение:
IPADDR=10.81.1.96
3) добавьте параметр PREFIX
, задающий маску подсети, и впишите его значение:
PREFIX=24
4) добавьте параметр GATEWAY
, задающий адрес шлюза, и впишите его значение:
GATEWAY=10.81.1.1
5) добавьте параметр, задающий в качестве первого DNS-сервера сервер с доступом к интернету или локальному репозиторию:
DNS1=8.8.8.8
6) добавьте параметр, задающий в качестве второго DNS-сервера IP-адрес создаваемого контроллера домена:
DNS2=10.81.1.96
7) впишите домен поиска (в данном примере это skynet.murom
):
SEARCH=skynet.murom
Перезагрузите сетевой интерфейс для применения настроек:
systemctl restart NetworkManager
и проверьте, установились ли нужные настройки статической IP-адресации, командой ifconfig
или ip -a
. Если изменений нет, то перезагрузите сетевой интерфейс (здесь его имя – enp1s0), введя команду:
ifdown enp1s0 && ifup enp1s0
Настройка сетевого интерфейса с помощью утилиты nmtui
Запустите утилиту в консоли:
nmtui
В настройках сетевого интерфейса в конфигурации IPv4 укажите следующие значения:
- тип конфигурирования – «Вручную»;
- IP-адрес создаваемого сервера и маску подсети – 10.81.1.96/24;
- адрес шлюза – 10.81.1.1;
- IP-адрес первого DNS-сервера – IP-адрес сервера с доступом к локальному репозиторию или интернету, например 8.8.8.8 (при добавлении контроллера домена РЕД АДМ в существующий домен указать IP-адрес контроллера домена существующего домена);
- IP-адрес второго DNS-сервера – IP-адрес создаваемого контроллера домена, 10.81.1.96;
- домен поиска – skynet.murom.
Перезагрузите сетевой интерфейс для применения настроек:
systemctl restart NetworkManager
Проверьте доступные серверы имен, просмотрев файл resolv.conf:
cat /etc/resolv.conf
Вывод команды должен иметь примерно следующий вид:
# Generated by NetworkManager search skynet.murom
nameserver 8.8.8.8
nameserver 10.81.1.96
Создание нового домена под управлением контроллера домена Samba DC
Установка необходимых пакетов
Для установки необходимых пакетов выполните:
dnf install samba* krb5* -y
Создание резервных копий файлов
Переименуйте файл /etc/smb.conf, он будет создан позднее в процессе выполнения команды samba-tool. Наличие данного файла на момент запуска полуавтоматической конфигурации может вызвать ошибку.
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Создайте резервную копию используемого по умолчанию конфигурационного файла kerberos:
cp /etc/krb5.conf /etc/krb5.conf.bak
Настройка конфигурации Kerberos
Откройте файл /etc/krb5.conf:
nano /etc/krb5.conf
В секции [libdefaults]
установите имя домена, используемое по умолчанию:
default_realm = SKYNET.MUROM
В ту же секцию добавьте время жизни тикета керберос:
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
Откройте файл /etc/krb5.conf.d/crypto-policies:
nano /etc/krb5.conf.d/crypto-policies
и приведите его содержание к следующему виду:
[libdefaults]
default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 RC4-HMAC DES-CBC-CRC DES3-CBC-SHA1 DES-CBC-MD5
default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 RC4-HMAC DES-CBC-CRC DES3-CBC-SHA1 DES-CBC-MD5
preferred_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 RC4-HMAC DES-CBC-CRC DES3-CBC-SHA1 DES-CBC-MD5
Первоначальное полуавтоматическое конфигурирование сервера с помощью утилиты samba-tool
Конфигурирование в интерактивном режиме выполняется командой:
samba-tool domain provision --use-rfc2307 --interactive
Описание некоторых опций (параметров) этой команды:
use-rfc2307
– параметр добавляет POSIX атрибуты (UID / GID) на схеме AD. Он понадобится при аутентификации клиентов Linux, BSD, или OS X (в том числе, на локальной машине), в дополнение к Microsoft Windows;interactive
– запуск в интерактивном режиме;realm
– указывает на полное DNS-имя домена, которое настроено в /etc/hosts, в верхнем регистре (в рассматриваемом примере это SKYNET.MUROM);Domain
– краткое имя домена NetBIOS (в примере – SKYNET);Server Rules
– роль сервера (например, DC – domain controller);DNS backend
– DNS-сервер. Возможные значения – SAMBA_INTERNAL (внутренний DNS сервера), BIND9_FLATFILE, BIND9_DLZ, NONE;DNS forwarder IP address
– данный параметр позволяет указать IP-адрес DNS-сервера, на который будут перенаправлены DNS-запросы, в том случае, когда сервер не сможет их разрешить.
Более подробная информация доступна в Wiki-справке проекта Samba по адресу https://wiki.samba.org, на странице “Setting up Samba as an Active Directory Domain Controller”.
Пример сокращённого листинга настройки для тестового домена skynet.murom:
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=muromAdding 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=muromCreating 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
После запуска автоматической настройки файлы конфигурации будут созданы автоматически.
Дополнительная настройка сервера
Настройки сервера находятся в файле /etc/samba/smb.conf. Конфигурирование сервера выполняется путём внесения изменений в этот файл:
nano /etc/samba/smb.conf
Начиная с версии 3.3.0 в Samba есть модуль acl_xattr, который позволяет Samba корректно обрабатывать Windows ACL (Access Control List) и обеспечивает полноценную поддержку прав доступа к файлам.
Для подключения этого модуля добавьте в файл /etc/samba/smb.conf в секцию [global]
следующие строки (либо отредактируйте существующие):
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
Для включения автоматического обновления записей в DNS добавьте два параметра в секцию [global]
:
allow dns updates = nonsecure
dns update command = /usr/bin/samba_dnsupdate --all-names
В секцию [global]
добавьте поддержку расширений схемы Samba AD (Active Directory):
dsdb:schema update allowed = true
Пример содержания файла /etc/samba/smb.conf с внесёнными дополнительными изменениями:
cat /etc/samba/smb.conf
#Global parameters
[global]
netbios name = DC1
realm= SKYNET.MUROM
server role = active directory domain controller
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
workgroup= SKYNET
idmap_ldb:use rfc2307 = yes
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
dns update 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
После внесения изменений в файл /etc/samba/smb.conf выполните проверку:
testparm
Пример вывода команды:
Load smb config files from /etc/samba/smb.conf vfs objects specified without required AD DC module: dfs_samba4 Loaded services file OK. Weak crypto is allowed Server role: ROLE_ACTIVE_DIRECTORY_DC Press enter to see a dump of your service definitions
Удалите из настроек сетевого интерфейса из списка DNS-серверов внешний сервер, который ранее был указан в соответствии с указаниями подраздела «Настройка сетевого интерфейса». В нашем примере это 8.8.8.8
. Перезагрузите сетевой интерфейс.
Запуск и проверка работоспособности службы samba
Запустите и добавьте в автозагрузку службы samba и named:
systemctl enable samba --now
Проверьте статус служб:
systemctl status samba
Не запускайте службу winbind вручную на контроллере домена Samba Active Directory. Служба запускается автоматически как подпроцесс samba.
Проверьте работу динамического обновления DNS:
samba_dnsupdate --verbose --all-names
Для более быстрой проверки рекомендуется отключить IPv6. Сделать это можно с помощью утилиты nmtui.
Дата последнего изменения: 01.09.2023
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.