пятница, 24 апреля 2015 г.

Настройка контроллера домена Active Directory с помощью Samba 4 на Ubuntu 14.04

Идея создания контроллера домена на базе Samba, не нова. Но опять же, в предыдущих версиях Samba контроллер был неполноценный. На вендовых машинах надо было добавлять файлы в реестрах, настраивать локальные политики, и менять тип шифрования. Что же изменилось в контроллере домена на Samba 4? Все лишние телодвижения отпали сами по себе.
Для начала предположим, что у нас уже предустановлена ubuntu 14.04, и с голой сосолькой ждет, пока её потеребят. Еще надо взять на заметку, что шлюз у нас отдельно (но это несущественно). Вообще, что из себя представляет контроллер домена? Это по сути связки мощных тлуз: Kerberos+LDAP+Samba. Более детально читайте в Интернетах.
Теперь к делу.


Первоначально нужно условиться, что нам дано, и от чего отталкиваться.





Имя хоста: DC1


AD DNS Domain Name: torg.com


Kerberos Realm: torg.com


NT4 Domain Name/NetBIOS Name: torg


IP адрес: 192.168.0.20


Server Role: Domain Controller (DC)


Forwarder DNS Server: 192.168.0.1




Всегда всё лучше начинать с обновления системы


Обновляем базу данных со сведениями из репозиториев:


$ sudo apt-get update


Обновляем пакетики


$ sudo apt-get upgrade


Накатываем Kerberos


$ sudo apt-get install attr build-essential libacl1-dev libattr1-dev \


libblkid-dev libgnutls-dev libreadline-dev python-dev libpam0g-dev \


python-dnspython gdb pkg-config libpopt-dev libldap2-dev \


dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl ntp


Во время установки Kerberos, запустится скрипт с просьбой ввести данные

в первом окошке вводим


TORG.COM


DC1.TORG.COM


DC1.TORG.COM


Если во время обновлении системы было обновлено ядро, то лучше ребутнуться.

После загрузки с новым ядром, необходимо откорректировать следующие параметры в /etc/network/interfaces


#


iface eth0 inet static


address 192.168.0.20


netmask 255.255.255.0


gateway 192.168.0.1


dns-nameservers 192.168.0.20 192.168.0.1


dns-search torg.com


По сути нужно установить статику. Можно и не устанавливать, но для надежности надо.

Надо проверить hostname в файле /etc/hostname

Там должна быть единственная строчка такого содержания


dc1


Далее самое интересное, нужно монтировать файловую систему так, чтобы


## /etc/fstab






UUID=xyzxyzxy-xyzx-xyzx-xyzx-xyzxyzxyzxyzxy / ext4 user_xattr,acl,barrier=1,errors=remount-ro 0 1

В общем, надо чтобы корень монтировался с параметрами

user_xattr,acl,barrier=1,errors=remount-ro эта очень важный момент.

Теперь нужно отредактировать файл /etc/hosts



127.0.1.1 dc1.torg.com dc1




В общем, там вот такая строчка должна быть. Это необходимо, чтобы по адресу 127.0.1.1 мы сразу могли без DNS обратиться по имени к dc1.torg.com

Одним из самых важных моментов в работе подобных сетевых ресурсов - это точная временная синхронизация.






#


#stop the ntp service


$ sudo service ntp stop


#sync ntp


$ sudo ntpdate -B 0.ubuntu.pool.ntp.org



#start the ntp service


$ sudo service ntp start




Теперь надо еще раз перезагрузиться, чтобы применить изменения, и все работало как надо.

$sudo shutdown




После перезагрузки можно сразу устанавливать Samba

$ sudo apt-get install samba smbclient





нужный софт установлен, условия для работы есть. Теперь необходимо создать контроллер домена. Для начала сохраним оригинальный конфиг, а потом запустим скрипт создания контроллера домена






$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig


#Собственно создание контроллера домена


$ sudo samba-tool domain provision --use-rfc2307 --interactive


#Появятся строчки, и в квадратных скобках предлагается вариант по умолчанию. В общем, можно нажимать Enter до самого ввода пароля


Realm [TORG.COM]:
Domain [TORG]:
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) [192.168.0.1]:
Administrator password:
Retype password:


После ввода скрипт начнет создание контроллера домена.



Самое интересное то, что в Samba 4 теперь свой DNS, который довольно-таки неплохо работает. Можно сделать форвардинг на DNS который имеется в системе, а можно указать DNS-сервер провайдера.

Ранее было указано два DNS в файле /etc/network/interfaces, а теперь можно использовать локальные. В общем, надо удалить строчку 192.168.0.1 и привести к такому виду


dns-nameservers 192.168.0.20 192.168.0.
1


Опять священный ребут

$ sudo shutdown -r 0



Теперь можно протестировать работу DNS


#Тест DNS записи для ldap по протоколу TCP


$ host -t SRV _ldap._tcp.torg.com


_ldap._tcp.torg.com has SRV record 0 100 389 dc1.torg.com.


#Тест DNS-записи для kerberos по протоколу UDP


$ host -t SRV _kerberos._udp.torg.com


_kerberos._udp.torg.com has SRV record 0 100 88 dc1.torg.com


#test name resolution of our host


$ host -t A dc1.torg.com


dc1.torg.com has address 192.168.0.20




Собственно вот если все проходит в таком порядке, то DNS от Samba работает как надо. Теперь можно попробовать залогиниться.

$ kinit administrator@TORG.COM

если все ок, покажет, что пассворд действителен месяц.