SambaAD start

Материал из ALT Linux Wiki
Примечание: Обратите внимение, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам. Официальная документация здесь.

SambaAD(DC) - реализация службы каталогов на Samba. В данной статье будет рассмотрена в роли домена.

Установка

Ставим SambaDC:

# apt-get install task-samba-dc

Очищаем конфигурацию:

# rm -f /etc/samba/smb.conf
# rm -rf /var/lib/samba
# rm -rf /var/cache/samba
# mkdir -p /var/lib/samba/sysvol

Вводим имя компьютера и домена:

# nano /etc/sysconfig/network
hostname dc.petr.ru
domainname petr.ru

Вводим команды:

# hostname dc.petr.ru
# domainname petr.ru

Создаем домен:

samba-tool domain provision
Realm [PETR.RU]: //жмем Enter
Domain [PETR]: //жмем Enter
Server Role (dc, member, standalone) [dc]: //жмем Enter
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: //жмем Enter
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: //тут надо выставить внешний DNS, если он не прописался по-умолчанию, чтобы домен мог разрешать внешние адреса. Например 8.8.8.8.
Administrator password: //Вводим пароль администратора
Retype password: //Повторяем пароль администратора

Запускаем службу:

service samba enable
service samba start

Перезагружаем сервер.

Копируем файл настроек krb5:

cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

Правим файл:

nano /etc/net/ifaces/eth0/resolv.conf

В строчку nameserver добавляем адрес 127.0.0.1, первым по очередности.

Т.к. Samba использует свой DNS-сервер удаляем bind:

# apt-get remove bind

Выполняем:

service network restart

Проверка работоспособности:

1)

# samba-tool domain info 127.0.0.1

2)

# smbclient -L localhost -U administrator

3)

host petr.ru

(адрес должен иметь адрес 127.0.0.1)
4)Проверяем имена хостов:

адрес _kerberos._udp.*адрес домена с точкой

# host -t SRV _kerberos._udp.petr.ru.
_kerberos._udp.petr.ru has SRV record 0 100 88 dc.petr.ru.

адрес _ldap._tcp.*адрес домена с точкой

# host -t SRV _ldap._tcp.petr.ru.
_ldap._tcp.petr.ru has SRV record 0 100 389 dc.petr.ru.

адрес хоста.*адрес домена с точкой

# host -t A dc.petr.ru.
dc.petr.ru has address 10.0.2.5

5)Проверяем Kerberos

# kinit administrator

Password for administrator@PETR.RU: Warning: Your password will expire in 41 days on Чт 29 апр 2021 18:25:49

6)Просмотр полученного билета:

# klist

Управление пользователями

Создать пользователя с паролем[1], :

samba-tool user create <имя пользователя>
samba-tool user setexpiry <имя пользователя>

Например,

samba-tool user create ivanov --given-name='Иван Иванов' --mail-address='ivanov@stand.alt'

Просмотреть доступных пользователей:

samba-tool user list

Удалить пользователя:

samba-tool user delete <имя пользователя>

Отключить пользователя:

samba-tool user disable <имя пользователя>

Включить пользователя:

samba-tool user enable <имя пользователя>

Изменить пароль пользователя:

samba-tool user setpassword <имя пользователя>

Не забудьте разблокировать пользователя:

samba-tool user setexpiry <имя пользователя> --noexpiry
Внимание! Не допускайте одинаковых имён для пользователя и компьютера, это может привести к коллизиям (например, такого пользователя нельзя добавить в группу). [2]


Если компьютер с таким именем заведён, удалить его можно командой:

pdbedit -x -m <имя>

Добавить группу:

samba-tool group add groupname

Добавить UNIX-группу:

samba-tool group add groupname --nis-domain=samdom --gid-number=<next available GID>

Удалить группу:

samba-tool group delete groupname

Добавить пользователя в группу:

samba-tool group addmembers "Domain Users" user
samba-tool group addmembers "Domain Users" user,user1,user2

Удалить пользователя из группы:

samba-tool group removemembers "Domain Users" user
samba-tool group removemembers "Domain Users" user,user1,user2

Пользователи группы:

samba-tool group listmembers "Domain Users" | grep username

Группы пользователя:

samba-tool user show username

Смотрим значение memberOf

Подключение компьютера

Настраиваем сеть:

Идем в /etc/net/ifaces/eth0

cd /etc/net/ifaces/
mkdir eth0
cd eth0

Правим настройки

nano options
BOOTPROTO=static
TYPE=eth
DISABLED=no
NM_CONTROLLED=no
CONFIG_IPV4=YES

Правим настройки IPv4:

nano ipv4address
10.0.2.10/24

Правим настройки шлюза:

nano ipv4route
default via 10.0.2.1

Домены по-умолчанию и DNS-сервера:

nano resolv.conf
search petr.ru
nameserver 10.0.2.5 //адрес Samba-сервера

Т.к. Samba использует свой DNS-сервер удаляем bind:

# apt-get remove bind

Перезапускаем сеть:

service network restart

Применяем настройки DNS:

# /etc/chroot.d/resolv.all

Проверяем, пингуется ли домен:

$ ping petr.ru
PING petr.ru (10.0.2.5) 56(84) bytes of data.
64 bytes from 10.0.2.5: icmp_seq=1 ttl=128 time=0.285 ms
64 bytes from 10.0.2.5: icmp_seq=1 ttl=128 time=0.285 ms
64 bytes from 10.0.2.5: icmp_seq=1 ttl=128 time=0.285 ms
64 bytes from 10.0.2.5: icmp_seq=1 ttl=128 time=0.285 ms

Если не пингуется, проверяйте настройки сети и DNS и перезапускайте еще раз их.

Правим:

# nano /etc/sudoers

Расскомментируем:

User_Alias SUDO_USERS = %sudo

И дописываем после:

# root ALL=(ALL)ALL
user ALL=(ALL:ALL)ALL
Примечание: Чтобы компьютер получил время с сервера домена, надо на сервере, в Alterator в Система-Дата и время поставить галочку "работать как NTP-сервер" и нажать "применить"

Синхронизируем время:

# net time set -S petr.ru

Ставим пакет:

# apt-get install task-auth-ad-sssd
# apt-get install etcnet-full
# apt-get install wicd wicd-gtk

Запускаем службы wicd:

# service wicd enable
# service wicd start

Удаляем Network Manager:

# apt-get remove NetworkManager*
  • ЦУС-Пользователи-Аутентификация
    • Домен AD:
    • домен petr.ru
    • рабочая группа: PETR
    • имя компьютера: вводим свое
    • Вводим пароль доменного администратора
    • Перезагружаемся
Примечание: Доменный пользователь не входит в домен пока не зайдешь под локальным и не перезапустишь службу network

Поэтому мы делаем небольшой хак, делаем скрипт, который при запуксе системы будет перезапускать службу сети.

# cd /etc/systemd/system
# nano network-restart.service

Вводим в текстовом редакторе:

[Unit]
Description=Restart Network
After=default.target

[Service]
ExecStart=service network restart

[Install]
WantedBy=default.target
# systemctl daemon-reload
# systemctl enable network-restart

GUI для управления Samba

Admin-tools.png

Для:

  • управления пользователями и компьютерами
  • Правки ADSI
  • Управления DNS
  • Управления групповой политикой

можно использовать утилиту Admin Tools.

Переходи в каталог со скачанной программой, распаковываем ее из архива и распаковываем:

$ admintools* --appimage-extract

Потом переходим в каталог с программой и запускаем в консоли:

$ ./AppRun

Для управления используйте Tab, пробел и Esc.

Подключение:

  • username: Administrator
  • password: ваш пароль
  • domain: домен с точкой, вида DOMAIN.RU

Особенности

Управления пользователями и компьютерами

  • Табом, стрелками и Enter выбираем элемент, потом табом переходим в Action и выбираем Propereties.
  • Затем Edit.

Правки ADSI

  • Делаем Action-Connect to-Computer-Select or type a domain or server-вводим имя домена (DOMAIN.RU)

Подключение:

  • username: Administrator
  • password: ваш пароль
  • domain: домен с точкой, вида DOMAIN.RU
  • Табом, стрелками и Enter выбираем элемент, потом табом переходим в Action и выбираем Propereties.
  • Затем Edit.

Управление DNS

  • Делаем Action-Connect to DNS-server-The following computer-Select or type a domain or server-вводим имя домена (DOMAIN.RU)

Подключение:

  • username: Administrator
  • password: ваш пароль
  • domain: домен с точкой, вида DOMAIN.RU
  • Табом, стрелками и Enter выбираем элемент, потом табом переходим в Action и выбираем Propereties.
  • Затем Edit.

Здесь же можно создать всякие A, AAA и пр. записи и т.п.

Управления групповой политикой

Подключение:

  • username: Administrator
  • password: ваш пароль
  • domain: домен с точкой, вида DOMAIN.RU

Но править политики там нельзя.

Вторичный контроллер

1.Пустой сервер.

2.Ставим на него samba-dc.

3.Настраиваем IP.

4.Присваиваем имя DC2

4.Заводим IP-адрес для DC2 на основном домене:

# samba-tool dns add 10.0.2.5 petr.ru DC2 A 10.0.2.7 -Uadministrator
Примечание: 10.0.2.5 - адрес DC1, 10.0.2.7 - адрес DC2, DC2 имя второго контроллера домена


5.На DC2 правим /etc/krb5.conf

[libdefaults]
default_realm = PETR.RU
dns_lookup_realm = true
dns_lookup_kdc = true

[realms]
PETR.RU = {
default_domain = petr.ru
}

[domain_realm]
dc = petr.ru

6. Перезапускаем сеть и самбу

service samba restart
service network restart

7. Получаем билет и убеждаемся, что билет получен:

Примечание: Внимание! Имя домена должно быть указано в верхнем регистре
# kinit administrator@PETR.RU
# klist

7. Вводим в домен:

# samba-tool domain join petr.ru DC -Uadministrator --realm=petr.ru

Если всё нормально, в конце видим:

Joined domain PETR (SID S-1-5-21-80639820-2350372464-3293631772) as a DC

8. После успешного ввода в домен в resolvconf необходимо сменить адрес PDC на адрес вторичного DC (в нашем примере 10.0.2.7).

Для этого правим файл /etc/net/ifaces/eth0/resolv.conf

6. Включаем и запускаем службу samba:

# service samba enable
# service samba start

7. На DC2 выполняем:

# samba-tool drs kcc -Uadministrator dc2.petr.ru
# service network restart
# service samba restart

8.Сетевой хак

Примечание: Домен работает некорректно пока не не перезапустишь службу network

Поэтому мы делаем небольшой хак, делаем скрипт, который при запуксе системы будет перезапускать службу сети.

# cd /etc/systemd/system
# nano network-restart.service

Вводим в текстовом редакторе:

[Unit]
Description=Restart Network
After=default.target

[Service]
ExecStart=service network restart

[Install]
WantedBy=default.target
# systemctl daemon-reload
# systemctl enable network-restart

Репликация

Внимание! Помните, что без успешной двунаправленной репликации в течение 14 дней DC исключается из Active Directory

Репликация выполняется на вторичном контроллере.

Примечание: Следите чтобы у доменов не было сильного расхождения во времени!


1. Реплицируем с первичного (1-й приемник, 2-й источник)

 # samba-tool drs replicate dc2.petr.ru dc.petr.ru dc=petr,dc=ru -Uadministrator
Примечание: репликация на первичный у автора не заработала

2. Реплицируем на первичный (1-й приемник, 2-й источник)

 # samba-tool drs replicate dc.petr.ru dc2.petr.ru dc=petr,dc=ru -Uadministrator

3. Просмотр статуса репликации

 # samba-tool drs showrepl

Ошибки

1.Время:

1398, WERR_TIME_SKEW

или

NT_STATUS_TIME_DIFFERENCE_AT_DC

Рассинхронизация времени на контроллерах домена. Сделайте время на контроллерах одинаковым.
2.Ошибка при репликации на второй:

DRS connection to dc.petr.ru failed - drsException: DRS connection to dc.petr.ru

Выполните на вторичном контроллере:

samba-tool drs kcc -Uadministrator dc2.petr.ru

где dc2.petr.ru - ваш вторичный контроллер домена
3.Ошибка при репликации на первый:

DsReplicaSync failed - drsException: DsReplicaSync failed (1311, 'WERR_NO_LOGON_SERVERS')

Выполните:

WAIT...