2.9.20.4.3.2 Администрирование контроллера SAMBA
Скачать документ Средства администрирования удаленного сервера от MS
Подготовка резервного контроллера домена
Добавление резервного контроллера в домен
Установка необходимых пакетов
Создание резервных копий файлов
Настройка конфигурации Kerberos
Настройка DNS-сервера BIND
Присоединение сервера в качестве вторичного контроллера домена
Дополнительная настройка сервера
Запуск служб
Настройка NTP на контроллере домена dc1.skynet.murom
Настройка NTP на резервном контроллере домена dc2.skynet.murom
Настройка двунаправленной репликации sysvol и netlogon с помощью Unison
Средства администрирования удаленного сервера от MS
Введение ПК с Windows в домен Samba производится точно так же, как и ввод компьютера в домен MS AD.
Для администрирования домена Samba установите RSAT - https://wiki.samba.org/index.php/Installing_RSAT.
Включите компоненты: «Установка удаление программ» - «Включение отключение компонентов» - «Средства удаленного администрирования сервера».
После настройки перезагрузите ПК.
В управлении DNS подключитесь к dc1.skynet.murom, добавьте обратную зону и PTR-запись для контроллера домена dc1. Кроме работы с DNS через оснастку Windows существует способ добавления обратной зоны dns с помощью команд в терминале.
Для этого, предварительно, получите kerberos-тикет:
kinit administrator@SKYNET.MUROM
Добавьте обратную зону:
samba-tool dns zonecreate -U Administrator dc1.skynet.murom 1.81.10.in-addr.arpa samba-tool dns add dc1.skynet.murom 1.81.10.in-addr.arpa 96 PTR dc1.skynet.murom -U administrator
в последней команде 96 - это последний октет (четвертый) в IP-адресе (10.81.1.96) сервера samba.
Следующие зоны, вероятно, создавать не обязательно, но такие зоны автоматически настроены на Windows srv:
samba-tool dns zonecreate -U Administrator dc1.skynet.murom 0.in-addr.arpa samba-tool dns zonecreate -U Administrator dc1.skynet.murom 127.in-addr.arpa samba-tool dns zonecreate -U Administrator dc1.skynet.murom 255.in-addr.arpa
Подготовка резервного контроллера домена
Предварительная настройка резервного сервера осуществляется аналогично предварительной настройке основного сервера.
В данной статье в качестве примера рассматривается добавление нового контроллера домена с IP-адресом 10.81.1.97 и с доменным именем dc2 к домену skynet.murom под управлением контроллера домена со статическим IP-адресом 10.81.1.96 и доменным именем dc1 и со значениями прочих параметров, указанных в примере Установка сервера Samba DC. Соответственно, для создаваемого дополнительного контроллера домена значения сетевых параметров следующие:
- краткое доменное имя сервера – dc2;
- полное доменное имя сервера – dc2.skynet.murom;
- IP-адрес создаваемого сервера и маска подсети – 10.81.1.97;
- маска подсети – 24;
- адрес шлюза – 10.81.1.1;
- IP-адрес первого DNS-сервера – IP-адрес существующего контроллера домена (созданного по инструкции Установка сервера Samba DC) – 10.81.1.96;
- домен поиска – skynet.murom.
Добавление резервного контроллера в домен
Установка необходимых пакетов
Установите необходимые пакеты командой:
dnf install samba* krb5* bind
Создание резервных копий файлов
Переименуйте конфигурационный файл Samba, тем самым создав его резервную копию:
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Настройка конфигурации Kerberos
Проверьте права на доступ к файлу /etc/krb5.conf:
ls -l /etc/krb5.conf
Пользователем-владельцем файла должен быть root, а группой-владельцем – named. Пример корректного вывода:
-rw-r--r-- 1 root named 104 фев 7 11:05 /etc/krb5.conf
При необходимости смените владельцев:
chown root:named /etc/krb5.conf
Откройте файл /etc/krb5.conf:
nano /etc/krb5.conf
Добавьте в секции [realms]
и [domain_realm]
информацию об именах домена и сервера:
[realms]
SKYNET.MUROM = {
kdc = dc1.skynet.murom
admin_server = dc1.skynet.murom
}
[domain_realm]
.skynet.murom = SKYNET.MUROM
skynet.murom = SKYNET.MUROM
Пример содержания файла после редактирования:
includedir /etc/krb5.conf.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
spake_preauth_groups = edwards25519
dns_canonicalize_hostname = fallback
qualify_shortname = ""
default_realm = SKYNET.MUROM
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
SKYNET.MUROM = {
kdc = dc1.skynet.murom
admin_server = dc1.skynet.murom
}
[domain_realm]
.skynet.murom = SKYNET.MUROM
skynet.murom = SKYNET.MUROM
Откройте файл /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
Настройка DNS-сервера BIND
В файл /etc/named.conf в блок [options]
впишите следующие значения параметров:
listen-on port 53 { 10.81.1.97; };
allow-query { any; };
dnssec-validation no;
tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab";
minimal-responses yes;
forwarders { 8.8.8.8; };
Добавьте в конец списка с директивами include строку:
include "/var/lib/samba/bind-dns/named.conf";
Файл должен иметь вид:
options {
listen-on port 53 { 10.81.1.97; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; };
recursion yes;
dnssec-validation no;
managed-keys-directory "/var/named/dynamic";
geoip-directory "/usr/share/GeoIP";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab";
minimal-responses yes;
forwarders { 8.8.8.8; };
include "/etc/crypto-policies/back-ends/bind.config";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/var/lib/samba/bind-dns/named.conf";
Присоединение сервера в качестве вторичного контроллера домена
Для присоединения сервера в качестве резервного выполните команду:
samba-tool domain join skynet.murom DC -U Administrator --dns-backend=BIND9_DLZ --realm=skynet.murom
Вывод команды в случае успеха:
INFO 2023-03-03 18:21:40,227 pid:3673 /usr/lib64/python3.8/site-packages/samba/join.py #1544: Joined domain SKYNET (SID S-1-5-21-4085579788-2882808393-2576280794) as a DC
Дополнительная настройка сервера
Выполните дополнительную настройку сервера аналогично тому, как это сделано в подразделе Дополнительная настройка основного сервера.
Отредактируйте файл /etc/samba/smb.conf и добавьте в секцию [global]
следующие строки (либо отредактируйте существующие):
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
allow dns updates = nonsecure
dns update command = /usr/sbin/samba_dnsupdate --all-names
dsdb:schema update allowed = true
После внесения изменений в файл /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-серверов IP-адрес внешнего сервера, который был указан ранее. В данном примере это 8.8.8.8
. Перезагрузите сетевой интерфейс.
Запуск служб
Запустите и добавьте в автозагрузку службы samba и named:
systemctl enable samba named --now
Проверьте статус служб:
systemctl status samba named
Проверьте работу динамического обновления DNS:
samba_dnsupdate --verbose --all-names
Через несколько минут можно проверить репликацию:
samba-tool drs showrepl
Пример отклика команды при успешном запуске репликации:
==== KCC CONNECTION OBJECTS ==== Connection -- Connection name: 09f8315a-7f54-4a99-b3ba-ca918776a462 Enabled : TRUE Server DNS name : dc1.skynet.murom Server DN name : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=skynet,DC=murom TransportType: RPC options: 0x00000001 Warning: No NC replicated for Connection!
Предупреждение Warning: No NC replicated for Connection!
можно проигнорировать (см. FAQ в Samba Wiki).
Настройка NTP на контроллере домена dc1.skynet.murom
Установка:
dnf install ntp
Измените группу и права:
chgrp ntp /var/lib/samba/ntp_signd/ chmod 750 /var/lib/samba/ntp_signd/
Отредактируйте конфигурационный файл:
nano /etc/ntp.conf
Добавьте следующие строки:
server 127.127.1.0 fudge 127.127.1.0 stratum 10 server 0.pool.ntp.org iburst prefer server 1.pool.ntp.org iburst prefer ntpsigndsocket /var/lib/samba/ntp_signd/
Закомментируйте строки:
driftfile /var/lib/ntp/ntp.drift logfile /var/log/ntp
Описание параметров файла конфигурации NTP:
ntpsigndsocket /usr/local/samba/ntp_signd/ - позволит клиентским машинам отправлять NTP-запросы к серверу используя Active Directory;
Server - указывает на сервера синхронизации времени;
restrict 127.0.0.1 - обмен данным с самим собой;
iburst — отправлять несколько пакетов (повышает точность);
prefer — указывает на предпочитаемый сервер времени;
server 127.127.1.0 — позволит, в случае отказа сети Интернет, брать время из своих системных часов.
Старт NTP и добавление в автозапуск:
systemctl disable chronyd --now systemctl enable ntpd --now
Проверка статуса NTP:
systemctl status ntpd.service
Проверить состояние получения эталонного времени можно командой:
ntpq -p
Настройка NTP на резервном контроллере домена dc2.skynet.murom
Отключите службу chrony:
systemctl disable chronyd --now
Запустите службу NTP:
systemctl enable ntpd --now
В файл /etc/ntp.conf на резервном контроллере добавьте строки:
server dc1.skynet.murom iburst prefer
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
Проверка:
[root@dc2 ~]# ntpq -p remote refid st t when poll reach delay offset jitter ========================================================================== *dc1.skynet.murom 62.33.136.11 2 u - 64 1 0.272 0.177 0.618 cello.corbina.n 194.58.202.20 2 u - 64 1 14.088 2.191 0.673 62.183.87.106 194.190.168.1 2 u 1 64 1 48.239 9.129 10.577
Настройка двунаправленной репликации sysvol и netlogon с помощью Unison
https://wiki.samba.org/index.php/SysVol_replication_(DFS-R)
Папка SYSVOL содержит групповые политики и скрипты. Отсутствие репликации приведет к неправильной работе групповых политик и сценариев входа. Есть два варианта: однонаправленная синхронизации и двунаправленная. В первом случае, реплика снимается с основного контроллера и распространяется на все резервные.
Во втором работает в обе стороны. Используем для этого Rsync и Unison (программа двунаправленной синхронизации файлов).
Установка:
dnf install rsync unison
Создание для ssh rsa-ключей и копирование публичного ключ на DC2:
[root@dc1 ~]# ssh-keygen -t rsa
[root@dc1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@DC2.skynet.murom
Теперь без ввода пароля можно попасть по ssh с DC1 на DC2 выполнив команду:
ssh dc2.skynet.murom
При низких скоростях в сети, unison может некорректно работать, поэтому при повторной его работе будет использоваться ранее созданное подключение по ssh, для этого:
mkdir ~/.ssh/ctl cat << EOF > ~/.ssh/ctl/config Host * ControlMaster auto ControlPath ~/.ssh/ctl/%h_%p_%r ControlPersist 1 EOF
Лог файл репликации (следим за размером лога!)
# touch /var/log/sysvol-sync.log # chmod 640 /var/log/sysvol-sync.log
Создайте файла конфигурации unison, для этого создадим каталог .unison:
# mkdir /root/.unison
а теперь создайте в нем файл конфигурации:
# nano /root/.unison/default.prf
с содержимым:
root = /var/lib/samba
# Note that 2 x / behind DC2, it is required
root = ssh://root@DC2.skynet.murom//var/lib/samba
# Путь синхронизации
path = sysvol
#ignore = Path stats ## ignores /var/www/stats
auto=true
batch=true
perms=0
rsync=true
maxthreads=1
retry=3
confirmbigdeletes=false
servercmd=/usr/bin/unison
copythreshold=0
copyprog = /usr/bin/rsync -XAavz --rsh='ssh -p 22' --inplace --compress --old-args
copyprogrest = /usr/bin/rsync -XAavz --rsh='ssh -p 22' --partial --inplace --compress --old-args
copyquoterem = true
copymax = 1
logfile = /var/log/sysvol-sync.log
Установка rsync и unison на DC2:
# dnf install rsync unison
Сделайте backup sysvol, потом запустите команду синхронизации:
/usr/bin/rsync -XAavz --log-file /var/log/sysvol-sync.log --delete-after -f"+ */" -f"- *" /var/lib/samba/sysvol root@dc2.skynet.murom:/var/lib/samba && /usr/bin/unison
&> /dev/null
в этой строке программа rsync создает структуры каталогов с расширенными атрибутами, а затем программа Unison копирует только эти расширенные атрибуты файлов.
Межсайтовая синхронизации настраивается через оснастку (mmc) "Active Directory Sites and Services" в Windows. Оснастка входит в пакет RSAT.
Дата последнего изменения: 23.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.