SambaAD start
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
Если компьютер с таким именем заведён, удалить его можно командой:
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
Синхронизируем время:
# 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
- имя компьютера: вводим свое
- Вводим пароль доменного администратора
- Перезагружаемся
Поэтому мы делаем небольшой хак, делаем скрипт, который при запуксе системы будет перезапускать службу сети.
# 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
Для:
- управления пользователями и компьютерами
- Правки 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
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.Сетевой хак
Поэтому мы делаем небольшой хак, делаем скрипт, который при запуксе системы будет перезапускать службу сети.
# 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
Репликация
Репликация выполняется на вторичном контроллере.
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...