====== Контроллер домена SAMBA 4 ====== * [[https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller|Setting up Samba as an Active Directory Domain Controller]] * [[https://medium.com/p/d284cd3f5db4|Доменный контроллер Samba4]] ===== Установка Samba4 из пакетов ===== ==== Debian/Ubuntu ==== # apt update # apt install samba winbind # rm /etc/samba/smb.conf ===== Инициализация домена ===== server# samba-tool domain provision --use-rfc2307 --interactive ... Realm [CORPX.UN]: Domain [CORPX]: 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) [172.16.1.254]: Administrator password: Pa$$w0rd Retype password: Pa$$w0rd ... ===== Запуск сервиса ===== * [[Настройка KDC серверов и клиентов#Настройка Kerberos клиента]] server#### cp /var/lib/samba/private/krb5.conf /etc/krb5.conf server# testparm debian# systemctl disable smbd debian# systemctl unmask samba-ad-dc.service # в debian12, похоже, не нужно debian# systemctl enable samba-ad-dc.service # в debian12, похоже, не нужно server# cat /etc/samba/smb.conf [global] ldap server require strong auth = no ... server# init 6 gate# ssh server2 server# cat /etc/resolv.conf search corpX.un nameserver 127.0.0.1 ===== Управление доменом ===== ==== Управление пользователями ==== * [[https://wiki.samba.org/index.php/Adding_users_with_samba_tool|Adding users with samba tool]] # samba-tool user create user1 'Pa$$w0rd1' --given-name Ivan --initials I --surname Ivanov --uid-number 10001 --gid-number 10001 --login-shell /bin/bash --unix-home /home/user1 # samba-tool group add guser1 --nis-domain=CORP13 --gid-number=10001 # samba-tool user create user2 --given-name Petr --initials P --surname Petrov # samba-tool user setpassword user2 # samba-tool user list # samba-tool group addmembers group1 user4 ==== Управление DNS ==== * [[https://wiki.samba.org/index.php/DNS_Administration|wiki.samba DNS Administration]] # kinit Administrator # samba-tool dns add server corpX.un gate A 192.168.X.1 # samba-tool dns delete server corpX.un gate A 192.168.X.1 # samba-tool dns add server corpX.un _xmpp-client._tcp SRV 'gate.corpX.un 5222 0 0' # samba-tool dns add server corpX.un @ MX "server.corpX.un 1" ==== Управление всем остальным ==== * [[Материалы по Windows#Развертывание средств администрирования Active Directory]] ===== Настройка контроллером существующего домена ===== * [[https://wiki.samba.org/index.php/Joining_a_Samba_DC_to_an_Existing_Active_Directory|Joining a Samba DC to an Existing Active Directory]] * [[https://habr.com/ru/post/450572/|Samba DC в качестве второго контроллера в домене AD Windows 2012R2 и перемещаемые папки для клиентов на Windows и Linux]] * [[https://wiki.astralinux.ru/pages/viewpage.action?pageId=27363212|Присоединение Samba к существующему домену AD]] * [[https://www.rebeladmin.com/2016/01/step-by-step-guide-to-downgrade-domain-and-forest-functional-level/|Step by Step Guide to downgrade domain and forest functional level]] * [[https://dzen.ru/a/Y0LrkjKfFBoi30Pi|Миграция Active Directory с Windows Server 2022 на Ubuntu 22.04 + Samba 4.15.13]] ==== Уровень леса и домена ==== * [[https://wiki.samba.org/index.php/Raising_the_Functional_Levels|Raising the Functional Levels]] - версии Samba и уровни леса/домена PS C:\Users\Administrator> Get-ADForest PS C:\Users\Administrator> Get-ADDomain PS C:\Users\Administrator> Set-ADForestMode –Identity "corpX.un" -ForestMode Windows2008R2Forest PS C:\Users\Administrator> Set-ADDomainMode –Identity "corpX.un" –DomainMode Windows2008R2Domain * [[Настройка KDC серверов и клиентов#Настройка Kerberos клиента]] server2# kinit administrator server2# samba-tool domain join corpX.un DC -k yes --dns-backend=SAMBA_INTERNAL --option="dns forwarder=172.16.1.254" * [[#Запуск сервиса]] ==== Настройка репликации ==== * [[https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr/f977faaa-673e-4f66-b9bf-48c640241d47|[MS-DRSR]: Directory Replication Service (DRS) Remote Protocol]] * [[https://wiki.samba.org/index.php/SysVol_replication_(DFS-R)|SysVol replication (DFS-R)]] * [[https://wiki.samba.org/index.php/Robocopy_based_SysVol_replication_workaround|Robocopy based SysVol replication workaround]] server2# samba-tool drs showrepl server2# samba-tool user list server2# samba-tool user create user4 'Pa$$w0rd4' --given-name 'Василий' --initials 'М' --surname 'Кошкин' #--mail-address=user4@corpX.un В AD появится с задержкой до 10 минут server2# samba-tool ldapcmp ldap://server.corpX.un ldap://server2.corpX.un -Uadministrator Допустимы ERROR, но должны быть и SUCCESS server2# find /var/lib/samba/sysvol PS C:\Users\Administrator> robocopy \\SERVER\SYSVOL\corpX.un\ \\SERVER2\SYSVOL\corpX.un\ /mir /sec server2# find /var/lib/samba/sysvol | grep aas server2# ### samba-tool ntacl sysvolcheck ошибки ===== Замена MS AD на Samba4 ===== * [[https://medium.com/@alexander.bazhenov/%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0-windows-2008r2-%D0%B2-samba4-4718c15c44c8|Миграция доменного контроллера Windows 2008R2 в Samba4]] ==== Переносим FSMO на новый сервер ==== * Flexible Single Master Operations * [[https://habr.com/ru/post/133370/|Все что вы хотели знать о мастерах операций, но боялись спросить]] * [[https://winitpro.ru/index.php/2012/03/06/peredacha-rolej-fsmo/|Передача/захват ролей FSMO на другой контроллер домена Active Directory]] server2# samba-tool fsmo show попробовать# samba-tool fsmo seize --role=all PS C:\Users\Administrator> ntdsutil roles connections connect to server server2 q transfer naming master transfer infrastructure master transfer rid master transfer schema master transfer pdc q q server2# samba-tool fsmo seize --role=forestdns server2# samba-tool fsmo seize --role=domaindns server2# samba-tool fsmo show | grep SERVER2 ==== Удаляем старый сервер ==== * Останавливаем SERVER server2# nslookup -q=SRV _kerberos._tcp.corpX.un server2# samba-tool domain demote --remove-other-dead-server=SERVER server2# nslookup -q=SRV _kerberos._tcp.corpX.un