Контроллер домена на Samba4

Тут описывается нелёгкий путь настройки ОС FreeBSD, начиная с установки дистрибутива и заканчивая настройкой каждого сервиса
Ответить
Scorp
Сообщения: 22
Зарегистрирован: 16 янв 2009, 14:19

Контроллер домена на Samba4

Сообщение Scorp »

Ставим из портов, спросит какие дополнительные опции - оставляем все как есть, должно практически все включено

Код: Выделить всё

cd /usr/ports/net/samba41
make install clean
установилось - идем дальше, домен поднимать будем в интерактивном режиме, даем такую команду

Код: Выделить всё

samba-tool domain provision --use-rfc2307 --interactive
он спросит несколько вопросов, если ДНС настроен правильно, то он предложит правильные названия леса и домена, подтверждаем энтером, вводим пароль администратора (не меньше 8 знаков, буквы и цифры, заглавные и строчные буквы) и в консоль выведет, что созданы базы, конфиги и собственно сам домен
у меня с первого раза не вышло, ругань была, что дисковый раздел не поддерживает ACL, отредактировал /etc/fstab следующим образом

Код: Выделить всё

/dev/da0p2    /    ufs        rw,acls    1    1
и перегрузил систему, после этого прошло как по маслу

Далее в зоне ДНС добавляем такие записи для керберос

Код: Выделить всё

ad      A      192.168.*.3
_kerberos._udp      SRV     01 00 88 ad
_kerberos._tcp      SRV     01 00 88 ad
_kpasswd._udp       SRV     01 00 464 ad
_kerberos-adm._tcp  SRV     01 00 749 ad
_kerberos           TXT     DOMEN.RU
_ldap._tcp.dc._msdcs.domen.ru.   SRV   0 0 389 ad
и копируем сконфигуренный самбой конфиг Kerberos в место по умолчанию и создаем тикеты

Код: Выделить всё

# cp /var/db/samba4/private/krb5.conf /etc/krb5.conf
# kinit administrator@DOMEN.RU
вводим пароль, если после ввода команды в консоли тихо, значит все хорошо

проверяем

Код: Выделить всё

# klist
Credentials cache: FILE:/tmp/krb5cc_0
        Principal: administrator@DOMEN.RU

  Issued                Expires        Principal
Oct 17 10:06:51 2014  >>>Expired<<<  krbtgt/DOMEN.RU@DOMEN.RU
отлично, теперь можно запускать, не забыв добавить разрешение запуска в rc.conf добавив следующую запись samba_server_enable=yes

Код: Выделить всё

/usr/local/etc/rc.d/samba_server start
запустилось, проверяем

Код: Выделить всё

# /usr/local/etc/rc.d/samba_server status
samba is running as pid 1299.
отлично!

смотрим, что у нас получилось

Код: Выделить всё

# samba-tool domain level show
Domain and forest function level for domain 'DC=domen,DC=ru'

Forest function level: (Windows) 2003
Domain function level: (Windows) 2003
Lowest function level of a DC: (Windows) 2008 R2
Домен поднят!

Поглядев логи, увидел ругань, что самба пытается поднять сервер печати и у нее ничего не выходит, добавляем в созданный автоматом конфиг /usr/local/etc/smb4.conf следующие опции:

Код: Выделить всё

    load printers = no
    show add printer wizard = no
    printcap name = /dev/null
    disable spoolss = yes
и конфиг на этот момент получился следующим:

Код: Выделить всё

# Global parameters
[global]
    workgroup = DOMEN
    realm = DOMEN.RU
    netbios name = SRV
    server role = active directory domain controller
    dns forwarder = 127.0.0.1
    idmap_ldb:use rfc2307 = yes

    load printers = no
    show add printer wizard = no
    printcap name = /dev/null
    disable spoolss = yes

[netlogon]
    path = /var/db/samba4/sysvol/domen.ru/scripts
    read only = No

[sysvol]
    path = /var/db/samba4/sysvol
    read only = No
перезапускаем самбу

Код: Выделить всё

/usr/local/etc/rc.d/samba_server restart
"ругань" из логов ушла

далее нам необходимо, что бы система знала о юзерах и группах домена, для этого в /etc/nsswitch.conf вносим изменения:

Код: Выделить всё

group: files winbind
passwd: files winbind
проверяем следующими командами, итогом должен быть вывод всех групп и юзеров зарегистрированных в системе и домене, меня интересует второе

Код: Выделить всё

# getent passwd
...
DOMEN\Administrator:*:0:20::/home/DOMEN/Administrator:/bin/false
DOMEN\Guest:*:3000011:3000012::/home/DOMEN/Guest:/bin/false
DOMEN\krbtgt:*:3000020:20::/home/DOMEN/krbtgt:/bin/false
DOMEN\admin:*:3000021:20:Admin:/home/DOMEN/admin:/bin/false

Код: Выделить всё

# getent group
...
DOMEN\Enterprise Read-Only Domain Controllers:*:3000022
DOMEN\Domain Admins:*:3000008
DOMEN\Domain Users:*:20
DOMEN\Domain Guests:*:3000012
DOMEN\Domain Computers:*:3000018
DOMEN\Domain Controllers:*:3000023
DOMEN\Schema Admins:*:3000007
DOMEN\Enterprise Admins:*:3000006
DOMEN\Group Policy Creator Owners:*:3000004
DOMEN\Read-Only Domain Controllers:*:3000024
DOMEN\DnsUpdateProxy:*:3000025
Все отлично, все видим!

проверяем NTLM авторизацию

Код: Выделить всё

# ntlm_auth --username=administrator
Password:
NT_STATUS_OK: Success (0x0)
тут тоже все хорошо, а значит в будущем нам это пригодится

Далее вводим виндовый сервер в наш созданный домен, добавляем роль "Доменные службы Active Directory" и после добавления запускаем Пуск - Администрирование - "Active Directory пользователи и компьютеры", тут мы должны увидеть созданные ранее юзеры и группы, а также можно создать новые, все в штатном режиме без бубнов :)
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Ввод Unix машины в домен

Сообщение RomA »

Задача:
Ввести компьютер с FreeBSD под управление контролера домена, дабы на нём появились пользователи и группы домена.

Реализация:
Для начала нужно установить из портов самбу. я ставлю самую последнюю версию, даже если контролер домена версией ниже.

После установки нужно создать файл конфигурации

Код: Выделить всё

touch /usr/local/etc/smb4.conf
следующего содержания:

Код: Выделить всё

[global]
workgroup = SCH2120
realm = SCH2120.RU

server string = OTRS Samba Server

security = ads
encrypt passwords = yes

dns proxy = no

socket options = TCP_NODELAY

domain master = no
local master = no
preferred master = no
os level = 0
domain logons = no

load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes

dos charset = cp866

idmap config * : range = 10000-20000
idmap config * : backend = tdb

winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes

[homes]
   comment = Home Directories
   browseable = no
   writable = yes

Где вам следует поправить только имя домена - в моём случае это Так же создадим файл /etc/krb5.conf следующего содержания:

Код: Выделить всё

[libdefaults]
    default_realm = SCH2120.RU
[realms]
    sch2120.RU = {
        kdc = samba.sch2120.ru
        admin_server = samba.sch2120.ru
    }
[domain_realm]
    .sch2120.ru = SCH2120.RU

Соответственно опять же SCH2120.RU - мой домен, а samba - имя компьютера, на котором работает контролер домена.

Не забываем добавить в файл /etc/rc.conf следующие строки

Код: Выделить всё

samba_server_enable=YES
winbindd_enable=YES
так же редактируем и файл /etc/nsswitch.conf ищем и заменяем следующие строки

Код: Выделить всё

group: files winbind
passwd: files winbind
ну или в командной строке:

Код: Выделить всё

sed -i -e 's/group: compat/group: files winbind/' /etc/nsswitch.conf
sed -i -e 's/passwd: compat/passwd: files winbind/' /etc/nsswitch.conf
Теперь можно запускать самбу и вводить машину в домен:

Код: Выделить всё

net join -U Administrator
Я бы советовал перезагрузить компьютер и проверить что машина ввелась в домен:

Код: Выделить всё

# net ads testjoin
Join is OK
а так же что система видит пользователей с домена

Код: Выделить всё

 # id administrator
uid=10002(administrator) gid=10000(domain users) groups=10000(domain users),10009(group policy creator owners),10002(denied rodc password replication group),10004(enterprise admins),10005(schema admins),10001(domain admins)
Ещё проверки:
wbinfo -p
Ответ:

Код: Выделить всё

ping to winbindd succeeded	
wbinfo -t
Ответ:

Код: Выделить всё

checking the trust secret for domain TEST via RPC calls succeeded	
wbinfo -u выводит список пользователей
wbinfo -g выводит список групп

Литература:
http://samba.ninja/2016/10/freebsd-11-s ... er-server/
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Samba4 - автосоздание домашних директорий пользователей

Сообщение RomA »

Введение:
Мало завести пользователя в домене - нужно ещё создать ему домашний каталог на сервер, что бы он мог там размещать свои документы. Было бы не плохо попросить систему, что бы она сама создавала такой каталог - именно это мы и будем делать.

Задача:
Создание диреткории пользователя, если она отсутствует. Директория будет создаваться в момент входа пользователя на шару.

Вводные данные:
на сервере должна стоять и работать самба, и сервер должен быть введен в домен.

Реализация:
В файл /etc/pam.d/other добавляем следующие строки в соответствующие секции

Код: Выделить всё

session		required	/usr/local/lib/pam_winbind.so krb5_auth mkhomedir
password	sufficient	/usr/local/lib/pam_winbind.so
Всё. теперь как только пользователь ломанётся на шару - ему создастся директория

Литература:
https://samba.ninja/2015/03/freebsd-10- ... ssh-login/
Ответить