SAMBA как Domain Controller на CentOS 7

Материал из Викиадмин
Версия от 12:12, 13 ноября 2018; Aleksdem (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

SAMBA достаточно давно уже может стать контроллером домена на предприятии и стабильно и нетребовательно выполнять свои задачи. Да, это уровень 2008R2 на сегодня. Но не везде и нужны серьёзные леса доменов с эксченджами и т.п. весьма дорогостоящими хотелками. Авторизовать пользователей, хранить о них информацию, играть групповыми политиками и скидывать по LDAP адресную книгу - это SAMBA умеет без проблем.

Чтобы не быть голословным, скажу, что мы это используем на достаточно крупном предприятии в городе Бронницы, Московской области.

Чем Active Directory на SAMBA может быть полезен вам

  • нетребовательность к ресурсам. Действительно, достаточно минимальной VDS (ставили на одноядерниках с 512МБ памяти), простого нетбука (был и такой вариант: легко спрятать и долго работает от батареи) или старого системника для нормального функционирования сервиса;
  • скорость работы очень высокая;
  • удобно диагностировать, так как лог очень подробный;
  • простые и понятные команды. Это позволяет и автоматизировать ряд процессов (например, атоматическое добавление некоторых полей пользователям при создании учетных данных).

Установка SAMBA

Итак для начала рекомендую проработать вопрос с IP и DHCP. Сервера в начало сети и т.д. - тут уже на вкус и цвет.

Далее на свежей машинке прописываем корректное имя хоста

   nano /etc/sysconfig/network
HOSTNAME=dc

Если с SeLinux не знакомы близко, то пока можно отключить

   nano /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

Теперь компилируем. Это увы, приходится делать, так как новая версия SAMBA не сразу появится в хранилищах этой ОС.

   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. У меня их 16, поэтому -j17

   make -j17
   make -j17 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

если добавляем второй и т.д. контроллер то команда

   /usr/local/samba/bin/samba-tool domain join domain.local DC -UAdministrator –realm=domain.local)

Сделаем файлик для 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

   nano /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

   nano /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

Добавляем зоны

   /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

Управляем дальше с помощью samba-tool, RSAT если windows-машинка под рукой или с помощью тех же Active Directory Manager с планшета. Для Android могу порекомендовать ActiveDir Manager (в бесплатной версии не сохраняются настройки сервера).