SambaAD start: различия между версиями
(не показано 12 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
{{Note|Обратите | {{Note|Обратите внимание, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам. Официальная [[SambaDC|'''документация здесь''']].}} | ||
'''SambaAD(DC)''' - реализация службы каталогов на Samba. В данной статье будет рассмотрена в роли домена. | '''SambaAD(DC)''' - реализация службы каталогов на Samba. В данной статье будет рассмотрена в роли домена. | ||
{{Note|В нашем примере имя домена '''petr.ru'''; имя компьютера '''dc''', вместе с доменом '''dc.petr.ru'''}} | |||
==Установка== | ==Установка== | ||
[[Etcnet start| | ===Настройка статического IP=== | ||
Для контроллера домена серверу необходимо присвоить [[Etcnet start|статический IP-адрес]]. | |||
===Установка Samba=== | |||
Ставим SambaDC: | Ставим SambaDC: | ||
# apt-get install task-samba-dc | # apt-get install task-samba-dc | ||
===Очистка конфигурации=== | |||
Очищаем конфигурацию: | Очищаем конфигурацию: | ||
# rm -f /etc/samba/smb.conf | # rm -f /etc/samba/smb.conf | ||
Строка 11: | Строка 18: | ||
# rm -rf /var/cache/samba | # rm -rf /var/cache/samba | ||
# mkdir -p /var/lib/samba/sysvol | # mkdir -p /var/lib/samba/sysvol | ||
===Присваиваем имя компьютера с будущим именем домена=== | |||
Вводим имя компьютера и домена. Вводим команды: | Вводим имя компьютера и домена. Вводим команды: | ||
# hostname dc.petr.ru | # mcedit /etc/hostname | ||
Вводим и сохраняем: | |||
dc.petr.ru | |||
Перезагружаемся. | |||
==Создание домена== | |||
{{Note|Создаем домен. Т.к. мы начинающие, мы будем использовать встроенный в Samba DNS-бэкенд.}} | {{Note|Создаем домен. Т.к. мы начинающие, мы будем использовать встроенный в Samba DNS-бэкенд.}} | ||
samba-tool domain provision | $ su - | ||
# samba-tool domain provision | |||
Realm [PETR.RU]: | {{Note|Т.к. мы уже указали имя домена, он у нас будет отображаться в мастере}} | ||
Domain [PETR]: | Realm [PETR.RU]: | ||
Server Role (dc, member, standalone) [dc]: | Жмем Enter | ||
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: | Domain [PETR]: | ||
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: | Жмем Enter | ||
Administrator password: | Server Role (dc, member, standalone) [dc]: | ||
Retype password: | Оставляем dc, жмем Enter | ||
Запускаем службу | DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: | ||
# | Оставляем 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: | |||
Повторяем пароль администратора | |||
==Запускаем службу== | |||
# systemctl enable --now samba | |||
Перезагружаем сервер. | Перезагружаем сервер. | ||
==Настраиваем Kerberos== | |||
При создании домена с помощью мастера, конфиг для Kerberos уже создался. Поэтому мы его просто скопируем из папки Samba в стандартное местоположение. | |||
$ su - | |||
# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf | # cp /var/lib/samba/private/krb5.conf /etc/krb5.conf | ||
Правим файл: | ==Настраиваем DNS== | ||
Прописываем IP Samba DC в настройках DNS. Правим файл: | |||
# mcedit /etc/net/ifaces/eth0/resolv.conf | # mcedit /etc/net/ifaces/eth0/resolv.conf | ||
Перед строчкой nameserver добавляем строку nameserver с адресом 127.0.0.1, первую по очередности. | Перед строчкой nameserver добавляем строку nameserver с адресом 127.0.0.1, первую по очередности. | ||
Т.к. Samba | Т.к. мы выбрали DNS-бэкенд Samba, то удалим DNS-сервер bind: | ||
# apt-get remove bind | # apt-get remove bind | ||
Выполняем: | Перезапускаем сеть. Выполняем: | ||
# | # systemctl restart network | ||
==Проверка работоспособности== | |||
Выполняем команды: | |||
# samba-tool domain info 127.0.0.1 | # samba-tool domain info 127.0.0.1 | ||
# smbclient -L localhost -U administrator | # smbclient -L localhost -U administrator | ||
{{note|Для команды '''host''' должен быть установлен пакет '''bind-utils'''}} | |||
host petr.ru | $ host petr.ru | ||
(адрес должен иметь адрес 127.0.0.1)< | (адрес должен иметь адрес 127.0.0.1 или свой IP) | ||
Если адрес другой, правим '''/etc/net/ifaces/<имя>/resolv.conf''' и первой строчкой пишем следующее: | |||
nameserver 127.0.0.1 | |||
и перезапускаем сеть. | |||
# systemctl restart network | |||
==Проверяем имена хостов== | |||
{{note|Для работы '''Kerberos''' должен быть установлен пакет '''krb5-kdc'''}} | |||
адрес '''_kerberos._udp.'''*адрес домена с точкой | адрес '''_kerberos._udp.'''*адрес домена с точкой | ||
Строка 71: | Строка 103: | ||
dc.petr.ru has address 10.0.2.5 | dc.petr.ru has address 10.0.2.5 | ||
==Проверяем Kerberos== | |||
# kinit administrator | # kinit administrator | ||
Строка 77: | Строка 109: | ||
Warning: Your password will expire in 41 days on Чт 29 апр 2021 18:25:49 | Warning: Your password will expire in 41 days on Чт 29 апр 2021 18:25:49 | ||
Просмотр полученного билета: | |||
# klist | # klist | ||
Источник:[[ActiveDirectory/DC|[i]]] | Источник:[[ActiveDirectory/DC|[i]]] | ||
Строка 84: | Строка 116: | ||
Создать пользователя с паролем[https://wiki.samba.org/index.php/Adding_users_with_samba_tool], : | Создать пользователя с паролем[https://wiki.samba.org/index.php/Adding_users_with_samba_tool], : | ||
samba-tool user create <имя пользователя> | # samba-tool user create <имя пользователя> | ||
samba-tool user setexpiry <имя пользователя> | # samba-tool user setexpiry <имя пользователя> | ||
Например, | Например, | ||
samba-tool user create ivanov --given-name='Иван Иванов' --mail-address='ivanov@stand.alt' | # samba-tool user create ivanov --given-name='Иван Иванов' --mail-address='ivanov@stand.alt' | ||
Просмотреть доступных пользователей: | Просмотреть доступных пользователей: | ||
samba-tool user list | # samba-tool user list | ||
Удалить пользователя: | Удалить пользователя: | ||
samba-tool user delete <имя пользователя> | # samba-tool user delete <имя пользователя> | ||
Отключить пользователя: | Отключить пользователя: | ||
samba-tool user disable <имя пользователя> | # samba-tool user disable <имя пользователя> | ||
Включить пользователя: | Включить пользователя: | ||
samba-tool user enable <имя пользователя> | # samba-tool user enable <имя пользователя> | ||
Изменить пароль пользователя: | Изменить пароль пользователя: | ||
samba-tool user setpassword <имя пользователя> | # samba-tool user setpassword <имя пользователя> | ||
Не забудьте разблокировать пользователя: | Не забудьте разблокировать пользователя: | ||
samba-tool user setexpiry <имя пользователя> --noexpiry | # samba-tool user setexpiry <имя пользователя> --noexpiry | ||
{{Attention|Не допускайте одинаковых имён для пользователя и компьютера, это может привести к коллизиям (например, такого пользователя нельзя добавить в группу). [http://support2.microsoft.com/kb/310845]}} | {{Attention|Не допускайте одинаковых имён для пользователя и компьютера, это может привести к коллизиям (например, такого пользователя нельзя добавить в группу). [http://support2.microsoft.com/kb/310845]}} | ||
Если компьютер с таким именем заведён, удалить его можно командой: | Если компьютер с таким именем заведён, удалить его можно командой: | ||
pdbedit -x -m <имя> | # pdbedit -x -m <имя> | ||
Добавить группу: | Добавить группу: | ||
samba-tool group add groupname | # samba-tool group add groupname | ||
Добавить UNIX-группу: | Добавить UNIX-группу: | ||
samba-tool group add groupname --nis-domain=samdom --gid-number=<next available GID> | # samba-tool group add groupname --nis-domain=samdom --gid-number=<next available GID> | ||
Удалить группу: | Удалить группу: | ||
samba-tool group delete groupname | # samba-tool group delete groupname | ||
Добавить пользователя в группу: | Добавить пользователя в группу: | ||
samba-tool group addmembers "Domain Users" user | # samba-tool group addmembers "Domain Users" user | ||
samba-tool group addmembers "Domain Users" user,user1,user2 | # samba-tool group addmembers "Domain Users" user,user1,user2 | ||
Удалить пользователя из группы: | Удалить пользователя из группы: | ||
samba-tool group removemembers "Domain Users" user | # samba-tool group removemembers "Domain Users" user | ||
samba-tool group removemembers "Domain Users" user,user1,user2 | # samba-tool group removemembers "Domain Users" user,user1,user2 | ||
Пользователи группы: | Пользователи группы: | ||
samba-tool group listmembers "Domain Users" | grep username | # samba-tool group listmembers "Domain Users" | grep username | ||
Группы пользователя: | Группы пользователя: | ||
samba-tool user show ''username'' | # samba-tool user show ''username'' | ||
Смотрим значение '''memberOf''' | Смотрим значение '''memberOf''' | ||
===Графический способ=== | ===Графический способ=== | ||
Строка 152: | Строка 184: | ||
Запускаем службы wicd: | Запускаем службы wicd: | ||
# | # systemctl enable --now wicd | ||
Удаляем Network Manager: | Удаляем Network Manager: | ||
Строка 159: | Строка 190: | ||
Идем в /etc/net/ifaces/eth0 | Идем в /etc/net/ifaces/eth0 | ||
cd /etc/net/ifaces/ | # cd /etc/net/ifaces/ | ||
mkdir eth0 | # mkdir eth0 | ||
cd eth0 | # cd eth0 | ||
Правим настройки | Правим настройки | ||
# mcedit options | |||
BOOTPROTO=static | BOOTPROTO=static | ||
Строка 172: | Строка 203: | ||
Правим настройки IPv4: | Правим настройки IPv4: | ||
# mcedit ipv4address | |||
10.0.2.10/24 | 10.0.2.10/24 | ||
Правим настройки шлюза: | Правим настройки шлюза: | ||
# mcedit ipv4route | |||
default via 10.0.2.1 | default via 10.0.2.1 | ||
Домены по-умолчанию и DNS-сервера: | Домены по-умолчанию и DNS-сервера: | ||
# mcedit resolv.conf | |||
{{Note|Где, {{cmd|nameserver 10.0.2.5}} - адрес Samba-сервера с КД и DNS}} | |||
search petr.ru | search petr.ru | ||
nameserver 10.0.2.5 | nameserver 10.0.2.5 | ||
Перезапускаем сеть: | Перезапускаем сеть: | ||
# systemctl restart network | |||
Применяем настройки DNS: | Применяем настройки DNS: | ||
Строка 205: | Строка 233: | ||
Если не пингуется, проверяйте настройки сети и DNS и перезапускайте еще раз их. | Если не пингуется, проверяйте настройки сети и DNS и перезапускайте еще раз их. | ||
====Проблемы со входом в домен и сеть==== | ====Проблемы со входом в домен и сеть==== | ||
{{Note|Доменный пользователь не входит в домен пока не зайдешь под локальным и не перезапустишь службу network}} | {{Note|Доменный пользователь не входит в домен пока не зайдешь под локальным и не перезапустишь службу network}} | ||
Строка 215: | Строка 244: | ||
в нашем примере: | в нашем примере: | ||
systemctl enable network@eth0 | systemctl enable network@eth0 | ||
=== | |||
===Root из доменных пользователей=== | |||
{{Note|Чтобы из-под доменных пользователей работали права суперпользователя}} | {{Note|Чтобы из-под доменных пользователей работали права суперпользователя}} | ||
Иногда, при использовании домена, нужно выполнить действие от имени админа в простом пользователе. (Например, при подключении через Anydesk и т.п.) Если открыть Synaptic или ЦУС то появляется окошко ввода пароля. Если в консоли под простым пользователем ввести {{cmd|su-}} система откажет из-за недостатка прав. | |||
Иногда, при использовании домена, нужно выполнить действие от имени админа в простом пользователе. (Например, при подключении через Anydesk и т.п.) Если открыть Synaptic или ЦУС то появляется окошко ввода пароля. Если в консоли под простым пользователем ввести su- | |||
При запуске GUI приложений появляется окошко ввода root-пароля. Это утилита '''beesu'''. С ее помощью можно запустить терминал с правами администратора. | При запуске GUI приложений появляется окошко ввода root-пароля. Это утилита '''beesu'''. С ее помощью можно запустить терминал с правами администратора. | ||
Строка 236: | Строка 255: | ||
===Ввод в домен=== | ===Ввод в домен=== | ||
{{Note|Чтобы компьютер получил время с сервера домена, надо на сервере, в Alterator | {{Note|Чтобы компьютер получил время с сервера домена, надо на сервере, в {{nav|Alterator|Система|Дата и время}} поставить галочку "работать как NTP-сервер" и нажать "применить"}} | ||
Синхронизируем время: | Синхронизируем время: | ||
# net time set -S petr.ru | # net time set -S petr.ru | ||
Строка 244: | Строка 263: | ||
====GUI==== | ====GUI==== | ||
*ЦУС | *{{nav|ЦУС|Пользователи|Аутентификация}} | ||
**Домен AD: | **Домен AD: | ||
**домен petr.ru | **домен petr.ru | ||
Строка 251: | Строка 270: | ||
**Вводим пароль доменного администратора | **Вводим пароль доменного администратора | ||
**Перезагружаемся | **Перезагружаемся | ||
====Консоль==== | ====Консоль==== | ||
{{Note|Где: | |||
*system-auth write ad - команда, говорящая что производится ввод в домен | |||
*petr.ru - имя домена | |||
*pc-1 - имя рабочей станции | |||
*petr - имя рабочей группы | |||
*'administrator' - имя администратора домена | |||
*'Pa$$word' - пароль администратора домена | |||
}} | |||
# system-auth write ad petr.ru pc-1 petr 'administrator' 'Pa$$word' | # system-auth write ad petr.ru pc-1 petr 'administrator' 'Pa$$word' | ||
Строка 264: | Строка 292: | ||
*удалите файл /etc/krb5.keytab | *удалите файл /etc/krb5.keytab | ||
*введите в домен[https://t.me/alt_linux/109774] | *введите в домен[https://t.me/alt_linux/109774] | ||
==Вторичный контроллер== | ==Вторичный контроллер== | ||
1. | 1.У нас есть пустой сервер. | ||
2.Ставим на него samba-dc. | 2.Ставим на него samba-dc. | ||
# apt-get install task-samba-dc | |||
3.Настраиваем IP. | 3.[[Etcnet_start|Настраиваем IP]]. | ||
4.Присваиваем имя DC2 | 4.Присваиваем имя DC2 | ||
# hostnamectl set-hostname dc2.petr.ru | |||
5.Заводим 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 | ||
Строка 336: | Строка 310: | ||
6.На DC2 правим /etc/krb5.conf | 6.На DC2 правим /etc/krb5.conf | ||
# mcedit /etc/krb5.conf | |||
[libdefaults] | [libdefaults] | ||
default_realm = PETR.RU | default_realm = PETR.RU | ||
dns_lookup_realm = | dns_lookup_realm = false | ||
dns_lookup_kdc = true | dns_lookup_kdc = true | ||
<!-- | |||
[realms] | [realms] | ||
PETR.RU = { | PETR.RU = { | ||
default_domain = | default_domain = PETR.RU | ||
} | } | ||
[domain_realm] | [domain_realm] | ||
dc = petr.ru | dc = petr.ru--> | ||
7. Перезапускаем сеть и самбу | 7. Перезапускаем сеть и самбу | ||
# systemctl restart samba | |||
# systemctl restart network | |||
8. Получаем билет и убеждаемся, что билет получен: | 8. Получаем билет и убеждаемся, что билет получен: | ||
Строка 368: | Строка 346: | ||
Для этого правим файл /etc/net/ifaces/eth0/resolv.conf | Для этого правим файл /etc/net/ifaces/eth0/resolv.conf | ||
nameserver 10.0.2.7 | |||
11. Включаем и запускаем службу samba: | 11. Включаем и запускаем службу samba: | ||
# | # systemctl enable --now samba | ||
12. На DC2 | 12. На DC2 запускаем центр согласованности знаний: | ||
# samba-tool drs kcc -Uadministrator dc2.petr.ru | # samba-tool drs kcc -Uadministrator dc2.petr.ru | ||
# | # systemctl restart network | ||
# | # systemctl restart samba | ||
13. Правим hosts Samba | 13. Правим hosts Samba | ||
Строка 388: | Строка 365: | ||
Перезапускаем Samba: | Перезапускаем Samba: | ||
# | # systemctl restart samba | ||
14.Донастройка сети<br> | 14.Донастройка сети<br> | ||
Строка 414: | Строка 391: | ||
samba-tool drs replicate dc.petr.ru dc2.petr.ru dc=petr,dc=ru -Uadministrator --password=pa$$word | samba-tool drs replicate dc.petr.ru dc2.petr.ru dc=petr,dc=ru -Uadministrator --password=pa$$word | ||
====Ошибки==== | ====Ошибки==== | ||
=====Время===== | |||
1398, WERR_TIME_SKEW | 1398, WERR_TIME_SKEW | ||
или | или | ||
NT_STATUS_TIME_DIFFERENCE_AT_DC | NT_STATUS_TIME_DIFFERENCE_AT_DC | ||
Рассинхронизация времени на контроллерах домена. Сделайте время на контроллерах одинаковым.<br> | Рассинхронизация времени на контроллерах домена. Сделайте время на контроллерах одинаковым.<br> | ||
=====Ошибка при репликации на второй===== | |||
DRS connection to dc.petr.ru failed - drsException: DRS connection to dc.petr.ru | DRS connection to dc.petr.ru failed - drsException: DRS connection to dc.petr.ru | ||
Выполните на вторичном контроллере: | Выполните на вторичном контроллере: | ||
samba-tool drs kcc -Uadministrator dc2.petr.ru | samba-tool drs kcc -Uadministrator dc2.petr.ru | ||
где dc2.petr.ru - ваш вторичный контроллер домена | где dc2.petr.ru - ваш вторичный контроллер домена | ||
=====Ошибка при репликации на первый===== | |||
DsReplicaSync failed - drsException: DsReplicaSync failed (1311, 'WERR_NO_LOGON_SERVERS') | DsReplicaSync failed - drsException: DsReplicaSync failed (1311, 'WERR_NO_LOGON_SERVERS') | ||
Не прописаны домены в /etc/samba/lmhosts. | Не прописаны домены в /etc/samba/lmhosts. | ||
Строка 435: | Строка 412: | ||
# rm -f /var/lib/sss/mc/* | # rm -f /var/lib/sss/mc/* | ||
# systemctl start sssd | # systemctl start sssd | ||
==Ссылки== | |||
*[https://www.youtube.com/watch?v=Ql9kJQb9OHs Видеодемонстрация создания домена и подключения к нему клиента] ([http://vk.com/video-212607191_456239144 +vk]) | |||
{{Category navigation|title=Начинающему системному администратору|category=Начинающему системному администратору|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Начинающему системному администратору|category=Начинающему системному администратору|sortkey={{SUBPAGENAME}}}} | ||
[[Категория:Samba]] | [[Категория:Samba]] |
Версия от 22:38, 3 декабря 2024
SambaAD(DC) - реализация службы каталогов на Samba. В данной статье будет рассмотрена в роли домена.
Установка
Настройка статического IP
Для контроллера домена серверу необходимо присвоить статический IP-адрес.
Установка 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
Присваиваем имя компьютера с будущим именем домена
Вводим имя компьютера и домена. Вводим команды:
# mcedit /etc/hostname
Вводим и сохраняем:
dc.petr.ru
Перезагружаемся.
Создание домена
$ su - # samba-tool domain provision
Realm [PETR.RU]:
Жмем Enter
Domain [PETR]:
Жмем Enter
Server Role (dc, member, standalone) [dc]:
Оставляем dc, жмем Enter
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
Оставляем 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:
Повторяем пароль администратора
Запускаем службу
# systemctl enable --now samba
Перезагружаем сервер.
Настраиваем Kerberos
При создании домена с помощью мастера, конфиг для Kerberos уже создался. Поэтому мы его просто скопируем из папки Samba в стандартное местоположение.
$ su - # cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
Настраиваем DNS
Прописываем IP Samba DC в настройках DNS. Правим файл:
# mcedit /etc/net/ifaces/eth0/resolv.conf
Перед строчкой nameserver добавляем строку nameserver с адресом 127.0.0.1, первую по очередности.
Т.к. мы выбрали DNS-бэкенд Samba, то удалим DNS-сервер bind:
# apt-get remove bind
Перезапускаем сеть. Выполняем:
# systemctl restart network
Проверка работоспособности
Выполняем команды:
# samba-tool domain info 127.0.0.1 # smbclient -L localhost -U administrator
$ host petr.ru
(адрес должен иметь адрес 127.0.0.1 или свой IP)
Если адрес другой, правим /etc/net/ifaces/<имя>/resolv.conf и первой строчкой пишем следующее:
nameserver 127.0.0.1
и перезапускаем сеть.
# systemctl restart network
Проверяем имена хостов
адрес _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
Проверяем Kerberos
# kinit administrator
Password for administrator@PETR.RU: Warning: Your password will expire in 41 days on Чт 29 апр 2021 18:25:49
Просмотр полученного билета:
# klist
Источник:[i]
Управление пользователями
Создать пользователя с паролем[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
Графический способ
Для управления Samba-пользователями через GUI на отдельной рабочей станции необходимо поставить ADMC.
Подключение работает только со сторонней рабочей станции/сервера. С самого КД подключить утилиту к базе AD у меня не получилось.
Подключение компьютера
Ставим пакет:
# apt-get install task-auth-ad-sssd
Настраиваем сеть: (или поднимите DHCP на КД)
Настройка IP
# apt-get install etcnet-full # apt-get install wicd wicd-gtk
Запускаем службы wicd:
# systemctl enable --now wicd
Удаляем Network Manager:
# apt-get remove NetworkManager*
Идем в /etc/net/ifaces/eth0
# cd /etc/net/ifaces/ # mkdir eth0 # cd eth0
Правим настройки
# mcedit options
BOOTPROTO=static TYPE=eth DISABLED=no NM_CONTROLLED=no CONFIG_IPV4=YES
Правим настройки IPv4:
# mcedit ipv4address
10.0.2.10/24
Правим настройки шлюза:
# mcedit ipv4route
default via 10.0.2.1
Домены по-умолчанию и DNS-сервера:
# mcedit resolv.conf
search petr.ru nameserver 10.0.2.5
Перезапускаем сеть:
# systemctl restart network
Применяем настройки 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 и перезапускайте еще раз их.
Проблемы со входом в домен и сеть
Это решается следующим образом:
- в файл options настраиваемого интерфейса добавляем:
ONBOOT=no
- включаем его загрузку через systemd:
systemctl enable network@<имя интерфейса>
в нашем примере:
systemctl enable network@eth0
Root из доменных пользователей
Иногда, при использовании домена, нужно выполнить действие от имени админа в простом пользователе. (Например, при подключении через Anydesk и т.п.) Если открыть Synaptic или ЦУС то появляется окошко ввода пароля. Если в консоли под простым пользователем ввести su- система откажет из-за недостатка прав.
При запуске GUI приложений появляется окошко ввода root-пароля. Это утилита beesu. С ее помощью можно запустить терминал с правами администратора.
$ beesu mate-terminal
и, введя пароль суперпользователя, получить доступ к админской консоли.
Ввод в домен
Синхронизируем время:
# net time set -S petr.ru
Ставим пакет:
# apt-get install task-auth-ad-sssd
GUI
- ЦУС ▷ Пользователи ▷ Аутентификация
- Домен AD:
- домен petr.ru
- рабочая группа: PETR
- имя компьютера: вводим свое
- Вводим пароль доменного администратора
- Перезагружаемся
Консоль
- system-auth write ad - команда, говорящая что производится ввод в домен
- petr.ru - имя домена
- pc-1 - имя рабочей станции
- petr - имя рабочей группы
- 'administrator' - имя администратора домена
- 'Pa$$word' - пароль администратора домена
# system-auth write ad petr.ru pc-1 petr 'administrator' 'Pa$$word'
AD/Samba-клиент и клонирование рабочей станции
Если вы настроили на одном компьютере ALT Linux с AD/Samba доменом и хотите развернуть образ на другом компьютере, приготовьтесь потом сделать следующее. Каждый компьютер введенный в домен получает keytab-файл от Kerberos. И если вы уже введенную в домен систему развернете на другом компьютере, она будет конфликтовать из-за Kerberos-билета.
Чтобы не было конфликта:
- введите систему в домен
- клонируйте акронимом/подобным (склонируйте-разверните)
- выведите систему из домена
- переименуйте компьютер
- удалите файл /etc/krb5.keytab
- введите в домен[3]
Вторичный контроллер
1.У нас есть пустой сервер.
2.Ставим на него samba-dc.
# apt-get install task-samba-dc
4.Присваиваем имя DC2
# hostnamectl set-hostname dc2.petr.ru
5.Заводим IP-адрес для DC2 на основном домене:
# samba-tool dns add 10.0.2.5 petr.ru DC2 A 10.0.2.7 -Uadministrator
6.На DC2 правим /etc/krb5.conf
# mcedit /etc/krb5.conf
[libdefaults] default_realm = PETR.RU dns_lookup_realm = false dns_lookup_kdc = true
7. Перезапускаем сеть и самбу
# systemctl restart samba # systemctl restart network
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
nameserver 10.0.2.7
11. Включаем и запускаем службу samba:
# systemctl enable --now samba
12. На DC2 запускаем центр согласованности знаний:
# samba-tool drs kcc -Uadministrator dc2.petr.ru # systemctl restart network # systemctl restart samba
13. Правим hosts Samba
Правим файл /etc/samba/lmhosts (на обоих контроллерах) - это локальный hosts файл используемый Samba.
Прописываем туда оба домена.
10.0.2.5 dc.petr.ru 10.0.2.7 dc2.petr.ru
Перезапускаем Samba:
# systemctl restart samba
14.Донастройка сети
- в файл options настраиваемого интерфейса добавляем:
ONBOOT=no
- включаем его загрузку через systemd:
systemctl enable network@<имя интерфейса>
в нашем примере:
systemctl enable network@eth0
Репликация
Репликация выполняется на вторичном контроллере.
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
Чтобы сделать репликацию в планировщике заданий, добавьте параметр пароля:
samba-tool drs replicate dc.petr.ru dc2.petr.ru dc=petr,dc=ru -Uadministrator --password=pa$$word
Ошибки
Время
1398, WERR_TIME_SKEW
или
NT_STATUS_TIME_DIFFERENCE_AT_DC
Рассинхронизация времени на контроллерах домена. Сделайте время на контроллерах одинаковым.
Ошибка при репликации на второй
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 - ваш вторичный контроллер домена
Ошибка при репликации на первый
DsReplicaSync failed - drsException: DsReplicaSync failed (1311, 'WERR_NO_LOGON_SERVERS')
Не прописаны домены в /etc/samba/lmhosts.
Прочее
Ручное обновление кэша SSSD
Необходимое удалить его базы и перезапустить.[4]
# systemctl stop sssd # rm -f /var/lib/sss/db/* # rm -f /var/lib/sss/mc/* # systemctl start sssd