SambaAD start: различия между версиями

Материал из ALT Linux Wiki
Строка 309: Строка 309:
4.Присваиваем имя DC2
4.Присваиваем имя DC2


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


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


5.На DC2 правим /etc/krb5.conf
6.На DC2 правим /etc/krb5.conf
  [libdefaults]
  [libdefaults]
  default_realm = PETR.RU
  default_realm = PETR.RU
Строка 329: Строка 329:
  dc = petr.ru
  dc = petr.ru


6. Перезапускаем сеть и самбу
7. Перезапускаем сеть и самбу
  service samba restart
  service samba restart
  service network restart
  service network restart


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


7. Вводим в домен:
9. Вводим в домен:
  # samba-tool domain join petr.ru DC -Uadministrator --realm=petr.ru
  # samba-tool domain join petr.ru DC -Uadministrator --realm=petr.ru


Строка 345: Строка 345:
  Joined domain PETR (SID S-1-5-21-80639820-2350372464-3293631772) as a DC
  Joined domain PETR (SID S-1-5-21-80639820-2350372464-3293631772) as a DC


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


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


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


  # service samba enable
  # service samba enable
  # service samba start
  # service samba start


7. На DC2 выполняем:
12. На DC2 выполняем:
  # samba-tool drs kcc -Uadministrator dc2.petr.ru
  # samba-tool drs kcc -Uadministrator dc2.petr.ru
  # service network restart
  # service network restart
  # service samba restart
  # service samba restart


8.Сетевой хак<br>
13. Правим hosts Samba
 
Правим файл /etc/samba/lmhosts - это локальный hosts файл используемый Samba.
 
Прописываем туда оба домена.
10.0.2.5 dc.petr.ru
10.0.2.7 dc2.petr.ru
 
Перезапускаем Samba:
# service samba restart
 
14.Сетевой хак<br>
{{Note|Домен работает некорректно пока не не перезапустишь службу network}}
{{Note|Домен работает некорректно пока не не перезапустишь службу network}}
Поэтому мы делаем небольшой хак, делаем скрипт, который при запуксе системы будет перезапускать службу сети.
Поэтому мы делаем небольшой хак, делаем скрипт, который при запуксе системы будет перезапускать службу сети.

Версия от 16:48, 3 апреля 2021

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

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

5.Заводим 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 имя второго контроллера домена


6.На 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

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

service samba restart
service network restart

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

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

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

# 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

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

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

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

# service samba enable
# service samba start

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

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

13. Правим hosts Samba

Правим файл /etc/samba/lmhosts - это локальный hosts файл используемый Samba.

Прописываем туда оба домена.

10.0.2.5 dc.petr.ru
10.0.2.7 dc2.petr.ru

Перезапускаем Samba:

# service samba restart

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

Примечание: Домен работает некорректно пока не не перезапустишь службу 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...