Предлагаю свое решение настройки samba4 стабильной версии на Ubuntu 12.04 server в качестве контроллера домена Active Derictory.
Несмотря на то, что представленные доки по sambe 4 уже имеются на сайте:
Установка Samba4 на Ubuntu Server и
Установка Samba4 в качестве контроллера домена на Ubuntu Server 12.04 -
обе статьи опираются на пакеты samba 4 из дистрибутива ubuntu, где она до сих пор представлена в alpha версии, плюс при настройке есть несколько нюансов, которые в статьях еще не рассматривались.
Исходные данные:Сетевой интерфейс eth0: 192.168.1.1
Сеть: 192.168.1.0/24 маска: 255.255.255.0
Имя сервера: server
Область домена (realm): EXAMPLE.ORG
Домен: example
DNS: example.org
Как обычно прежде всего проведем обновление системы.
sudo apt-get update
sudo apt-get -u dist-upgrade -y
Установка и настройка bind.Ссылаясь на
документацию разработчиков samba, будем проводить настройку с использованием bind в качестве dns-сервера для домена как более гибкий и предпочтителный вариант. Необходимо сказать, что в случае с bind настройку зон можно осуществлять как вручную, так и автоматически. В нашей статье мы рассмотрим автоматическую настройку.
Установим пакет bind (нужно для создания исходных файлов конфигурации) и необходимые пакеты для компиляции.
sudo apt-get install -y bind9 dpkg-dev libgeoip-dev libssl-dev libkrb5-dev libxml2-dev
Затем скачаем исходники bind (тех, что в репозитории Ubuntu 12.04.2 server, вполне достаточно).
sudo apt-get source bind9
Исходники скачиваются в каталог пользователя, поэтому переходим в него и компилируем bind с параметрами, идентичными пакету в ubuntu и добавляем поддержку модуля dlz для автоматического обновления зон.
./bind9*
sudo ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc/bind --localstatedir=/var --enable-threads --enable-largefile -with-libtool --enable-shared --enable-static --with-openssl=/usr --with-gssapi=/usr --with-gnu-ld --with-geoip=/usr --with-libxml2 --with-dlopen=yes --enable-ipv6
sudo make
sudo make install
После установки bind необходимо внести ряд изменений в исходные конфигурационные файлы.
Примерное содержание файла /etc/bind/named.conf.options должно выглядить так:
options {
version "";
directory "/var/cache/bind";
forwarders { 8.8.8.8; 8.8.4.4; };
allow-transfer { none; };
notify no;
empty-zones-enable no;
allow-query { 192.168.1.0/24; };
allow-recursion { 192.168.1.0/24 };
tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab"; // добавляем ключ, который будет сгенерирован kerberos при настройке samba4 для автоматического обновления зон
max-cache-size 32768;
dnssec-validation auto;
auth-nxdomain yes;
listen-on-v6 { none; }; // при необходимости можно настроить
listen-on { 192.168.1.1; 127.0.0.1; };
};
В файл /etc/bind/named.conf.local достаточно включить настроки файла конфигурации, который будет сгенерированн samba4:
sudo sh -c 'echo "include \"/var/lib/samba/private/named.conf\";" >> /etc/bind/named.conf.local'
Наконец, необходимо внести дополнения в механизм защиты apparmor для bind - добавить в конце файла /etc/apparmor.d/usr.sbin.named перед закрывающей фигурной скобкой следующие строки:
/var/lib/samba/private/* rwlmk,
/var/lib/samba/private/dns/** rwlmk,
/var/tmp/** rw,
/usr/lib/samba/bind9/** rwlm,
/usr/lib/samba/ldb/** rwlm,
/usr/lib/samba/** rwlm,
После внесения изменений bind лучше временно остановить.
sudo service bind9 stop
Незабыть внести изменения в настройки интерфейса eth0 в файле /etc/network/interfaces:
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
dns-nameservers 127.0.0.1
dns-domain example.org
Установка и настройка samba4.Как обычно начинаем с установки необходимых пакетов для компиляции и работы samba4.
sudo apt-get install -y acl build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev libbsd-dev attr krb5-user docbook-xsl libcups2-dev
При установке пакета krb5-user вам будет предложена первоначальная настройка клиента kerberos. Для области домена нужно ввести EXAMPLE.ORG, а для серверов название вашего сервера - server.
Затем скачиваем последнюю стабильную версию samba4 и компилируем ее.
wget http://www.samba.org/samba/ftp/samba-latest.tar.gz
tar xf samba-latest.tar.gz
cd ./samba*
sudo ./configure --enable-selftest --enable-gnutls --with-winbind --with-swat --with-ads --with-ldap --enable-cups --with-pam --with-pam_smbpass --with-quotas --with-acl-support --with-dnsupdate --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-fhs
sudo make
sudo make install
Чтобы сконфигурировать samba4 достаточно воспользоваться командой sudo samba-tool domain provision, которая в интеррактивном режиме сросит вас необходимые настройки домена. В статье приводится "ручное" использование данной команды.
sudo samba-tool domain provision --realm=EXAMPLE.ORG --domain=example --adminpass=password --server-role=dc --host-name=SERVER --host-ip=192.168.1.1 --dns-backend=BIND9_DLZ
Используйте сложные пароли, иначе настройка домена закончится с ошибкой, и придется ее делать заново, удалив перед этим файл /etc/samba/smb.conf
После успешной конфигурации домена необходимо заменить сгенерированный файл настройки клиента kerberos.
sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
Затем создать файлы запуска службы samba4. Для этого необходимо создать файл /etc/init/samba4.conf следующего содержания (позаимствовал из пакета samba4 Ubuntu 13.04):
description "SMB/CIFS File and Active Directory Server"
author "Jelmer Vernooij <jelmer@ubuntu.com>"
start on (local-filesystems and net-device-up)
stop on runlevel [!2345]
expect fork
normal exit 0
pre-start script
[ -r /etc/default/samba4 ] && . /etc/default/samba4
install -o root -g root -m 755 -d /var/run/samba
install -o root -g root -m 755 -d /var/log/samba
end script
exec samba -D
И файл /etc/init.d/samba4 с коротким содержанием:
/lib/init/upstart-job
После настройки samba4 можно провести запуск и переконфигурирование нескольких служб.
sudo service apparmor reload
sudo service bind9 start
sudo /etc/init.d/networking restart
sudo resolvconf -u
sudo service samba4 start
Проверка.Работоспособность домена можно проверить через клиент samba.
smbclient -UAdministrator -Llocalhost
В ответ мы должны получить список доступных системных ресурсов:
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service
Чтобы проверить авторизацию можно попытаться получить доступ к системому ресурсу netlogon (вместо 'password' используйте пароль, заданный при конфигурации домена):
smbclient //localhost/netlogon -UAdministrator%'password' -c 'ls'
Если все успешно, то появится содержимое ресурса netlogon:
Domain=[SAMDOM] OS=[Unix] Server=[Samba 4.0.6]
. D 0 Wed Jan 16 21:00:36 2013
.. D 0 Wed Jan 16 21:02:28 2013
Для проверки работы dns для нашего домена можно использовать несколько команд:
host -t SRV _ldap._tcp.example.org.
результат должен быть такой:
_ldap._tcp.example.org has SRV record 0 100 389 server.example.org.
host -t SRV _kerberos._udp.example.org.
результат должен быть такой:
_kerberos._udp.example.org has SRV record 0 100 88 server.example.org.
host -t A server.example.org.
результат должен быть такой:
server.example.org has address 192.168.1.1
Для проверки работы kerberos используются следующие команды:
kinit administrator@EXAMPLE.ORG
В ответ сервер должен вернуть строку "Warning: Your password will expire in 41 days on Thu Mar 28 04:38:35 2013"
Если мы действительно получили билет kerberos, то его можно просмотреть, введя команду klist. В ответ будет примерно следующее:
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@EXAMPLE.ORG
Valid starting Expires Service principal
02/10/13 19:39:48 02/11/13 19:39:46 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG
Управление доменом.Для подлкючения клиентов windows ничего не изменилось, все как и прежде.
Т.к. samba4 полностью поддерживает Active Derictory, то возможно использовать специальные инструменты, разработанные microsoft. Необходимые ссылки на данные инструменты для разных версий клиентов Windows указаны в
wiki к samba4. Там же можно найти инструкции по администрированию Active Derictory и настройке групповых политик.
Надеюсь статья поможет тем, кто хочет опробовать стабильную версию samba4 на своей ubuntu 12.04 server.