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

Материал из Русский WINE
Перейти к: навигация, поиск
Строка 46: Строка 46:
 
В примере показано создание домена ''git.ru''.
 
В примере показано создание домена ''git.ru''.
  
Запустите {{cmd|samba-tool domain provision}}:
+
Запустите '''samba-tool domain provision''':
 
<source lang="text"># samba-tool domain provision
 
<source lang="text"># samba-tool domain provision
Realm [SCHOOL.ALT]:  
+
Realm [GIT.RU]:  
  Domain [SCHOOL]:  
+
  Domain [GIT]:  
 
  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]:  
Строка 59: Строка 59:
 
При запросе ввода нажимайте 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.
  
Строка 67: Строка 66:
 
  chkconfig samba on
 
  chkconfig samba on
 
  service samba start
 
  service samba start
 
 
{{note|Если служба после установки никаким способом не запускается, перезагрузите сервер}}
 
{{note|Если служба после установки никаким способом не запускается, перезагрузите сервер}}
 
 
= Настройка Kerberos =
 
= Настройка Kerberos =
 
Откройте от имени суперпользователя файл /etc/krb5.conf.
 
Откройте от имени суперпользователя файл /etc/krb5.conf.
Строка 83: Строка 80:
 
1. Общая информация о домене:
 
1. Общая информация о домене:
 
<source lang="text"># samba-tool domain info 127.0.0.1
 
<source lang="text"># samba-tool domain info 127.0.0.1
Forest          : school.alt
+
Forest          : git.ru
Domain          : school.alt
+
Domain          : git.ru
Netbios domain  : SCHOOL
+
Netbios domain  : GIT
DC name          : c228.school.alt
+
DC name          : ad.git.ru
DC netbios name  : C228
+
DC netbios name  : AD
 
Server site      : Default-First-Site-Name
 
Server site      : Default-First-Site-Name
 
Client site      : Default-First-Site-Name</source>
 
Client site      : Default-First-Site-Name</source>
Строка 94: Строка 91:
 
<source lang="text"># smbclient -L localhost -U administrator
 
<source lang="text"># smbclient -L localhost -U administrator
 
Enter administrator's password:  
 
Enter administrator's password:  
Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21]
+
Domain=[GIT] OS=[Unix] Server=[Samba 4.0.21]
  
 
         Sharename      Type      Comment
 
         Sharename      Type      Comment
Строка 101: Строка 98:
 
         sysvol          Disk       
 
         sysvol          Disk       
 
         IPC$            IPC      IPC Service (Samba 4.0.21)
 
         IPC$            IPC      IPC Service (Samba 4.0.21)
Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21]
+
Domain=[GIT] OS=[Unix] Server=[Samba 4.0.21]
  
 
         Server              Comment
 
         Server              Comment
Строка 108: Строка 105:
 
         Workgroup            Master
 
         Workgroup            Master
 
         ---------            -------
 
         ---------            -------
         SCHOOL.ALT          C228
+
         GIT                  AD
 
         WORKGROUP            HOST-15</source>
 
         WORKGROUP            HOST-15</source>
  
 
3. Проверка конфигурации DNS
 
3. Проверка конфигурации DNS
  
3.1 Убедитесь в наличии <tt>nameserver 127.0.0.1</tt> в {{path|/etc/resolv.conf}}:
+
3.1 Убедитесь в наличии <tt>nameserver 127.0.0.1</tt> в '''/etc/resolv.conf''':
  host school.alt
+
  host git.ru
 
3.2 Проверяем имена хостов:
 
3.2 Проверяем имена хостов:
 
*адрес '''_kerberos._udp.'''''<nowiki>*</nowiki>адрес домена с точкой''
 
*адрес '''_kerberos._udp.'''''<nowiki>*</nowiki>адрес домена с точкой''
<source lang="text"># host -t SRV _kerberos._udp.school.alt.
+
<source lang="text"># host -t SRV _kerberos._udp.git.ru.
_kerberos._udp.school.alt has SRV record 0 100 88 c228.school.alt.
+
_kerberos._udp.git.ru has SRV record 0 100 88 ad.git.ru.
 
</source>
 
</source>
 
*адрес '''_ldap._tcp.'''''<nowiki>*</nowiki>адрес домена с точкой''
 
*адрес '''_ldap._tcp.'''''<nowiki>*</nowiki>адрес домена с точкой''
<source lang="text"># host -t SRV _ldap._tcp.school.alt.
+
<source lang="text"># host -t SRV _ldap._tcp.git.ru.
_ldap._tcp.school.alt has SRV record 0 100 389 c228.school.alt.
+
_ldap._tcp.git.ru has SRV record 0 100 389 ad.git.ru.
 
</source>
 
</source>
 
*'''адрес хоста'''.''<nowiki>*</nowiki>адрес домена с точкой''
 
*'''адрес хоста'''.''<nowiki>*</nowiki>адрес домена с точкой''
<source lang="text"># host -t A c228.school.alt.
+
<source lang="text"># host -t A ad.git.ru.
c228.school.alt has address 192.168.1.1
+
ad.git.ru has address 192.168.1.1
 
</source>
 
</source>
  
Если имена не находятся, проверяйте выключение службы {{cmd|named}}.
+
Если имена не находятся, проверяйте выключение службы '''named'''.
  
 
4. Проверка Kerberos:
 
4. Проверка Kerberos:
{{Attention|Имя домена должно быть в '''верхнем регистре''', иначе выдаст: <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@SCHOOL.ALT:  
+
Password for administrator@GIT.RU:  
 
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>
  
Строка 140: Строка 137:
 
<source lang="text"># klist
 
<source lang="text"># klist
 
Ticket cache: FILE:/tmp/krb5cc_0
 
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@SCHOOL.ALT
+
Default principal: administrator@GIT.RU
  
 
Valid starting      Expires              Service principal
 
Valid starting      Expires              Service principal
30.09.2014 10:23:54  30.09.2014 20:23:54  krbtgt/SCHOOL.ALT@SCHOOL.ALT
+
30.09.2014 10:23:54  30.09.2014 20:23:54  krbtgt/GIT.RU@GIT.RU
 
         renew until 01.10.2014 10:23:45</source>
 
         renew until 01.10.2014 10:23:45</source>
  
{{Attention|Для серверов, не внесённых в зону обратного просмотра 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>}}
 
+
 
=Клиент=
 
=Клиент=
Проверьте соединение с Samba 4:
+
1.Проверьте соединение с Samba 4:
 
+
<pre>
[root@centos7 ~]# realm discover my.domain
+
[root@buh1 ~]# realm discover git.ru
my.domain
+
  git.ru
 
   type: kerberos
 
   type: kerberos
   realm-name: my.domain
+
   realm-name: git.ru
   domain-name: my.domain
+
   domain-name: git.ru
 
   configured: kerberos-member
 
   configured: kerberos-member
 
   server-software: active-directory
 
   server-software: active-directory
Строка 166: Строка 162:
 
   login-formats: %U
 
   login-formats: %U
 
   login-policy: allow-realm-logins
 
   login-policy: allow-realm-logins
[root@centos7 ~]#  
+
[root@buh1 ~]#  
 
+
</pre>
Присоединение к домену.
+
2.Присоединение к домену.
 
+
<pre>
[root@centos7 ~]#  realm join my.domain
+
[root@buh1 ~]#  realm join git.ru
 
Password for Administrator:
 
Password for Administrator:
[root@centos7 ~]#  
+
[root@buh1 ~]#  
 
+
</pre>
Проверьте, способны ли мы получить пользователя от samba4..
+
3.Проверьте, способность получения информации о пользователе от Samba4.
 
+
<pre>
[root@centos7 ~]# id SUNIL\\testuser
+
[root@buh1 ~]# id SUNIL\\testuser
 
uid=1570001104(testuser@my.domain) gid=1570000513(domain users@my.domain) groups=1570000513(domain users@my.domain)
 
uid=1570001104(testuser@my.domain) gid=1570000513(domain users@my.domain) groups=1570000513(domain users@my.domain)
[root@centos7 ~]#  
+
[root@buh1 ~]#  
 
+
</pre>
  
 
Источники: [https://www.altlinux.org/SambaDC altlinux.org] [http://www.samba4.ru/?p=8 samba4.ru]
 
Источники: [https://www.altlinux.org/SambaDC altlinux.org] [http://www.samba4.ru/?p=8 samba4.ru]
 
{{Samba}}
 
{{Samba}}

Версия 17:42, 18 марта 2020

Внимание! Статья не завершена!

Контроллер домена

Установка

  • CentOS/Fedora
yum install samba4
  • Debian/Ubuntu
apt -y install samba krb5-config winbind smbclient 
  • ALT Linux
apt-get install task-samba-dc

Так как 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

Очищаем базы и конфигурацию Samba (если уже создавался домен):

rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba
rm -rf /var/cache/samba
mkdir -p /var/lib/samba/sysvol
Обязательно удаляйте /etc/samba/smb.conf перед созданием домена:
rm -f /etc/samba/smb.conf

Выбор имени домена

Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой.

При этом должно быть установлено правильное имя узла и домена для сервера:

  • HOSTNAME=dc.git.ru в /etc/sysconfig/network
  • # hostname dc.git.ru
  • # domainname git.ru

Внимание! При указании домена, имеющего суффикс .local, потребуется на сервере и подключаемых компьютерах под управлением Linux отключить службу avahi-daemon.

Создание домена одной командой

Создание контроллера домена git.ru с паролем администратора Pa$$word:

samba-tool domain provision --realm=git.ru --domain school --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --use-rfc2307

Интерактивное создание домена

У 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]: 
Administrator password: 
Retype password:

При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»).

Примечание: Пароль администратора должен быть не менее 7 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов.


Параметры --use-rfc2307 --use-xattrs=yes позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.

Запуск службы

Установите службу по умолчанию и запустите её:

chkconfig samba on
service samba start
Примечание: Если служба после установки никаким способом не запускается, перезагрузите сервер


Настройка Kerberos

Откройте от имени суперпользователя файл /etc/krb5.conf.

Раскомментируйте строку "default realm" и введите название области.

Ниже, под строкой [realms] вместо EXAMPLE.COM введите название области, а вместо example.com в "default domain" введите IP-адрес сервера с Samba.

Под строкой [domain_realm] example.com и EXAMPLE.COM замените на ваш домен сохраняя регистр.

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

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 192.168.1.1

Если имена не находятся, проверяйте выключение службы named.

4. Проверка Kerberos:

Примечание: Имя домена должно быть в верхнем регистре, иначе выдаст:
kinit: KDC reply did not match expectations while getting initial credentials


# kinit administrator
Password for administrator@GIT.RU: 
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.RU
 
Valid starting       Expires              Service principal
30.09.2014 10:23:54  30.09.2014 20:23:54  krbtgt/GIT.RU@GIT.RU
        renew until 01.10.2014 10:23:45
Примечание: Для серверов, не внесённых в зону обратного просмотра DNS, авторизация через nslcd по GSSAPI будет вылетать с диагностикой:
Local error: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (Server not found in Kerberos database)


Клиент

1.Проверьте соединение с Samba 4:

[root@buh1 ~]# realm discover git.ru
  git.ru
  type: kerberos
  realm-name: git.ru
  domain-name: git.ru
  configured: kerberos-member
  server-software: active-directory
  client-software: sssd
  required-package: oddjob
  required-package: oddjob-mkhomedir
  required-package: sssd
  required-package: adcli
  required-package: samba-common-tools
  login-formats: %U
  login-policy: allow-realm-logins
[root@buh1 ~]# 

2.Присоединение к домену.

[root@buh1 ~]#  realm join git.ru
Password for Administrator:
[root@buh1 ~]# 

3.Проверьте, способность получения информации о пользователе от Samba4.

[root@buh1 ~]# id SUNIL\\testuser
uid=1570001104(testuser@my.domain) gid=1570000513(domain users@my.domain) groups=1570000513(domain users@my.domain)
[root@buh1 ~]# 

Источники: altlinux.org samba4.ru

Samba
Search.png
Файловое хранилище Samba как файловый серверПодключение общей папкиSamba как файловый сервер в домене
Служба каталогов
Сервер Samba как служба каталогов (AD)Изменение IP-адреса ADРепликация сервера ADРезервное копирование и восстановлениеУправление пользователямиГрупповые политикиГрупповая политика паролей
Клиент Подключение клиента ADУстранение неполадок участников домена Samba
Бэкэнды идентификаторов winbind idmap config tdbidmap config adidmap config rididmap config autorid
Прочее Samba как сервер печатиПроверка конфигурационного файлаУтилиты командной строкиLMHOSTSУровень логовКаталоги SambaНастройка DNS
Разное Настройка Samba для привязки к определенным интерфейсамТестирование динамических обновлений DNSSamba Перенастройка бэкенда BIND9 DLZКонфигурация DNS для Linux и Unix
Информация SSSD vs WinbindУстановка Samba