Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Samba 4 - контроллер домена Active Derictory (Ubuntu 12.04 server)  (Прочитано 13765 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gizomo

  • Автор темы
  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Предлагаю свое решение настройки 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.
« Последнее редактирование: 10 Апреля 2014, 16:36:54 от gizomo »

Оффлайн satch

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1561
  • Kubuntu 15.10 amd64
    • Просмотр профиля
и чем эта инструкция лучше той что есть на оф вики самбы?
Наше желание помочь прямопропорционально вашему желанию решить проблему

Оффлайн gizomo

  • Автор темы
  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Ничем не лучше. Просто заточена под ubuntu server 12.04 с учетом FHS и использованием bind9 (с модом dlz) в качестве dns-сервера для домена.

Оффлайн skyd3x

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Ошибка в /etc/bind/named.conf.options
исправте на  allow-recursion { 192.168.1.0/24 };

Оффлайн valtor

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
У меня samba с ключем --with-swat  не компилиться
Я так понял этот ключ отвечает за веб интерфейс, который убрали из 4.1
собрал без него, надеюсь это ни на что не повлияет?

bind не стартовал из за вот этого
sudo sh -c 'echo "include \"/var/lib/samba/private/named.conf\";" >> /etc/bind/named.conf.local'
файла /var/lib/samba/private/named.conf не существует, создал пустой, bind запустился, но я так понял это файл должена генерировать самба

нужна помощь, не соображу что делать дальше?
« Последнее редактирование: 30 Января 2014, 11:19:12 от valtor »

Оффлайн sergie_sad

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Используется bind9, его надо указать в опциях samba-tool domain provision:
--dns-backend=BIND9_DLZ

 

Страница сгенерирована за 0.038 секунд. Запросов: 25.