Samba піднімаємо контролер домену на ubuntu server

Піднімаємо контролер домену на 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

2. Налаштування параметрів мережевого адаптера

Або Ви можете перед кожною командою, яка вимагає root доступу, приписувати sudo

sudo nano / etc / network / interfaces

У конфігурації Вашого мережевого інтерфейсу, швидше за все, буде

iface eth0 inet dhcp

auto lo
iface lo inet loopback

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

Після зміни мережевих налаштувань необхідно перезапустити мережевий сервіс

3. Установка необхідних пакетів


Якщо Ви все-таки не встановили OpenSSH server на першому етапі, це можна зробити командою apt-get install ssh
Перед установкою чого або, краще спочатку оновити систему і пакети командою

apt-get update apt-get upgrade

Для того, щоб комп'ютери мережі звіряли час за нашого сервера встановимо ntp-сервер

apt-get install ntp

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 в налаштування кореневого розділу /
nano / etc / fstab повинна вийде рядок, щось на зразок цієї:

/ Dev / mapper / dc1 - vg-root / ext4 user_xattr, acl, barrier = 1, errors = remount-ro 0 1

після чого необхідно перезавантажити комп'ютер

Не забуваємо про root права sudo su

Викачуємо останню стабільну версію Samba з GIT репозитария

cd / usr / src git clone -b v4-1-stable git: //git.samba.org/samba.git samba-v4-1-stable

конфігуруємо, компілюємо і встановлюємо Samba

cd samba-v4-1-stable ./configure --enable-debug make checkinstall

Параметр --enable-debug необхідний для відображення більш докладної інформації в логах Samba.

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

повинна вийде рядок щось на зразок цієї:

Defaults secure_path = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / local / samba / sbin: / usr / local / samba / bin "

повинна вийде рядок щось на зразок цієї:

PATH = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / samba / sbin: / usr / local / samba / bin "


перезавантажити ще раз (на всякий випадок)


Як DNS сервера AD будемо використовувати Samba, тому відключаємо bind командою

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]

allow dns updates = nonsecure and secure
printing = bsd
printcap name = / dev / null

Це дозволить динамічно оновлювати 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

і перезапустити сервіс resolvconf

service resolvconf restart

Також встановимо Kerberos клієнт

apt-get install krb5-user

і налаштуємо на AD за допомогою файлу створеного на етапі samba-tool domain provision

mv /etc/krb5.conf /etc/krb5.conf.old cp /usr/local/samba/private/krb5.conf /etc/krb5.conf

Для автоматичного запуску сервісу Samba необхідний скрипт /etc/init.d/samba4 - його необхідно зробити виконуваним

chmod 755 /etc/init.d/samba4

і створити настройки за замовчуванням

update-rc.d samba4 defaults

6. Перевіряємо працездатність сервера


У нас повинна бути запущена samba після перезавантаження

# Ps aux / grep samba

root 865 0.3 3.0 95408 31748? Ss 18:59 0:00 / usr / local / samba / sbin / samba -D


Повинен працювати DNS сервер

Server: 127.0.0.1
Address: 127.0.0.1 # 53

Name: dc1.domain.local
Address: 192.168.10.1

Повинні бути доступні мережеві ресурси AD

# Smbclient -L localhost -U%

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

Повинен підключатися Kerberos

Повинен зберігатися Ticket kerberos'a

Повинна проходити аутентифікація netlogon

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

От і все. Можна вводити в домен клієнтів, заводити користувачів.

Управляти AD можна:

  • частково за допомогою samba-tool на Ubuntu
  • за допомогою Administration Tools Pack на Windows XP
  • за допомогою Remote Server Administration Tools (RSAT) на Windows 7 і вище

P.S. Якщо комусь буде цікаво можу ще написати "мануал" про включення резервного контролера на Ubuntu в домен.

Схожі статті