ActiveDirectory/DC
Материал из ALT Linux Wiki
(→Советы) |
(→Установка) |
||
Строка 45: | Строка 45: | ||
host2cat ldap-user-tools libnetapi libsmbclient libwbclient netpolice-main openresolv-host2cat samba samba-client | host2cat ldap-user-tools libnetapi libsmbclient libwbclient netpolice-main openresolv-host2cat samba samba-client | ||
samba-common samba-libs samba-winbind samba-winbind-clients squid-conf-host2cat squid-helpers | samba-common samba-libs samba-winbind samba-winbind-clients squid-conf-host2cat squid-helpers | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
= Миграция существующего сервера = | = Миграция существующего сервера = |
Версия 10:07, 23 октября 2015
Использование Samba 4 в роли контроллера домена Active Directory. Такой способ позволяет вводить Windows 7/8 в домен безо всяких манипуляций с реестром.
Содержание |
Возможности
Поддерживаются базовые возможности Active Directory:
- Аутентификация рабочих станций Windows и Linux и служб;
- Авторизация и предоставление ресурсов;
- Групповые политики (GPO);
- Перемещаемые профили (Roaming Profiles);
- Поддержка инструментов Microsoft для управления серверами (Remote Server Administration Tools) с компьютеров под управлением Windows (под WINE не работает);
- Поддержка протоколов SMB2 и SMB3 (в том числе с поддержкой шифрования);
- Репликация с другими серверами (в том числе с Windows 2012).
Не поддерживается
Не поддерживаются следующие возможности[1]:
- Не реплицируется хранилище SYSVOL (можно использовать osync[2]);
- Доверительные отношения только в одном направлении (от Windows к Samba, но не наоборот[3]) (что не позволяет реализовать лес доменов);
- Не поддерживаются поддомены[4];
- DFS работает только в режиме одиночного сервера;
- Не реализовано DFS-R;
- Не полностью реализовано RODC;
- В сборке ALT Linux не поддерживается CTDB (хранение данных в кластерной инфраструктуре);
- Не работает Winbind.
Установка
1. Так как Samba в режиме контроллера домена (Doman Controller, DC) использует как свой LDAP, так и свой сервер Kerberos, несовместимый с MIT Kerberos, перед установкой остановите конфликтующие службы krb5kdc и slapd, а также bind:
chkconfig krb5kdc off service krb5kdc stop chkconfig slapd off service slapd stop chkconfig bind off service bind stop
2. Установите пакеты samba-DC, которые конфликтуют с обычной samba:
apt-get install samba-DC python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-client krb5-kinit
удаляются пакеты:
alt-domain-server alterator-auth alterator-ldap-groups alterator-ldap-users alterator-openldap alterator-squid host2cat ldap-user-tools libnetapi libsmbclient libwbclient netpolice-main openresolv-host2cat samba samba-client samba-common samba-libs samba-winbind samba-winbind-clients squid-conf-host2cat squid-helpers
Миграция существующего сервера
На базе https://wiki.samba.org/index.php/Samba4/samba-tool/domain/classicupgrade/HOWTO
1. Скопируем для миграции данные в один каталог:
mkdir /var/lib/samba/dbdir cp -pv /var/lib/samba/private/* /var/lib/samba/dbdir cp -pv /var/lib/samba/{account_policy,gencache_notrans,group_mapping}.tdb /var/lib/samba/dbdir
Должно скопироваться пять файлов .tdb
2. Под root запустим classicupgrade:
samba-tool domain classicupgrade --dbdir=/var/lib/samba/dbdir --use-xattrs=yes --realm=school.alt /etc/samba/smb.conf
Выбор имени домена
Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой.
При этом должно быть установлено правильное имя узла и домена для сервера:
- HOSTNAME=dc.school.alt в /etc/sysconfig/network
- hostname dc.school.alt
- domainname school.alt
Запуск нового сервера
В примере показано создание домена school.alt.
1. Удалите файл /etc/samba/smb.conf, потому что для samba-DC будет создан новый файл конфигурации:
rm -f /etc/samba/smb.conf
2. Запустите samba-tool domain provision:
# samba-tool domain provision Realm [SCHOOL.ALT]: Domain [SCHOOL]: Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: Administrator password: Retype password: Looking up IPv4 addresses More than one IPv4 address found. Using 192.168.1.1 Looking up IPv6 addresses No IPv6 address will be assigned Setting up share.ldb Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema Adding DomainDN: DC=school,DC=alt Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up display specifiers Modifying display specifiers Adding users container Modifying users container Adding computers container Modifying computers container Setting up sam.ldb data Setting up well known security principals Setting up sam.ldb users and groups Setting up self join Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=school,DC=alt Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: c228 NetBIOS Domain: SCHOOL DNS Domain: school.alt DOMAIN SID: S-1-5-21-80639820-2350372464-3293631772
При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»).
Параметры --use-rfc2307 --use-xattrs=yes позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.
Запуск службы
Установите службу по умолчанию и запустите её:
chkconfig samba on service samba start
Проверка работоспособности
1. Общая информация о домене:
# samba-tool domain info 127.0.0.1 Forest : school.alt Domain : school.alt Netbios domain : SCHOOL DC name : c228.school.alt DC netbios name : C228 Server site : Default-First-Site-Name Client site : Default-First-Site-Name
2. Просмотр предоставляемых служб:
# smbclient -L localhost -Uadministrator Enter administrator's password: Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21] Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.0.21) Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21] Server Comment --------- ------- Workgroup Master --------- ------- SCHOOL.ALT C228 WORKGROUP HOST-15
3. Проверка конфигурации DNS (убедитесь в наличии nameserver 127.0.0.1 в /etc/resolv.conf):
# host -t SRV _kerberos._udp.school.alt. _kerberos._udp.school.alt has SRV record 0 100 88 c228.school.alt. # host -t SRV _ldap._tcp.school.alt. _ldap._tcp.school.alt has SRV record 0 100 389 c228.school.alt. # host -t A c228.school.alt. c228.school.alt has address 192.168.1.1
Если имена не находятся, проверяйте выключение службы named.
4. Проверка Kerberos:
# kinit administrator@SCHOOL.ALT Password for administrator@SCHOOL.ALT: Warning: Your password will expire in 41 days on Вт 11 ноя 2014 08:58:30
Просмотр полученного билета:
# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@SCHOOL.ALT Valid starting Expires Service principal 30.09.2014 10:23:54 30.09.2014 20:23:54 krbtgt/SCHOOL.ALT@SCHOOL.ALT renew until 01.10.2014 10:23:45
Управление пользователями
Создать пользователя с паролем, :
samba-tool user add <имя пользователя> samba-tool user setexpiry <имя пользователя>
Например,
samba-tool user add ivanov --given-name='Иван Иванов' --mail-address='ivanov@stand.alt'
Просмотреть доступных пользователей:
samba-tool user list
Если компьютер с таким именем заведён, то удалить его можно командой:
pdbedit -x -m <имя>
Заведение вторичного DC
Подробная инструкция на английском языке: https://wiki.samba.org/index.php/Join_a_domain_as_a_DC
Имя узла: dc2.school.alt (192.168.1.106)
1. Очищаем базы и конфигурацию Samba (если уже создавался домен):
rm -f /etc/samba/smb.conf rm -rf /var/lib/samba mkdir -p /var/lib/samba/sysvol
2. На PDC не забываем выключить службу bind и, если она была включена, перезапустить службу samba. Заводим адрес IP для dc2:
# samba-tool dns add 192.168.1.1 school.alt DC2 A 192.168.1.106 -Uadministrator
3. На dc2.school.alt правим файл /etc/krb5.conf:
[libdefaults] default_realm = SCHOOL.ALT dns_lookup_realm = true dns_lookup_kdc = true
.
4. Получаем билет и убеждаемся, что билет получен:
# kinit administrator@SCHOOL.ALT Password for administrator@SCHOOL.ALT: Warning: Your password will expire in 37 days on Пт 14 ноя 2014 14:31:40 # klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@SCHOOL.ALT Valid starting Expires Service principal 07.10.2014 18:51:01 08.10.2014 04:51:01 krbtgt/SCHOOL.ALT@SCHOOL.ALT renew until 08.10.2014 18:50:51
5. Вводим в домен:
# samba-tool domain join school.alt DC -Uadministrator --realm=school.alt
Если всё нормально, в конце видим:
Joined domain SCHOOL (SID S-1-5-21-80639820-2350372464-3293631772) as a DC
6. Реплицируем на вторичном DC:
# samba-tool drs replicate dc2.school.alt c228.school.alt DC=school,DC=alt
7. Просмотр статуса репликации на PDC:
# samba-tool drs showrepl
Ссылки
- https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO
- https://wiki.samba.org/index.php/Installing_RSAT_on_Windows_for_AD_Management
- Добавление ещё одного DC в домен
- Тестовые серверные установочные образы:
- altlinux-p7-server-samba4.iso (стабильная ветка)
- regular-server-samba4.iso (нестабильная ветка)
- Инструкция по настройке Samba в качестве контроллера домена, совместимого с Active Directory (на русском языке)
- Заведение групповых политик для домена (ролик)
- https://wiki.samba.org/index.php/Samba_%26_Windows_Profiles
- http://wiki.skytech.dk/index.php/Samba_4_-_domain_controller#Join_domain_with_a_linux_machine
- Samba4 — использование Python Scripting Interface
Советы
- Введите в домен машину с Windows, установите на неё Remote Server Administration Tools и управляйте доменом из графического интерфейса.
- Для того, чтобы посмотреть конфигурацию LDAP контроллера домена, получите билет Kerberos (через kinit) и выполните:
ldapsearch -LLL -b '' -s base -x
- Для выполнения задач с помощью samba-tool, требующих прав администратора, указание его пароля в параметре -Uadministrator%пароль можно заменить на использование Kerberos (в этом случае -U указывать нельзя):
kinit Administrator samba-tool -k yes ...