Эта статья основана на wiki по Samba и является достаточно вольным ее переводом, с уточнениями и дополнениями с учетом опыта произведенных установок. Подразумевается, что samba ставится на Ubuntu 14.04LTS и в качестве DNS сервера используется проверенный и надежный Bind9.
Исходные данные для установки:
AD DC Hostname: DC1 AD DNS Domain Name: samdom.example.com Kerberos Realm: samdom.example.com NT4 Domain Name/NetBIOS Name: samdom IP Address: 192.168.1.1 Server Role: Domain Controller (DC) Domain Admin Password: pa$$w0rd Forwarder DNS Server: 192.168.1.254
Первоначальная установка и настройка SAMBA
В Ubuntu 14.04LTS в стандартном репозитерии уже есть все, для того чтобы установить Samba в качестве контроллера домена Active Directory (AD DC), устанавливаем одной командой:
sudo apt-get install samba acl krb5-user ntp cups bind9 smbclient
Далее можно приступать к настройке. Первоначальная настройка осуществляется утилитой samba-tool и заключается в создании базы данных Active Directory при установке первого Samba котролера домена в домене.
# sudo samba-tool domain provision --use-rfc2307 --interactive Realm [SAMDOM.EXAMPLE.COM]: SAMDOM.EXAMPLE.COM Domain [SAMDOM]: SAMDOM Server Role (dc, member, standalone) [dc]: dc DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:BIND9_DLZ Administrator password: pa$$w0rd Retype password: pa$$w0rd
Минимальная длина пароля — 7 символов! Иначе выдаст ошибку!!! Запуск samba-tool должен осуществляться с правами root, для возможности записи в директорию установки и установки корректных прав на создаваемые файлы и директории.
—use-rfc2307: включает расширения NIS, которые позволяют легко управлять пользователями/группами с помощью Windows tool Active Directory Users and Computers (ADUC) без ручного манипулирования UID/GID.
Проверка первоначальной установки SAMBA
$ smbclient -L localhost -U% Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.x.y] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.x.y) Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.x.y] Server Comment --------- ------- Workgroup Master --------- -------
Для проверки корректной работы аутентификации попробуем приконнектиться к «netlogon» используя аккаунт администратора, созданный во время настройки:
$ smbclient //localhost/netlogon -UAdministrator -c 'ls' Enter Administrator's password: pa$$w0rd Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.x.y] . D 0 Sat Jul 5 08:40:00 2014 .. D 0 Sat Jul 5 08:40:00 2014 49386 blocks of size 524288. 42093 blocks available
Настройка DNS сервера bind9
Используя любимый редактор (в данном случае — nano) правим файл настройки bind9 — named.conf.options:
$ sudo nano /etc/bind/named.conf.options
и приводим его к следующему виду:
options { directory "/var/cache/bind"; auth-nxdomain yes; forwarders { 192.168.1.254; }; allow-transfer { none; }; notify no; empty-zones-enable no; allow-query { 192.168.1.0/24; 127.0.0.0/8; }; allow-recursion { 192.168.1.0/24; 127.0.0.0/8; }; allow-update { 192.168.1.0/24; 127.0.0.0/8; }; };
При первоначальной установке Samba в директории /var/lib/samba/private/ был сформирован свой файл named.conf. Его необходимо подправить и привести к виду:
$ sudo nano /var/lib/samba/private/named.conf
dlz "AD DNS Zone" { database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so"; };
Для 32-х разрядных систем строчку database заменяем на:
database "dlopen /usr/lib/i386-linux-gnu/samba/bind9/dlz_bind9_9.so";
Теперь name.conf от Samba подкльчаем к основному, bind-овскому name.conf:
$ sudo nano /etc/bind9/named.conf
и в конце вставляем строчку:
include "/var/lib/samba/private/named.conf";
Если в системе apparmor еще не заглушен, то нужно в его конфиги прописать разрешения использовать файла samba:
sudo nano /etc/apparmor.d/usr.sbin.named
и в самый конец, до фигурной скобки вставляем:
# samba4 begin /usr/lib/x86_64-linux-gnu/samba/bind9/** m, /usr/lib/x86_64-linux-gnu/samba/ldb/** m, /usr/lib/x86_64-linux-gnu/ldb/modules/ldb/** m, /usr/lib/x86_64-linux-gnu/samba/gensec/krb5.so m, /var/lib/samba/private/dns.keytab rwk, /var/lib/samba/private/named.conf r, /var/lib/samba/private/dns/** rwk, /var/lib/samba/private/krb5.conf r, /var/tmp/** rwk, /dev/urandom rwk, # samba4 end
Для 32-х разрядных весий x86_64-linux-gnu заменяем на i86-linux-gnu.
В файле /etc/network/interfaces необходимо поменять адрес dns сервера на новый:
dns-nameservers 192.168.1.1
и перегрузить все сервисы:
$ sudo service apparmor restart service bind9 restart service samba-ad-dc start sudo service networking restart
А лучше перегрузить систему.
Теперь проверяем DNS:
$ host -t SRV _ldap._tcp.samdom.example.com. _ldap._tcp.samdom.example.com has SRV record 0 100 389 dc1.samdom.example.com.
$ host -t SRV _kerberos._udp.samdom.example.com. _kerberos._udp.samdom.example.com has SRV record 0 100 88 dc1.samdom.example.com.
$ host -t A dc1.samdom.example.com. dc1.samdom.example.com has address 192.168.1.1
Проверяем Kerberos:
$ # kinit administrator@SAMDOM.EXAMPLE.COM Password for administrator@SAMDOM.EXAMPLE.COM: Warning: Your password will expire in 41 days on Sat Aug 16 21:41:28 2014
Далее входим во всеми любимый Windows(xp,7,8,8+), вводим в домен, скачиваем стандартный Remote Server Administration Tools и используем для дальнейшей работы с контроллером домена стандартную оснастку по управлению пользователями в AD.