SambaAD — различия между версиями
Строка 9: | Строка 9: | ||
apt-get install task-samba-dc | apt-get install task-samba-dc | ||
− | + | ==Подготовка== | |
− | + | *Используйте статический IP-адрес на контроллере домена. | |
− | + | *Убедитесь, что ни один из процессов Samba не запущен: | |
− | == | + | # ps ax | egrep "samba|smbd|nmbd|winbindd" |
− | + | Если в вывод попали процессы samba, smbd, nmbd или winbindd, завершите их. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Выбор имени домена == | == Выбор имени домена == | ||
+ | *Выберите имя хоста для своего AD DC | ||
+ | *Выберите домен DNS для своего леса AD. Имя также будет использоваться как область AD Kerberos. | ||
+ | {{Note|Убедитесь, что вы присваиваете AD DNS-домен который не будете менять. Samba не поддерживает переименование зоны AD DNS и области Kerberos. Не используйте .local для '''TLD''', данный суффикс используется Avahi.}} | ||
Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой. | Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой. | ||
Строка 35: | Строка 29: | ||
'''Внимание! При указании домена, имеющего суффикс '''.local''', потребуется на сервере и подключаемых компьютерах под управлением Linux '''отключить''' службу ''avahi-daemon''.''' | '''Внимание! При указании домена, имеющего суффикс '''.local''', потребуется на сервере и подключаемых компьютерах под управлением Linux '''отключить''' службу ''avahi-daemon''.''' | ||
− | == | + | ==Восстановление Samba к начальному состоянию== |
+ | Очищаем базы и конфигурацию Samba и Krb5 (если уже создавался домен): | ||
+ | rm -f /etc/samba/smb.conf | ||
+ | rm -rf /var/lib/samba | ||
+ | rm -rf /var/cache/samba | ||
+ | mkdir -p /var/lib/samba/sysvol | ||
+ | rm /etc/krb5.conf | ||
− | + | '''Обязательно удаляйте /etc/samba/smb.conf перед созданием домена:''' <pre>rm -f /etc/samba/smb.conf</pre> | |
+ | |||
+ | ==Настройка== | ||
+ | Так как Samba в режиме контроллера домена (Doman Controller, DC) использует как свой LDAP, так и свой сервер Kerberos, несовместимый с MIT Kerberos, перед установкой | ||
+ | остановите конфликтующие службы '''krb5kdc''', '''slapd''' и {{cmd|bind}}: | ||
+ | for service in smb nmb krb5kdc slapd bind; do chkconfig $service off; service $service stop; done | ||
− | samba-tool domain provision | + | == Создание домена == |
+ | Для создания домена введите команду: | ||
+ | # samba-tool domain provision | ||
− | |||
У Samba свой собственный DNS-сервер. В '''DNS forwarder IP address''' нужно указать внешний DNS-сервер, чтобы DC мог разрешать внешние доменные имена. | У Samba свой собственный DNS-сервер. В '''DNS forwarder IP address''' нужно указать внешний DNS-сервер, чтобы DC мог разрешать внешние доменные имена. | ||
Строка 52: | Строка 58: | ||
Server Role (dc, member, standalone) [dc]: | Server Role (dc, member, standalone) [dc]: | ||
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: | DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: | ||
− | DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: | + | DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: 8.8.8.8 |
Administrator password: | Administrator password: | ||
Retype password: | Retype password: | ||
</source> | </source> | ||
− | |||
При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»). | При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»). | ||
{{Note|Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов.}} | {{Note|Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов.}} | ||
Параметры ''--use-rfc2307 --use-xattrs=yes'' позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux. | Параметры ''--use-rfc2307 --use-xattrs=yes'' позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux. | ||
+ | |||
+ | ===Создание домена одной командой=== | ||
+ | Создание контроллера домена git.ru с паролем администратора Pa$$word: | ||
+ | |||
+ | samba-tool domain provision --realm=git.ru --domain git --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --use-rfc2307 | ||
+ | |||
+ | ==Настройка DNS Resolver== | ||
+ | Члены домена в AD используют DNS для поиска служб, таких как LDAP и Kerberos. Для этого им необходимо использовать DNS-сервер, который может разрешить зону AD DNS. | ||
+ | |||
+ | На своем контроллере домена установите DNS-домен AD в '''search''' и IP своего контроллера домена в параметре '''nameserver''' файла /etc/resolv.conf. Например: | ||
+ | search ad.git.ru | ||
+ | nameserver 172.16.0.2 | ||
+ | |||
+ | ==Настройка Kerberos== | ||
+ | В AD Kerberos используется для аутентификации пользователей, машин и сервисов. | ||
+ | |||
+ | Во время подготовки Samba создала файл конфигурации Kerberos для вашего DC. Скопируйте этот файл в конфигурацию Kerberos вашей операционной системы. Например: | ||
+ | # cp /usr/local/samba/private/krb5.conf /etc/krb5.conf | ||
+ | {{note|Не создавайте символическую ссылку на сгенерированный файл krb5.conf. В Samba 4.7 и более поздних версиях каталог /usr/local/samba/private/ больше недоступен другим пользователям, чем root. Если файл является символической ссылкой, другие пользователи не смогут прочитать файл, и, например, динамические обновления DNS не удастся, если вы используете серверную часть DNS BIND_DLZ.}} | ||
= Запуск службы = | = Запуск службы = | ||
Строка 67: | Строка 91: | ||
service samba start | service samba start | ||
{{note|Если служба после установки никаким способом не запускается, перезагрузите сервер}} | {{note|Если служба после установки никаким способом не запускается, перезагрузите сервер}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= Проверка работоспособности = | = Проверка работоспособности = | ||
Строка 123: | Строка 139: | ||
*'''адрес хоста'''.''<nowiki>*</nowiki>адрес домена с точкой'' | *'''адрес хоста'''.''<nowiki>*</nowiki>адрес домена с точкой'' | ||
<source lang="text"># host -t A ad.git.ru. | <source lang="text"># host -t A ad.git.ru. | ||
− | ad.git.ru has address | + | ad.git.ru has address 172.16.0.2 |
</source> | </source> | ||
Строка 131: | Строка 147: | ||
{{Note|Имя домена должно быть в '''верхнем регистре''', иначе выдаст: <source lang="text">kinit: KDC reply did not match expectations while getting initial credentials</source>}} | {{Note|Имя домена должно быть в '''верхнем регистре''', иначе выдаст: <source lang="text">kinit: KDC reply did not match expectations while getting initial credentials</source>}} | ||
<source lang="text"># kinit administrator | <source lang="text"># kinit administrator | ||
− | Password for administrator@GIT. | + | Password for administrator@GIT.ALT: |
Warning: Your password will expire in 41 days on Вт 11 ноя 2014 08:58:30</source> | Warning: Your password will expire in 41 days on Вт 11 ноя 2014 08:58:30</source> | ||
Строка 137: | Строка 153: | ||
<source lang="text"># klist | <source lang="text"># klist | ||
Ticket cache: FILE:/tmp/krb5cc_0 | Ticket cache: FILE:/tmp/krb5cc_0 | ||
− | Default principal: administrator@GIT. | + | Default principal: administrator@GIT.ALT |
Valid starting Expires Service principal | Valid starting Expires Service principal | ||
− | 30.09.2014 10:23:54 30.09.2014 20:23:54 krbtgt/GIT. | + | 30.09.2014 10:23:54 30.09.2014 20:23:54 krbtgt/GIT.ALT@GIT.ALT |
renew until 01.10.2014 10:23:45</source> | renew until 01.10.2014 10:23:45</source> | ||
{{Note|Для серверов, не внесённых в зону обратного просмотра DNS, авторизация через nslcd по GSSAPI будет вылетать с диагностикой: <source lang="text">Local error: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database)</source>}} | {{Note|Для серверов, не внесённых в зону обратного просмотра DNS, авторизация через nslcd по GSSAPI будет вылетать с диагностикой: <source lang="text">Local error: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database)</source>}} | ||
− | + | Источники: [https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller wiki.samba.org][https://www.altlinux.org/SambaDC altlinux.org] [http://www.samba4.ru/?p=8 samba4.ru] [http://drach.pro/blog/linux/item/136-samba-under-centos drach.pro] | |
− | + | ||
− | + | ||
− | [ | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{{Samba}} | {{Samba}} |
Версия 14:59, 19 марта 2020
Внимание! Статья не завершена!
Содержание
[убрать]Контроллер домена
Установка
- CentOS/Fedora
yum install samba4
- Debian/Ubuntu
apt -y install samba krb5-config winbind smbclient
- ALT Linux
apt-get install task-samba-dc
Подготовка
- Используйте статический IP-адрес на контроллере домена.
- Убедитесь, что ни один из процессов Samba не запущен:
# ps ax | egrep "samba|smbd|nmbd|winbindd"
Если в вывод попали процессы samba, smbd, nmbd или winbindd, завершите их.
Выбор имени домена
- Выберите имя хоста для своего AD DC
- Выберите домен DNS для своего леса AD. Имя также будет использоваться как область AD Kerberos.
Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой.
При этом должно быть установлено правильное имя узла и домена для сервера:
- HOSTNAME=dc.git.ru в /etc/sysconfig/network
- # hostname dc.git.ru
- # domainname git.ru
Внимание! При указании домена, имеющего суффикс .local, потребуется на сервере и подключаемых компьютерах под управлением Linux отключить службу avahi-daemon.
Восстановление Samba к начальному состоянию
Очищаем базы и конфигурацию Samba и Krb5 (если уже создавался домен):
rm -f /etc/samba/smb.conf rm -rf /var/lib/samba rm -rf /var/cache/samba mkdir -p /var/lib/samba/sysvol rm /etc/krb5.confОбязательно удаляйте /etc/samba/smb.conf перед созданием домена:
rm -f /etc/samba/smb.conf
Настройка
Так как Samba в режиме контроллера домена (Doman Controller, DC) использует как свой LDAP, так и свой сервер Kerberos, несовместимый с MIT Kerberos, перед установкой остановите конфликтующие службы krb5kdc, slapd и Шаблон:Cmd:
for service in smb nmb krb5kdc slapd bind; do chkconfig $service off; service $service stop; done
Создание домена
Для создания домена введите команду:
# samba-tool domain provision
У Samba свой собственный DNS-сервер. В DNS forwarder IP address нужно указать внешний DNS-сервер, чтобы DC мог разрешать внешние доменные имена.
В примере показано создание домена git.ru.
Запустите samba-tool domain provision:
# samba-tool domain provision Realm [GIT.RU]: Domain [GIT]: Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: 8.8.8.8 Administrator password: Retype password:
При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»).
Параметры --use-rfc2307 --use-xattrs=yes позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.
Создание домена одной командой
Создание контроллера домена git.ru с паролем администратора Pa$$word:
samba-tool domain provision --realm=git.ru --domain git --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --use-rfc2307
Настройка DNS Resolver
Члены домена в AD используют DNS для поиска служб, таких как LDAP и Kerberos. Для этого им необходимо использовать DNS-сервер, который может разрешить зону AD DNS.
На своем контроллере домена установите DNS-домен AD в search и IP своего контроллера домена в параметре nameserver файла /etc/resolv.conf. Например:
search ad.git.ru nameserver 172.16.0.2
Настройка Kerberos
В AD Kerberos используется для аутентификации пользователей, машин и сервисов.
Во время подготовки Samba создала файл конфигурации Kerberos для вашего DC. Скопируйте этот файл в конфигурацию Kerberos вашей операционной системы. Например:
# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf
Запуск службы
Установите службу по умолчанию и запустите её:
chkconfig samba on service samba start
Проверка работоспособности
1. Общая информация о домене:
# samba-tool domain info 127.0.0.1 Forest : git.ru Domain : git.ru Netbios domain : GIT DC name : ad.git.ru DC netbios name : AD Server site : Default-First-Site-Name Client site : Default-First-Site-Name
2. Просмотр предоставляемых служб:
# smbclient -L localhost -U administrator Enter administrator's password: Domain=[GIT] OS=[Unix] Server=[Samba 4.0.21] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.0.21) Domain=[GIT] OS=[Unix] Server=[Samba 4.0.21] Server Comment --------- ------- Workgroup Master --------- ------- GIT AD WORKGROUP HOST-15
3. Проверка конфигурации DNS
3.1 Убедитесь в наличии nameserver 127.0.0.1 в /etc/resolv.conf:
host git.ru
3.2 Проверяем имена хостов:
- адрес _kerberos._udp.*адрес домена с точкой
# host -t SRV _kerberos._udp.git.ru. _kerberos._udp.git.ru has SRV record 0 100 88 ad.git.ru.
- адрес _ldap._tcp.*адрес домена с точкой
# host -t SRV _ldap._tcp.git.ru. _ldap._tcp.git.ru has SRV record 0 100 389 ad.git.ru.
- адрес хоста.*адрес домена с точкой
# host -t A ad.git.ru. ad.git.ru has address 172.16.0.2
Если имена не находятся, проверяйте выключение службы named.
4. Проверка Kerberos:
kinit: KDC reply did not match expectations while getting initial credentials
# kinit administrator Password for administrator@GIT.ALT: Warning: Your password will expire in 41 days on Вт 11 ноя 2014 08:58:30
Просмотр полученного билета:
# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@GIT.ALT Valid starting Expires Service principal 30.09.2014 10:23:54 30.09.2014 20:23:54 krbtgt/GIT.ALT@GIT.ALT renew until 01.10.2014 10:23:45
Local error: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database)
Источники: wiki.samba.orgaltlinux.org samba4.ru drach.pro
Samba | |||
---|---|---|---|
Файловое хранилище | Samba как файловый сервер • Подключение общей папки • Samba как файловый сервер в домене | ||
Служба каталогов | |||
Сервер | Samba как служба каталогов (AD) • Изменение IP-адреса AD • Репликация сервера AD • Резервное копирование и восстановление • Управление пользователями • Групповые политики • Групповая политика паролей | ||
Клиент | Подключение клиента AD • Устранение неполадок участников домена Samba | ||
Бэкэнды идентификаторов winbind | idmap config tdb • idmap config ad • idmap config rid • idmap config autorid | ||
Прочее | Samba как сервер печати • Проверка конфигурационного файла • Утилиты командной строки • LMHOSTS • Уровень логов • Каталоги Samba • Настройка DNS | ||
Разное | Настройка Samba для привязки к определенным интерфейсам • Тестирование динамических обновлений DNS • Samba Перенастройка бэкенда BIND9 DLZ • Конфигурация DNS для Linux и Unix | ||
Информация | SSSD vs Winbind • Установка Samba |