Linux samba контроллер домена

Поднимаем контроллер домена на Ubuntu Server

Этот вариант может быть полезен для небольших организаций с компьютерами под управлением Windows.
Нет необходимости приобретать недешевую Windows Server для организации AD и CAL лицензии для доступа к контроллеру домена.
В конечном итоге имеем плюшки AD: групповые политики, разграничение прав доступа к ресурсам и т.д.

Я попытался написать подробный алгоритм действий необходимых для организации Active Directory (AD) Domain Controller (DC) на базе Ubuntu Server.

Рассмотрим настройку контроллера домена на примере Ubuntu Server 12.04.4 LTS или Ubuntu Server 13.10, инструкция подходит для обоих вариантов без дополнительных изменений

1. Установка Ubuntu

Думаю установка Ubuntu-server не вызовет проблем даже у большинства пользователей компьютеров.
Желательно при установке ОС сразу правильно указать название машины в сети (hostname) с указанием домена (для примера использую dc1.domain.local), чтобы в дальнейшем меньше надо было править конфигурацию в файлах.
Если в сети не присутствует DHCP-сервер, установщик предложит ввести IP-адрес, маску сети, шлюз и DNS.
Во время установки, также желательно установить OpenSSH server, чтобы иметь удаленный доступ к серверу, а также правильно указать часовой пояс, в котором находится машина.

2. Настройка параметров сетевого адаптера

Настройки сети хранятся в файле /etc/network/interfaces
Редактируем его на свой вкус. В качестве редактора можно использовать nano, vi и т.п.
Для редактирования файлов понадобятся root права, их можно получить например командой

после этого, Вы будете работать из под пользователя root.
О том что Вы работаете с правами root пользователя свидетельствует знак # в приглашении командной строки
Либо Вы можете перед каждой командой, которая требует root доступа, приписывать sudo

sudo nano /etc/network/interfaces 

auto eth0
iface eth0 inet static
address 192.168.10.1
netmask 255.255.255.0
gateway 192.168.10.10
dns-nameservers 192.168.10.10
dns-search domain.local domain

/etc/init.d/networking restart 
3. Установка необходимых пакетов
apt-get update && apt-get upgrade 

Samba4 будем использовать последней версии и собирать из исходников, так что нам понадобятся пакеты для её сборки и корректной работы.

apt-get install git checkinstall build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr docbook-xsl libcups2-dev acl 
4. Сборка Samba4

Для корректной работы Samba потребуется поддержка vfs на уровне файловой системы, для этого внесем изменения в /etc/fstab, необходимо добавить user_xattr,acl,barrier=1 в настройки корневого раздела /

cd /usr/src git clone -b v4-1-stable git://git.samba.org/samba.git samba-v4-1-stable 
cd samba-v4-1-stable && ./configure --enable-debug && make && checkinstall 

Параметр —enable-debug необходим для отображения более подробной информации в логах Samba.

Читайте также:  View all linux processes

После того, как соберется и установится Samba (это долгое занятие), для удобства её использования, необходимо прописать пути до исполняемых файлов /usr/local/samba/sbin и /usr/local/samba/bin в файлах /etc/sudoers переменная secure_path и /etc/environment переменная PATH, добавив строку :/usr/local/samba/sbin:/usr/local/samba/bin

5. Поднимаем AD
service bind9 stop && update-rc.d bind9 disable 

Для манипуляций с AD в Samba существует инструмент samba-tool.
Для первоначальной настройки Samba вводим команду

samba-tool domain provision 

Если на первом этапе Вы правильно указали имя компьютера, все настройки, которые запросит программа, можно оставить поумолчанию.
Во время настройки будет запрошен пароль пользователя Administrator для AD, он должен соответствовать требованиям сложности пароля поумолчанию: хотябы одна буква верхнего регистра, хотябы одна цифра, минимум 8 символов.
Если же пароль не подошел по сложности и Вы увидели ошибку вроде этой:

ERROR(ldb): uncaught exception — 0000052D: Constraint violation — check_password_restrictions: the password is too short. It should be equal or longer than 7 characters!

то перед повторным выполнением первоначальной настройки, необходимо удалить содержимое каталогов /usr/local/samba/private/ и /usr/local/samba/etc/
Если необходимо изменить сложность паролей это можно сделать командой

samba-tool domain passwordsettings set --min-pwd-length=6 --complexity=off --max-pwd-age=0 --min-pwd-age=0 

эта команда отключает требование сложности, отключает сроки действия паролей, устанавливает минимальную длину пароля 6 символов

Далее необходимо подправить настройки Samba и добавить туда следующие строки в секцию [global]

nano /usr/local/samba/etc/smb.conf 

Это позволит динамически обновлять DNS-записи на сервере, при входе рабочей станции (под управлением windows) в домен и отключит поддержку печати, которая постоянно выдает ошибки в лог.

В файле /etc/resolvconf/resolv.conf.d/head необходимо указать наш DNS-сервер Samba 127.0.0.1

echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head 
service resolvconf restart 
mv /etc/krb5.conf /etc/krb5.conf.old cp /usr/local/samba/private/krb5.conf /etc/krb5.conf 
#! /bin/sh ### BEGIN INIT INFO # Provides: samba4 # Required-Start: $network $local_fs $remote_fs # Required-Stop: $network $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start Samba daemons ### END INIT INFO # # Start/stops the Samba daemon (samba). # Adapted from the Samba 3 packages. # PIDDIR=/var/run/samba SAMBAPID=$PIDDIR/samba.pid # clear conflicting settings from the environment unset TMPDIR # See if the daemon and the config file are there test -x /usr/local/samba/sbin/samba -a -r /usr/local/samba/etc/smb.conf || exit 0 . /lib/lsb/init-functions case "$1" in start) log_daemon_msg "Starting Samba 4 daemon" "samba" # Make sure we have our PIDDIR, even if it’s on a tmpfs install -o root -g root -m 755 -d $PIDDIR if ! start-stop-daemon --start --quiet --oknodo --exec /usr/local/samba/sbin/samba -- -D; then log_end_msg 1 exit 1 fi log_end_msg 0 ;; stop) log_daemon_msg "Stopping Samba 4 daemon" "samba" start-stop-daemon --stop --quiet --name samba $SAMBAPID # Wait a little and remove stale PID file sleep 1 if [ -f $SAMBAPID ] && ! ps h `cat $SAMBAPID` > /dev/null then # Stale PID file (samba was succesfully stopped), # remove it (should be removed by samba itself IMHO.) rm -f $SAMBAPID fi log_end_msg 0 ;; restart|force-reload) $0 stop sleep 1 $0 start ;; *) echo "Usage: /etc/init.d/samba4 " exit 1 ;; esac exit 0 
update-rc.d samba4 defaults 
6. Проверяем работоспособность сервера

Name: dc1.domain.local
Address: 192.168.10.1

Domain=[DOMAIN] OS=[Unix] Server=[Samba 4.1.6]
Sharename Type Comment
— — — netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.1.6)
Domain=[DOMAIN] OS=[Unix] Server=[Samba 4.1.6]
Server Comment
— — Workgroup Master
— ——-

Valid starting Expires Service principal
12/03/2014 19:17 13/03/2014 05:17 krbtgt/DOMAIN.LOCAL@DOMAIN.LOCAL

smbclient //localhost/netlogon -UAdministrator -c 'ls' 

Domain=[DOMAIN] OS=[Unix] Server=[Samba 4.1.6]
. D 0 Wed Mar 12 18:46:48 2014
… D 0 Wed Mar 12 18:49:15 2014

Вот и всё.
Можно вводить в домен клиентов, заводить пользователей.

Управлять AD можно:
частично при помощи samba-tool на Ubuntu
при помощи Administration Tools Pack на Windows XP
при помощи Remote Server Administration Tools (RSAT) на Windows 7 и выше

Этот пост можно считать неким переводом официального wiki Samba, который находится по адресу:
wiki.samba.org/index.php/Samba_AD_DC_HOWTO, с моими дополнениями.

P.S. Если кому-то будет интересно могу еще написать «мануал» про включение резервного контроллера на Ubuntu в домен.

Источник

Системное администрирование Linux

Samba — это свободное программное обеспечение совместимость между операционными системами Windows и Linux. Samba может выступать в качестве самостоятельного файлового сервера для клиентов с использованием протокола SMB/CIFS, так и в структеру домена как член домена или даже как контроллер домена. В этой статье мы рассмотрим настройку Samba в качестве контроллера домена. Настройка будет производится на сервере Ubuntu16.04. Адрес сервера 172.20.1.230, домен test.un.

Подготовка сервера

sudo hostnamectl set-hostname samba-dc

Установим необходимые пакеты:

root@samba-dc:~# apt-get install samba krb5-user krb5-config \
winbind libpam-winbind libnss-winbind

При установке будет запрошена настройка kerberos

Указываем область kerberos по-умолчанию

Настройка области kerberos

Указываем сервер kerberos в нашей области (это будет наш контроллер домена)

Настройка адреса сервера kerberos

Указываем управляющий сервер kerberos для области

Управляющий сервер kerberos

Настройка Samba

Отключаем все демоны связанные с Samba

root@samba-dc:~# systemctl stop samba-ad-dc smbd nmbd winbind
root@samba-dc:~# systemctl disable samba-ad-dc smbd nmbd winbind

Переименуем оригинальный конфиг Samba, что бы сохранить его на всякий случай

root@samba-dc:~# mv /etc/samba/smb.conf /etc/samba/smb.conf.old

Запустим команду для настройки Samba в интерактивном режиме, будут заданы вопросы на которые мы ответим:

root@samba-dc:~# samba-tool domain provision --use-rfc2307 --interactive
#Указываем Область Realm: TEST.UN # Домен Domain [TEST]: # Роль сервера указваем dc Server Role (dc, member, standalone) [dc]: # Какой сервер будет использоваться в качестве DNS севрера домена, выбираем встроенный сервер Samba. Возможно применение отдельного сервера типа bind DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: # Указываем адрес DNS сервера для перенаправления запросов DNS forwarder IP address (write "none" to disable forwarding) [. ]: 8.8.8.8 # Пароль адимнистратора Administrator password: Retype password: Looking up IPv4 addresses 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=test,DC=un 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=test,DC=un 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 Setting up fake yp server settings Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: samba-dc NetBIOS Domain: TEST DNS Domain: test.un DOMAIN SID: S-1-5-21-584843895-4130667227-3802405512

Настройка прошла успешно.
Был сконфигурирован файл настройки kerberos, его необходимо скопировать в каталог /etc

root@samba-dc:~# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
root@samba-dc:~# systemctl start samba-ad-dc
root@samba-dc:~# systemctl enable samba-ad-dc

Проверяем уровень нашего домена

root@samba-dc:~# samba-tool domain level show
Domain and forest function level for domain "DC=test,DC=un" Forest function level: (Windows) 2008 R2 Domain function level: (Windows) 2008 R2 Lowest function level of a DC: (Windows) 2008 R2

Устанавливаем в качестве DNS сервера адрес самого контроллера домена

root@samba-dc:~# cat /etc/network/interfaces
. dns-nameservers 127.0.0.1 172.20.1.230 dns-search test.un .

Проверим настройку kerberos, запросим билет

root@samba-dc:~# kinit Administrator
Password for Administrator@TEST.UN: Warning: Your password will expire in 41 days on Пт 23 фев 2018 09:18:48

Проверим полученный билет

Ticket cache: FILE:/tmp/krb5cc_0 Default principal: Administrator@TEST.UN Valid starting Expires Service principal 12.01.2018 09:30:13 12.01.2018 19:30:13 krbtgt/TEST.UN@TEST.UN renew until 13.01.2018 09:30:11

Контроллер домена настроен.

Для управления можно использовать коомандную строку Linux, но удобнее использовать инструмент RSAT из под Windows.

Источник

Оцените статью
Adblock
detector