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