Контроллер домена на SAMBA — CentOS 7
SAMBA достаточно давно уже может стать контроллером домена на предприятии и стабильно и нетребовательно выполнять свои задачи. Да, это уровень 2012R2 на сегодня. Но не везде и нужны серьёзные леса доменов с эксченджами и т.п. весьма дорогостоящими хотелками. Авторизовать пользователей, хранить о них информацию, играть групповыми политиками и скидывать по LDAP адресную книгу — это SAMBA умеет без проблем.
Установка SAMBA
Итак для начала рекомендую проработать вопрос с IP и DHCP. Сервера в начало сети и т.д. — тут уже на вкус и цвет.
Далее на свежей машинке прописываем корректное имя хоста
vim /etc/sysconfig/network
HOSTNAME=dc
Если с SeLinux не знакомы близко, то пока можно отключить
vim /etc/sysconfig/selinux
SELINUX=disabled
Так же как и firewall. Его можно и в дальнейшем настроить.
systemctl disable firewalld
systemctl stop firewalld
Ставим нужные для сборки пакеты:
yum -y install gcc make wget python-devel gnutls-devel openssl-devel libacl-devel krb5-server krb5-libs krb5-workstation openldap-devel pam pam-devel
Теперь собираем
cd /tmp/
wget https://ftp.samba.org/pub/samba/samba-4.6.5.tar.gz
tar -xzvf samba-4.6.5.tar.gz
cd ./samba-4.6.5
./configure –enable-selftest –with-systemd
Смотрим сколько ядер и ставим -j количество ядер+1. У меня их 8, поэтому -j9
make -j9
make -j9 install
Настройка SAMBA как контроллер домена
Скопируем нужный конфиг, сохранив старый
mv /etc/krb5.conf /etc/krb5.conf_alt
cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf
Теперь подготовим DC.
/usr/local/samba/bin/samba-tool domain provision –use-rfc2307 –interactive
Запилим службу для systemd
cat > /etc/systemd/system/samba4.service
[Unit]
Description= Samba 4 Active Directory
After=syslog.target
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/samba/var/run/samba.pid
ExecStart=/usr/local/samba/sbin/samba
[Install]
WantedBy=multi-user.target
И в автозапуск :
systemctl enable samba4
systemctl restart samba4
Далее проверяем аутентификацию NT:
/usr/local/samba/bin/smbclient -L localhost -U%
Подкорректируем resolv
vim /etc/resolv.conf
nameserver 127.0.0.1
и тестируем DNS:
host -t SRV ldap.tcp.domain.local
host -t SRV kerberos.udp.domain.local
host -t A dc.domain.local
Теперь правим smb.conf
vim /usr/local/samba/etc/smb.conf
- Global parameters
[global]
workgroup = DOMAIN
realm = domain.local
netbios name = DC
server role = active directory domain controller
dns forwarder = 8.8.8.8 #пишем DNS
allow dns updates = nonsecure
nsupdate command = /usr/bin/nsupdate -g
[netlogon]
path = /usr/local/samba/var/locks/sysvol/domain.local/scripts
read only = No
write ok = Yes
[sysvol]
path = /usr/local/samba/var/locks/sysvol
read only = No
write ok = Yes
Делаем линк на конфиг кербероса
ln -sf /usr/local/samba/private/krb5.conf /etc/krb5.conf
И его подправим
nano /etc/krb5.conf
[libdefaults]
default_realm = DOMAIN.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = true
Проверяем:
kinit administrator@DOMAIN.LOCAL
Прописываем срок жизни пароля (тут не ограничено)
/usr/local/samba/bin/samba-tool domain passwordsettings set –complexity=off –min-pwd-length=6 –max-pwd-age=0
Тест
klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@DOMAIN.LOCAL
Добавляем зоны DNS
/usr/local/samba/bin/samba-tool dns zonecreate dc.domain.local 0.168.192.in-addr.arpa
/usr/local/samba/bin/samba-tool dns add dc.domain.local 0.168.192.in-addr.arpa zzz PTR dc.domain.local
Готово 🙂