Skip to content

Document Header

Samba 4 server, Radius и PPTP с использованием MS-CHAP v2 c access_attr

Samba 4 server, Radius и PPTP с использованием MS-CHAP v2 c access_attr published on 2 комментария к записи Samba 4 server, Radius и PPTP с использованием MS-CHAP v2 c access_attr

Хочу представить свою краткую версию настройки доступа к samba 4 server vpn dial in по протоколу pptp (MS-CHAP v2) через freeradius. Отличительной особенностью данной статьи является предложенный мной метод использования встроенных атрибутов ldap без использования ldap редакторов для ОС win vista/7/8/2008/2012. В этих ОС нет возможности графическими средствами установить значение allow/deny во вкладке свойств пользователя dial-in (входящий звонок).

Предполагается, что у вас установлена и настроена samba 4 желательно release 4.0.x в режиме active directory domain controller (если настройка не производилась, то здесь можно почитать как это сделать).
На том же сервере установлен и настроен pptpd, к которому уже осуществлялись успешные подключения по pptp с mschap mppe.
На том же сервере установлен freeradius server с поддержкой ldap, конфигурационные файлы которого находятся в /etc/raddb, у кого-то они могут быть в /etc/freeradius/
Конфигурационные файлы freeradius client находятся в /etc/freeradiusclient-ng/
Конфигурационные файлы не являются чистыми и имеют настройки по умолчанию. Если это не так рекомендую почитать эту статью.

Предположим, что ip нашего сервера 192.168.254.1
Domain: test.loc
В ad заведен обычный (без привелегий) пользователь ldap_user с паролем User_123

Заглянем в /etc/raddb/radiusd.conf изменим/добавим необходимые строки:

listen {
type = auth
ipaddr = 192.168.254.1
port = 0
interface = eth0
}
listen {
type = auth
ipaddr = 127.0.0.1
port = 0
interface = lo
}
listen {
type = acct
ipaddr = 192.168.254.1
port = 0
interface = eth0
}
listen {
type = acct
ipaddr = 127.0.0.1
port = 0
interface = lo

В /etc/raddb/clients.conf запоминаем, а лучше меняем на собственное:

secret = testing123

Это значение нами будет использовано позже.

В /etc/raddb/sites-enabled/ оставляем только default
Символические ссылки Inner-tunnel и control-socket я удалил.

В единственно оставшемся /etc/raddb/sites-enabled/default я раскомментировал:


auth_log (что является необязательным)

ldap

Auth-Type LDAP {
ldap
}


В /etc/raddb/modules/ldap я изменил следующее:

ldap {
server = "localhost" # имя нашего сервера
identify = "cn=ldap_user,cn=users,dc=test,dc=loc" # наш существующий пользователь при помощи которого мы будем осуществлять поиск в ldap
password = " User_123" # пароль пользователя
basedn = "dc=test,dc=loc" #наш домен
filter = "(sAMAccountName=%{%{Stripped-User-Name}:-%{User-Name}})" # фильтр для поиска

access_attr = "msNPAllowDialin" # ключевой атрибут фильтра в ldap, определяющий доступ к vpn для учетной записи (True/False). Здесь может быть указан иной атрибут по которому будет приниматься решение о предоставлении/отказе доступа. Пример смотрите в конце статьи.

chase_referrals = yes
rebind = yes

}

В /etc/raddb/modules/mschap я изменил следующее:

mschap {
use_mppe = yes
require_encryption = yes
require_strong = yes
with_ntdomain_hack = no
ntlm_auth = "/usr/local/samba/bin/ntlm_auth --request-nt-key --username=%{%{Stripped-User-Name}:-%{%{User-Name}:-None}} --challenge=%{%{mschap:Challenge}:-00} --nt-response=%{%{mschap:NT-Response}:-00}"
}

Примечание: в ранних версиях samba 4 (например Samba4 -4.0.0rc2) рекомендуется использовать ntlm_auth3 от samba3.

В наш настроенный /etc/ppp/pptpd-options добавляем:

plugin radius.so
plugin radattr.so

Теперь откроем /etc/freeradiusclient-ng/servers:

127.0.0.1    testing123 #secret, который мы задали в /etc/raddb/clients.conf

В файле /etc/radiusclient-ng/radiusclient.conf проверяем наличие пути dictionary
В моем случае:

dictionary    /usr/share/radiusclient-ng/dictionary

В файле /usr/share/radiusclient-ng/dictionary проверяем наличие строки:

$INCLUDE /usr/share/radiusclient-ng/dictionary.microsoft

Настройка закончена, после рестарта freeradius и pptpd все должно работать.

Для предоставления доступа к vpn-серверу используется вкладка dial-in (входящие звонки), которая будет корректно работать только для win xp с admin pack или win 2003.

dial-in properties

Для более свежих версий вкладка либо не будет отображаться вовсе, или выдавать ошибку. Чтобы решить данную проблему придется воспользоваться редактором ldap.

ldap editor
Одну из реализаций скачать можно здесь.
Однако есть способ при котором можно обойтись и без ldap редактора. Для этого нам нужно будет переопределить значение access_attr.

Покопавшись в атрибутах пользователя я нашел следующие неиспользуемые мной атрибуты во вкладке адрес. Если данные атрибуты вы аккуратно заполняете, то для своих целей можете использовать любые иные. Описание атрибутов вкладки «адрес» (привожу русские значения):

streetAddress = Улица
postOfficeBox = Почтовый ящик
l = город
ct = край, регион
postalCode = почтовый индекс

Итак, изменим значение атрибута access_attr. Для этого вернемся в /etc/raddb/modules/ldap и изменим строку:

access_attr = "msNPAllowDialin"
на, например, postOfficeBox
access_attr = "postOfficeBox"
добавим еще пару строк
access_attr_deny_value = ""
access_attr_used_for_allow = yes

Таким образом мы получим, что все пользователи по умолчанию (с чистой строкой) не будут иметь доступа к vpn. Однако, как только в этой строке (в свойствах пользователя во вкладке адрес) появится хоть какая-то запись, пользователь сможет подключаться к vpn.

Squid и LDAP-аутентификация из Active Directory Samba 4 server (squid ldap auth proxy)

Squid и LDAP-аутентификация из Active Directory Samba 4 server (squid ldap auth proxy) published on 7 комментариев к записи Squid и LDAP-аутентификация из Active Directory Samba 4 server (squid ldap auth proxy)

Данная статья повествует как подружить squid через единственный ldap_auth helper (fix me если знаете другой способ), который работает с группами AD. Причем в свежих версиях squid, установленных из пакетов для моего дистрибутива я уже этого хелпера не нашел. Так же я описал еще один способ авторизации squid пользователей, через radius.

В samba 3 я использовал ntlm_auth helper, который позволял прозрачно авторизоваться в домене для линейки браузеров IE, но ничего не знал про доменные группы. Был проект sams, который частично решал проблемы с группами, создавая собственные.

Для samba 4 интересно было бы использовать ldap_auth helper, и настраивать разграничение прав доступа для доменных групп, однако ни один браузер не умеет авторизовываться прозрачно. Требуется пароль на каждое открытие браузера. Сохранение паролей, если и возможно, то через костыли. Что на мой взгляд теряет всякий смысл. Поэтому не знаю насколько имеет смысл рекомендовать данное решение для промышленного применения. Тем не менее, если для кого-то ввод пароля не является проблемой, то с проверенной статьей можно познакомиться здесь.

Примеры политик для Samba 4 server Domain Controller

Примеры политик для Samba 4 server Domain Controller published on Комментариев к записи Примеры политик для Samba 4 server Domain Controller нет

Данную статью пишу исключительно для сохранения полноты последовательности действий. Это уже миллион раз описано различными источниками с разными акцентами и глубиной детализации, в том числе и на сайте microsoft. Все перечисленные политики успешно протестированы на samba 4.

На тестовом стенде я пробовал вводить в домен все сколько-нибудь современные ОС. Win xp/7/8, win2003/2008/2012 и все они успешно вошли в домен. Для серверных ОС я пользовался встроенным инструментарием (лишь win2003 x32 «тюнинговал» консолью gpmc). Для рабочих станций был использован admin pack + gpmc. При этом не важно когда был установлен инструментарий до или после введения компьютера в домен.

В примерах использую русскую ОС.

Для ввода в домен у клиентского компьютера должен быть прописан (присвоен) правильный dns.

add to domain
Ввод клиентского компьютера в домен

Ввод в домен Samba 4:

Вводим имя и пароль доменного администратора, и после перезагрузки мы в домене. Если ввод в домен закончился ошибкой, то еще раз посмотрите, правильно ли выполнили предварительные условия.
Так же со стороны рабочей станции могут быть отключены какие-то жизненно важные сервисы (об этом дальше) ;=)

Если вы настроили ntpd и используете samba 4 dns internal, то при 1-ом же входе в домен у вас автоматически должно синхронизироваться время и появится запись A в прямой зоне DNS.

Теперь переходим к настройке групповых политик.

Политики по своему назначению могут быть для пользователей и для компьютеров. Область применения следует из названия. Для компьютеров политики выполняются непосредственно при загрузке компьютера. Для пользователей — после ввода имени и пароля.

Настройка сервисов на рабочих станциях.

Мне нравится, когда на рабочих не запущено лишних сервисов, но включены все необходимые. Именно необходимые постараюсь перечислить. Реальный набор на ваш вкус и цвет. Для создания нашей 1-ой политики зайдем в консоль gpmc (вызвать ее можно например пуск->выполнить->gpmc.msc) в дереве выделим наш домен, правая кнопка мыши и create and link a GPO here

create and link a GPO Here
Создание политики

 

Назовем нашу политику services.
Выделяем политику, правая кнопка мыши, edit. Кликаем по дереву как показано на рисунке.

Services GPO edit

В правой части окна перечислены сервисы, которые мы будем настраивать. Их названия берутся с рабочей станции, поэтому некоторых из них может не быть на остальных клиентах. Следовательно, трогаем только системные. Те, что имеют статус «не определены» будут игнорироваться, т.е. сохранят статус, установленный на клиенте. Остальные принудительно примут значение «автоматически/вручную/запрещен(отключена)». Пользователь с административными правами на клиенте может менять этот статус, однако изменение это будет действовать либо до 1-ой перезагрузки, либо до применения политики по расписанию.

Мой список со статусом авто:

Dhcp клиент
Dns клиент
Plug & play
Диспетчер логических дисков
Диспетчер очереди печати
Диспетчер удаленного доступа
Диспетчер учетных записей безопасности
Журнал событий
Запуск серверных процессов DCOM
Защищенное хранилище
Инструментарий управления windows
Модуль поддержки NetBIOS через TCP/IP
Оборзеватель компьютеров
Рабочая станция
Сервер
Служба времени windows
Удаленный вызов процедур (RPC)
Удаленный реестр

Мой список со статусом вручную (некоторые являются зависимостями, без которых не будет работать список авто):

Windows installer
Диспетчер авто-подключений удаленного доступа
Локатор удаленного вызова процедур (RPC)
Поставщик поддержки безопасности NT LM
Протокол HTTP SSL
Сетевой вход в систему (при входе в домен автоматически переключается на авто)
Сетевые подключения
Служба администрирования диспетчера логических дисков
Служба обеспечения сети
Служба обнаружения SSDP
Служба протокола EAP
Служба сетевого расположения NLA
Служба управления сертификатами и ключами…
Служба шлюза уровня приложений
Службы терминалов
Смарт-карты
Телефония

После того, как мы выбрали статусы для наших служб, установили для них права, переходим обратно в окно gpmc, чтобы выбрать кому будет применяться политика. В правом окне выбираем закладку delegation, в нижнем углу нажимаем кнопку advanced. По умолчанию политика применяется к authenticated users (прошедшие проверку). Снимаю галку с «применение групповой политики» и добавляю группу domain computers и устанавливаю галку на «применение групповой политики». Теперь политика будет применяться не для authenticated users, а для domain computers.

Примечание:  в свое время столкнулся с рекомендацией от Microsoft не отключать право чтения любой политики для authenticated users. Это право позволяет уменьшить задержки при обработке политик на клиентах.

GPO permission

Политика применяется к тому объекту, который имеет статус read (from Security Filtering). В нашем случае это группа domain computers.

change GPO permissions
Область применения политики

 

 

Политика по подключению общей папки в виде сетевого диска.

Для хранения скриптов мы будем использовать папку /scripts на нашем samba 4 dc server, папка /share будет монтироваться в виде диска на клиентах.

# mkdir /scripts /share

Чтобы открыть общий доступ к папкам добавим в /usr/local/samba/etc/smb.conf (ваш путь может отличаться) следующие строки:


[scripts]
path = /scripts
comment = scripts
read only = No
[share]
path = /share
comment = share
read only = No


Создадим скрипт /script/map_drive.cmd следующего содержания:

NET USE L: /DELETE
NET USE L: pdcshare

Где pdc – это наш samba 4 dc server.

Создаем политику «map drive» аналогично предыдущему примеру.
Добавляем путь к скрипту, как показано на рисунке.

map drive
Добавление сценария

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

Перенаправление папок пользователей «мои документы» и «рабочий стол».

Для централизованного хранения на сервере «моих документов» и «рабочих столов» пользователей создадим на сервере samba 4 папку users в папке share.

#mkdir /share/user

При создании пользователей будем использовать домашнюю папку в виде диска z:

map drive
Создание домашней папки пользователя

 

Создадим новую политику или добавим в уже существующую, распространяющуюся на пользователей правило для «моих документов». Здесь есть несколько вариантов. Сделаем, например, так:

forward "my documents"
Политика перенаправления «мои документы»

 

Аналогично для «рабочих столов».

Автоустановка/автообновление программ через скрипт.

В этом примере мы автоматически установим/обновим acroread 11.x на все windows xp sp3 x32. На другие ОС и windows xp с более ранним sp acroread устанавливаться не будет.

Создадим папку /scripts/acroread

#mkdir /scripts/acroread

Скачаем в нее acroread 11.x

Распакуем архив:

#7z x AdbeRdr11000_ru_RU.exe

Создадим скрипт acroread.cmd

Reg query "HKLMSOFTWAREMicrosoftWindows NTCurrentVersion" /v ProductName|Find "Microsoft Windows XP"
if %ERRORLEVEL% == 0 (
ECHO This is Windows XP
goto XP
)
ECHO This is not Windows XP
goto end

:XP
Reg query «HKLMSOFTWAREMicrosoftWindows NTCurrentVersion» /v CSDversion|Find «Service Pack 3»
if %ERRORLEVEL% == 0 (
ECHO Service Pack 3 Already Installed
goto Acroread_11
)
ECHO This OS is not have SP3
goto end
:Acroread_11
Reg query «HKEY_LOCAL_MACHINESOFTWAREAdobeAcrobat Reader» /s | Find «11.0»
if %ERRORLEVEL% == 0 (
ECHO Acrobat Reader 11 Already Installed
goto end
)
ECHO Installing Acrobat Reader 11
«pdcscriptsacroreadsetup.exe» /sAll

:end

Традиционным образом добавим его в сценарий запуска для компьютеров

auto install/update acrobat reader
Сценарий автоустановки программ

 

acroread 11.x

А это скрипт центр от Microsoft

Установка и настройка samba 4 server в режиме Domain Controller

Установка и настройка samba 4 server в режиме Domain Controller published on 33 комментария к записи Установка и настройка samba 4 server в режиме Domain Controller

Этот текст основан на Samba 4 AD DC HOWTO, но имеет некоторые существенные дополнения.

Если вы собираете samba 4 из исходников и у вас нет 100% уверенности в успехе, то настоятельно рекомендую 1-ую установку проводить на тестовом стенде. Samba 4 критична к зависимостям, установка пройдет без ошибок, а проблемы могут возникнуть на стадии поднятия AD или при работе с ним.

При установке будем использовать:
Installation Directory: /usr/local/samba
Server Hostname: pdc
DNS Domain Name: test.loc
NT4 Domain Name: test
IP Address: 192.168.1.2
Server Role: DC

Скачиваем последний релиз samba 4 с официального сайта. В моем случае это 4.0.3

Распаковываем:

# tar –zxf samba-4.0.3.tar.gz

Установка/обновление

Если хотите «отловить» не установленные зависимости или дополнительные компоненты можно, например, так:

# ./configure --enable-debug --enable-selftest > /root/samba4.log 2>&1
# cat /root/samba4.log | grep "not found" > /root/samba4_not_found.log

Стандартная установка, рекомендованная разработчиками такая:

# ./configure --enable-debug --enable-selftest
# make
# make install

Добавляем запись в /etc/resolv.conf:

domain test.loc
nameserver 192.168.1.2

C wikipedia: «Так как Avahi использует зону .local для своих целей, эту зону нельзя использовать в локальной сети. Однако .local может уже использоваться в локальной сети, и перестраивать сетевую адресацию будет накладно»

avahi пока пользоваться не доводилось, поэтому выкладываю как есть.

Запуск скрипта установки:

# /usr/local/samba/bin/samba-tool domain provision

Если название сервера было предварительно сконфигурировано, можно соглашаться, нажимая enter

Realm [TEST.LOC]: TEST.LOC
Domain [TEST]: TEST
Server Role [dc]: dc
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_INTERNAL
DNS forwarder IP address (write 'none' to disable forwarding) [8.8.8.8]: 8.8.8.8
При начальной установке SAMBA_INTERNAL не умеет обрабатывать (resolve) внешние адреса (например, адреса интернет). Для этого стоит использовать внешний DNS forwarder IP address.
Administrator Password:

Требуется использовать стойкий пароль, включающий минимальную длину и «сложность».

После этого создается AD и устанавливается схема по умолчанию windows 2003R2.

До запуска samba я бы рекомендовал добавить следующую строку в /usr/local/samba/etc/smb.conf:

Allow dns updates = True | signed

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

true – неподписанное обновление
signed – только подписанное обновление
false – без обновления

Можно так же создать тестовую общую папку share и прописать ее в конфигурационный файл /usr/local/samba/etc/smb.conf.
В моем случае это выглядит так:

# Global parameters
[global]
workgroup = TEST
realm = TEST.LOC
netbios name = PDC
server role = active directory domain controller
allow dns updates = True
dns forwarder = 8.8.8.8

[netlogon]
path = /usr/local/samba/var/locks/sysvol/test.loc/scripts
read only = No

[sysvol]
path = /usr/local/samba/var/locks/sysvol
read only = No

[share]
path = /share
comment = Share
read only = No

Если samba4 собрала свой Kerberos, а проверить это можно наличием файла /usr/local/samba/private/krb5.conf, то стандартный файл Kerberos, который обычно лежит в /etc лучше куда-нибудь переместить. А на его месте лучше создать ссылку:

# ln -s /usr/local/samba/private/krb5.conf /etc/

Примечание: Я сначала удалил стандартный /etc/krb5.conf как и предлагалось на официальном сайте, но при автообновлении пакетов моего дистрибутива стандартный файл был автоматически создан заново. Что привело к проблемам kinit/klist.

Сам же /usr/local/samba/private/krb5.conf должен выглядеть примерно так:

[libdefaults]
default_realm = TEST.LOC
dns_lookup_realm = false
dns_lookup_kdc = true

Перед запуском samba 4 не забудьте остановить другую версию samba (если имеется и запущена), а так же named, если будете использовать samba 4 DNS.

Запускаем samba:

# /usr/local/samba/sbin/samba

для отладки я пользовался

# /usr/local/samba/sbin/samba -i --debuglevel=9

На сайте производителя так же рекомендовано использовать:
Для разработчиков

# /usr/local/samba/sbin/samba -i -M single

Для отладки (samba запускается, ограничиваясь единым процессом, все сообщения журнала печатаются в стандартный вывод)

# gdb --args /usr/local/samba/sbin/samba -i -M single

Здесь можно взять загрузочные скрипты (initscripts) для различных ситем

При старте samba у меня открываются следующие порты tcp:

# nmap -sS 127.0.0.1

PORT     STATE SERVICE
53/tcp   open  domain
88/tcp   open  kerberos-sec
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
389/tcp  open  ldap
445/tcp  open  microsoft-ds
464/tcp  open  kpasswd5
636/tcp  open  ldapssl
1024/tcp open  kdm
3268/tcp open  globalcatLDAP
3269/tcp open  globalcatLDAPssl

При старте samba у меня открываются следующие порты udp:

# nmap -sU 127.0.0.1

PORT     STATE         SERVICE
53/udp   open          domain
88/udp   open|filtered kerberos-sec
137/udp  open          netbios-ns
138/udp  open|filtered netbios-dgm
389/udp  open|filtered ldap
464/udp  open|filtered kpasswd5
631/udp  open|filtered ipp (cups)

Если все нормально, то стоит пройти ряд тестов, что убедиться, что все у нас в порядке с sambaclient, dns, Kerberos.

sambaclient

Запускаем:

$ /usr/local/samba/bin/smbclient -L localhost -U%

Получаем:

Sharename       Type      Comment
---------       ----      -------
IPC$            IPC       IPC Service (Samba 4.0.3)
share           Disk      Share
sysvol          Disk
netlogon        Disk

Если проблемы, делаем следующее:

# killall samba
# rm -v -- /usr/local/samba/var/run/smbd-fileserver.conf.pid
# /usr/local/samba/sbin/samba

Проверяем аутентификацию в домене. Запускаем:

$ smbclient //localhost/netlogon -UAdministrator%'p4$$word' -c 'ls'

Получаем:

Domain=[TEST] OS=[Unix] Server=[Samba 4.0.3]
.                                   D        0  Wed Sep 12 21:00:36 2012
..                                  D        0  Wed Sep 12 21:02:28 2012

dns

$ host -t SRV _ldap._tcp.test.loc.
_ldap._tcp.test.loc has SRV record 0 100 389 dc.test.loc.
$ host -t SRV _kerberos._udp.test.loc.
_kerberos._udp.test.loc has SRV record 0 100 88 pdc.test.loc.
$ host -t A pdc.test.loc.
pdc.test.loc has address 192.168.1.2

Примечание: Если вы выбрали DNS SAMBA_INTERNAL, то какая-либо дополнительная настройка, включая динамическое обновление не требуется. Настройку Bind описывать не буду, так как сам не пробовал. Почитать об этом можно в оригинальной статье.
Динамическое обновление DNS стартует каждые 10 минут и использует утилиту samba_dnsupdate. Чтобы динамическое обновление в принципе было возможным нужна утилита  nsupdate из комплекта Bind. Для проверки можно использовать:

# /usr/local/samba/sbin/samba_dnsupdate --verbose --all-names

Kerberos

В следующей команде название домена ОБЯЗАТЕЛЬНО В ВЕРХНЕМ РЕГИСТРЕ.

$ kinit administrator@TEST.LOC
Password:

$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: administrator@TEST.LOC

Valid starting     Expires            Service principal
02/10/10 19:39:48  02/11/10 19:39:46  krbtgt/TEST.LOC@TEST.LOC

В случае проблем проверяйте /etc/resolve.conf и /usr/local/samba/share/setup/krb5.conf с настройками, описанными выше.

Настройка NTP

dhcp-server сообщает компьютерам с динамическими адресами ip адрес локального сервера NTP. Если вы используете dhcpd, то нужно добавить следующую строку в dhcpd.conf


option    ntp-servers 192.168.1.2;


Примечание: Вообще расхождение времени более чем на 5 минут между клиентом и сервером было серьезной проблемой при авторизации samba 3.x в домене. Клиенты Kerberos не могли пройти проверку подлинности на сервере.
Эта синхронизация требовалась для предотвращения возможности использования атакующим старого аутентификатора, чтобы замаскироваться под легального пользователя.
На клиентах в домене samba 4 для теста я сбил время и дату на несколько суток, часов, минут назад. При этом мне удавалось не только авторизовываться, но и добавлять компьютеры в домен. А при 1-ом входе компьютера в домен часы синхронизировались.
Однако, расхождение во времени стало проблемой при добавлении windows контроллеров домена и репликацией между windows домен контроллерами и samba 4 dc.

Для корректной работы ntpd вам потребуется версия ntpd (=>4.2.6) поддерживающая signed ntp. Т.е. версия поставляемая с  RHEL6 и Ubuntu < 11.04 старая. Ntpd в Debian Squeeze поддерживает signed ntp.

Если у вас старая версия, то сервис ntpd будет запускаться корректно, при этом в логах (в моем случае в /var/log/messages) будет писать что-то вроде:

configure: keyword "mssntp" unknown, line ignored
configure: keyword "ntpsigndsocket" unknown, line ignored
configure: keyword "mssntp" unknown, line ignored

Синхронизация при этом происходить не будет.

Для того, чтобы заработала синхронизация времени добавляем в ntp.conf минимальный набор строк:

ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/
restrict default mssntp

Можно добавить такой набор строк в ntp.conf:

server 127.127.1.0
fudge 127.127.1.0  stratum 12
ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/
restrict default mssntp

Ну, а это расширенный набор ntp.conf:

server 127.127.1.0
fudge  127.127.1.0 stratum 10
server 0.pool.ntp.org  iburst prefer
server 1.pool.ntp.org  iburst prefer
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp
ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/
restrict default kod nomodify notrap nopeer mssntp
restrict 127.0.0.1
restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery

Дальше можно приступить к администрированию AD либо средствами samba, либо средствами windows. Об этом в следующей статье.

Ссылки на пакеты администрирования для windows:
adminpack sp2 xp/2003 x32 rus
adminpack sp2 xp/2003 x64 rus
rsat for win 7 sp1 x32/x64 rus
rsat for win 8 x32/x64 rus
rsat for win 8.1 x32/x64 rus
gpmc sp1 xp/2003 x32 eng (для xp/2003 x64 gpmc нет)

Требования к ОС Samba 4 server в режиме Domain Controller

Требования к ОС Samba 4 server в режиме Domain Controller published on Комментариев к записи Требования к ОС Samba 4 server в режиме Domain Controller нет

Данный текст является переводом Samba 4 AD DC HOWTO Samba_OS_Requirements, с некоторыми дополнениями из практики. Установка проводилась на тестовом стенде на Linux RHEL Scientific 6.3/RHEL 6.4
Если вы собираете samba 4 из исходников, то настоятельно рекомендую 1-ую установку проводить на тестовом стенде. Samba 4 критична к зависимостям. Некоторые не обнаруженные компоненты, требуемых версий samba 4 установит сама и будет корректно работать. Например:
tdb
pylloc-util
popt
ldb
pyldb-util
Однако, без некоторых зависимостей samba 4 нормально соберется и установится, но проблемы начнутся на стадии создания AD или последующей работе в домене.
Для отслеживания зависимостей я использовал:

./configure --enable-debug --enable-selftest > /root/samba4.log 2>&1
cat /root/samba4.log | grep "not found" > /root/samba4_not_found.log

Требования:

Необходимо:

Python большая часть samba 4 написана на питоне, включая сборку системы на waf.

Желательно:

acl – требуется для успешного создания в режиме AD DC. При отсутствии этой библиотеки, самба нормально соберется, но не будет доступна возможность изменения ACL под управлением windows. Будут возникать ошибки при создании AD при помощи установочного скрипта (provision) или при создании smb.conf вручную с +s3fs.
Xattr
Blkid
Gnutls
Readline
Openldap – В официальном HOWTO сказано: «требуется для сборки samba 3 с поддержкой LDAP. Если этого компонента не будет, самба соберется, но не удастся обновить AD существующего домена samba 3, через установочный скрипт (provision).» Однако, практика показала, что без наличия установленного openldap скрипт provision отказывается не только обновить существующий AD, но и создать новый.
С другой стороны (для RHEL) наличие в системе предустановленного пакета openldap-servers мешало корректному запуску samba 4 и открытию tcp портов:
636/tcp ldapssl
3268/tcp globalcatLDAP
3269/tcp globalcatLDAPssl
Следовательно, не удавалось получить доступ к глобальному каталогу со всеми вытекающими последствиями.
cups – общий доступ для принтеров
bsd или setproctitle — for process title updating support
xsltproc and docbook XSL stylesheets – для руководств (man) и документации

Для различных ОС стоит учитывать особенности версий python, kerberos и bind (если решите его использовать)
Для корректной работы с acl требуется поддержка расширенных атрибутов файлов (xattr) файловой системой.
Если ваша файловая система не поддерживает расширенных атрибутов xattr, то вы можете имитировать его, добавив следующую строку в файл smb.conf:

posix:eadb = /usr/local/samba/eadb.tdb

Это поместит все дополнительные атрибуты (NT ACLs, DOS EAs, streams etc), в tdb. По мнению разработчиков это не эффективно, и не очень хорошо масштабируется.

Debian или Ubuntu

Fedora

Red Hat Enterprise Linux или CentOS

openSUSE

Gentoo

Поддержка файловых систем