SambaAD

Материал из Русский WINE
Перейти к: навигация, поиск
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

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

Установка

  • 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.
Примечание: Убедитесь, что вы присваиваете AD DNS-домен который не будете менять. Samba не поддерживает переименование зоны AD DNS и области Kerberos. Не используйте .local для TLD, данный суффикс используется Avahi.



Имя домена для разворачиваемого 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 и bind:

for service in smb nmb krb5kdc slapd bind; do chkconfig $service off; service $service stop; done

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

Для создания домена введите команду:

# samba-tool domain provision --use-rfc2307 --interactive

У Samba свой собственный DNS-сервер. В DNS forwarder IP address нужно указать внешний DNS-сервер, чтобы DC мог разрешать внешние доменные имена.

В примере показано создание домена git.ru.

Запустите samba-tool domain provision --use-rfc2307 --interactive:

# samba-tool domain provision --use-rfc2307 --interactive
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:»).

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


Параметры --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. Например:

nameserver 172.16.0.2
search git.ru
Примечание: Вы можете настроить данный параметр используя NetworkManager, вручную через GUI введя сервер DNS и поисковый домен.



Настройка Kerberos

В AD Kerberos используется для аутентификации пользователей, машин и сервисов.

Его необходимо настроить:

#kdb5_util create -r GIT.RU -s

Утилита при создании запросит пароль от Kerberos (новый).

После настройки утилита создаст шаблон файла конфигурации в /usr/share/samba/setup/krb5.conf.

Скопируйте его в /etc/krb5.conf и приведите к следующему виду:

[libdefaults]
 dns_lookup_kdc = true
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 default_realm = GIT.RU
 kdc_ports = 88
 kdc_tcp_ports = 88
 kadmind_port = 464

[realms]
GIT.RU = {
 default_domain = 172.16.0.2
}

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

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

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.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)


Источники: wiki.samba.orgaltlinux.org samba4.ru drach.proforum.altlinux.ru

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