воскресенье, 17 ноября 2013 г.

Samba4 AD DC на Ubuntu 12.04

Не спрашивайте, почему не ubuntu, а не gentoo. Это попытка сделать как все =). Я не уверен, что за раз допишу, но как минимум начну. Сразу говорю, сделать как все не получилось =), а выяснилось, что моя задача не имеет решения "для всех". Samba4 находящаяся в репозиториях ubuntu на мой взгляд не работоспособна. Все попытки ее поставить и запустить торжественно провалились, по этому пришлось ставить из исходников (даже не gentoo way).

Т.к. я решил ставить Samba4 с использование bind, то именно с него и начнем:
apt-get install bind9

Не знаю как себя поведет samba4, если ставить на компьютере с динамическим ip адресом, по этому
#/etc/network/interfaces
iface eth0 inet static
 address 192.168.0.1
 netmask 255.255.255.0
 gateway 192.168.0.2
 dns-nameservers 192.168.0.1
 dns-search test.local # имя домена, оно же будет использоваться в samba4


Надрод рекомендует поставить ntp, как я понимаю, чтобы потом избежать проблем между несколькими DC и Kerberos.
apt-get install ntp

По документации Samba4 (https://wiki.samba.org/index.php/Samba_4/OS_Requirements) для Ubuntu необходимо поставить пачку пакетов.

Ставим git:
apt-get install git


Дальше надо получить исходные коды Samba4 (тут был сюрприз, я получил последнюю версию 4.2 вместо ожидаемой 4.1)
git clone git://git.samba.org/samba.git /usr/src/samba4/

Преходим в каталог с исходными кодами, конфигурируем и устанавливаем, то что получилось:
cd /usr/src/samba4
./configure --enable-debug
make
make install

Для удобства, можно добавить пути в ~/.bashrc
export PATH="/usr/local/samba/sbin:/usr/local/samba/bin:$PATH"

Для поддержки дополнительных атрибутов и acl дополнительно настраиваем монитрование файловой системы с параметрами:
/dev/hda3  /home  ext4  user_xattr,acl,barrier=1     1 1

Перезагружаем сервер и запускаем мастер настройки Samba4
samba-tool domain provision

Я подключал bind, по этому при работе мастера я указал BIND9_DLZ. Это влечет за собой дополнительную настройку bind, надо добавить в файл /etc/bind/named.conf строку подключающую наш домен
include "/usr/local/samba/private/named.conf";

После этого перегружаем bind и выясняем, что bind больше не загружается =). Это работа apparmor. Надо править его конфигурацию для bind. В файле /etc/apparmor.d/usr.sbin.named надо добавить новые строки.

/usr/local/samba/private/** rw,
/usr/local/samba/private/dns/* rwkix,
/usr/local/samba/etc/** r,
/usr/local/samba/lib/bind9/** rwkix,
/var/run/bind/run/named/** rwkix,
/usr/local/samba/lib/private/** rwkix,
/usr/local/samba/lib/** rwkix,
/usr/local/samba/private/dns/sam.ldb.d/** rwkix,


На самом деле, возможно, это излишние настройки, но выяснять точные настройки для каждого каталога и файла я не стал, слишком трудоемко и возможно где то, что либо пропустить, а потом мучаться с samba не понимая от куда растут ноги.

Осталось создать скрипт запуска и в общем то все.

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

Если не спешить и устанавливать спокойно, то все заводится с первого раза. Наибольшее внимание требуется при проверке работоспособности репликации и разрешения имен через bind.

Так же надо обратить внимание на настройку kerberos. Где то при начальной настройке я указал зглавными буквами домен и потом пришлось везде использовать заглавные буквы. Не думаю, что это плохо, но надо помнить, чтобы не получить проблем.

Если нарушается связь между DC, например когда один из них выключен, могут рассинхронизоваться данные между серверами. По какой то причине, без ручной синхронизации проблема не решается, но если руками провести синхронизацию, то все работает коректно.
samba-tool drs replicate ad1u.ub.local ad2u.ub.local dc=ub,dc=local

Ключевые ссылки для работы
https://wiki.samba.org/index.php/Samba4/HOWTO/Join_a_domain_as_a_DC
https://wiki.samba.org/index.php/Samba_4/OS_Requirements
http://www.jadota.com/2013/01/installing-samba4-on-ubuntu-12-04/