В данной заметке, я пошагово про инструктирую Вас да и себе шпаргалка на будующее, как операционную систему Ubuntu Server 12.04.5 ввести в домен Active Directory (polygon.local). У меня на текущем месте работы много сервисов работает из под Ubuntu, а с использованием связки система плюс домен я получу дополнительную возможность, такую как единая аутентификация на основе доменной учетной записи, организация файлового хранилища и настройка принт сервера. Все это в последствии конечно же будет отражено в моем блоге, а пока распишу от и до по теме данной заметки.

Предварительные требования:

Развернутая система Ubuntu Server 12.04.5 со всеми установленными обновлениями по части безопасности 

Отключено использование apparmor по заметке:

Развернутый домен контроллер по заметке со следующими настроенными ролями: DNS, DHCP

IP-адрес домен контроллера: 10.9.9.1

Полное FQDN имя домен контроллера: srv-dc.polygon.local

IP-адрес системы Ubuntu: IP address for eth0: 10.9.9.11

Полное FQDN имя: srv-serv

Итак ниже действия на системе Ubuntu, сперва обновляем состояние по дефолтным репозитариям:

ekzorchik@srv-serv:~$ sudo apt-get update

Fetched 5,263 kB in 13s (394 kB/s)

Reading package lists... Done

Устанавливаем в систему samba, krb5-user и winbind:

Для справки:

Winbind нужен, если вы хотите видеть пользователей домена на своём компьютере с Ubuntu. Winbind позволяет спроецировать всех пользователей и все группы AD в вашу Linux-систему, присвоив им ID из заданного диапазона. Таким образом, вы сможете назначать пользователей домена владельцами папок и файлов на вашем компьютере и выполнять любые другие операции, завязанные на пользователей и группы.

ekzorchik@srv-serv:~$ sudo apt-get install samba krb5-user winbind -y

На этапе установке пакетом предлагается предопределить настройки Kerberos 5 — ничего не вводим и нажимаем OK:

Default Kerberos version 5 realm: <ничего не вводим>

Создаем резервную копию конфигурационного файла krb5.conf:

ekzorchik@srv-serv:~$ sudo cp /etc/krb5.conf /etc/krb5.conf.backup

Редактируем конфигурационный файл krb5.conf:

Очищаю конфиг:

ekzorchik@srv-serv:~$ sudo bash -c "cat > /etc/krb5.conf"

Ctrl+c

Открываю редактором и привожу конфиг согласно моей авторизации системы в домене:

ekzorchik@srv-serv:~$ sudo nano /etc/krb5.conf

[ниже мой конфиг]

[libdefaults]

default_realm = POLYGON.LOCAL

# The following krb5.conf variables are only for MIT Kerberos.

krb4_config = /etc/krb.conf

krb4_realms = /etc/krb.realms

kdc_timesync = 1

ccache_type = 4

forwardable = true

proxiable = true

v4_instance_resolve = false

v4_name_convert = {

host = {

rcmd = host

ftp = ftp

}

plain = {

something = something-else

}

}

fcc-mit-ticketflags = true

[realms]

POLYGON.LOCAL = {

kdc = srv-dc.polygon.local

admin_server = srv-dc.polygon.local

default_domain = polygon.local

}

[domain_realm]

.polygon.local = POLYGON.LOCAL

[login]

krb4_convert = true

krb4_get_tickets = false

Сохраняем внесенные изменения.

Инициализирую подключение к Polygon.local:

ekzorchik@srv-serv:~$ sudo kinit Administrator@POLYGON.LOCAL

Password for Administrator@POLYGON.LOCAL:<ввожу 712mbddr@>

никаких упреждающих сообщений не получаю, значит проблем нет

Если нужно удалить полученным билет авторизации Kerberos:

ekzorchik@srv-serv:~$ sudo kdestroy

ekzorchik@srv-serv:~$ sudo klist

klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0)

Как видим token я получил:

ekzorchik@srv-serv:~$ sudo klist

Ticket cache: FILE:/tmp/krb5cc_0

Default principal: Administrator@POLYGON.LOCAL

Valid starting Expires Service principal

14/09/2014 11:31 14/09/2014 21:31 krbtgt/POLYGON.LOCAL@POLYGON.LOCAL

renew until 15/09/2014 11:31

На заметку: обратите внимание, тикет выдался 14.09.2014 в 11:31 и действителен до 14.09.2014 21.31, и его перерегистрация произойдет 15.09.2014 в 11:31, это все конечно хорошо, но срок выдачи тикета хотелось бы увеличить с одного дня на большее число, почитавши немного документацию нашел следующий способ, просто запрашивать выдачу тикета на указанное количество дней:

ekzorchik@srv-serv:~$ sudo kinit -r7d Administrator@POLYGON.LOCAL

Password for Administrator@POLYGON.LOCAL:<ввожу пароль 712mbddr@>

смотрю какой строк у выданного тикета:

ekzorchik@srv-serv:~$ sudo klist

Ticket cache: FILE:/tmp/krb5cc_0

Default principal: Administrator@POLYGON.LOCAL

Valid starting Expires Service principal

14/09/2014 12:35 14/09/2014 22:35 krbtgt/POLYGON.LOCAL@POLYGON.LOCAL

renew until 21/09/2014 12:35вот теперь другое дело.

На заметку: Чтобы получать тикет от домен контроллера, необходимо чтобы разница по времени с ним не была более 5 минут, из этого следует что в системе время должно быть корректным:

Выставляем правильный часовой пояс:

ekzorchik@srv-serv:~$ sudo rm -f /etc/localtime

ekzorchik@srv-serv:~$ sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Устанавливаем ntp для синхронизации времени на сервере:

ekzorchik@srv-serv:~$ sudo apt-get install ntp ntpdate -y

ekzorchik@srv-serv:~$ sudo ntpdate pool.ntp.org

14 Sep 12:18:10 ntpdate[3804]:

ekzorchik@srv-serv:~$ sudo ntpdate -bs pool.ntp.org

ekzorchik@srv-serv:~$ date

Sun Sep 14 12:19:03 MSK 2014

Настраиваю SAMBA:

Создаю резервную копию конфигурационного файла smb.conf:

ekzorchik@srv-serv:~$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

Редактирую конфигурационный файл smb.conf:

удаляем все из файла:

ekzorchik@srv-serv:~$ sudo bash -c "cat > /etc/samba/smb.conf"

Нажимаем Ctrl + C

и привожу файл к новому виду:

ekzorchik@srv-serv:~$ sudo nano /etc/samba/smb.conf

[global]

workgroup = POLYGON

realm = POLYGON.LOCAL

server string = %h server (Samba %v, Ubuntu)

security = ADS

syslog = 0

log file = /var/log/samba/log.%m

max log size = 1000

domain master = No

dns proxy = No

usershare allow guests = Yes

panic action = /usr/share/samba/panic-action %d

template shell = /bin/bash

winbind separator = +

winbind enum users = Yes

winbind enum groups = Yes

winbind use default domain = Yes

idmap config * : range = 10000-20000

idmap config * : backend = tdb

Проверяю конфигурационный файл на предмет корректности:

ekzorchik@srv-serv:~$ sudo testparm.samba3

Load smb config files from /etc/samba/smb.conf

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)

Loaded services file OK.

'winbind separator = +' might cause problems with group membership.

Server role: ROLE_DOMAIN_MEMBER

Press enter to see a dump of your service definitions

<Нажимаю клавишу «Enterдля отображения дампа сервиса»

[global]

workgroup = POLYGON

realm = POLYGON.LOCAL

server string = %h server (Samba %v, Ubuntu)

security = ADS

syslog = 0

log file = /var/log/samba/log.%m

max log size = 1000

domain master = No

dns proxy = No

usershare allow guests = Yes

panic action = /usr/share/samba/panic-action %d

template shell = /bin/bash

winbind separator = +

winbind enum users = Yes

winbind enum groups = Yes

winbind use default domain = Yes

idmap config * : range = 10000-20000

idmap config * : backend = tdb

Перезапускаю winbind сервис и Samba сервер:

ekzorchik@srv-serv:~$ sudo /etc/init.d/winbind stop

* Stopping the Winbind daemon winbind [ OK ]

ekzorchik@srv-serv:~$ sudo service smbd restart

smbd stop/waiting

smbd start/running, process 2993

ekzorchik@srv-serv:~$ sudo /etc/init.d/winbind start

* Starting the Winbind daemon winbind [ OK ]

Добавляю систему Ubuntu Server 12.04.5 в домен Active Directory:

Понадобится учетная запись с правом добавления компьютера в домен, например учетка администратора домена POLYGON.LOCAL\ekzorchik.

ekzorchik@srv-serv:~$ sudo net.samba3 ads join -U ekzorchik -S srv-dc.polygon.local

Enter ekzorchik's password:

Using short domain name -- POLYGON

Joined 'SRV-SERV' to realm 'polygon.local'

No DNS domain configured for srv-serv. Unable to perform DNS Update.

DNS update failed!

Странно вроде ошибка выдается, но в Active Directory домена polygon.local создается запись о заведенной системе:

Ubuntu система успешно введена в домен polygon.local

, но конечно же ошибок при вводе системы в домен в принципе не должно быть, а тут у меня «DNS update failed”, взглянув на оснастку DNS на домен контроллер наблюдаю, что запись типа «А» для добавленной системы не создалась, попробовав перезагрузить систему: srv-serv результата не принесло. Поэтому просто создам в оснастке DNS данную запись в ручную:

Созданная вручную DNS запись типа "А" введенной системы

Далее настраиваю специальный демон, служащий для связи локальной системы управления пользователями и группами Linux с сервером Active Directory:

nsswitch.conf, задает источники информации об учетных записях. Учетные записи у нас теперь будут на контроллере домена, а источником информации о них будет служить winbind.

Перед редактированием файла создаем его резервную копию:

ekzorchik@srv-serv:~$ sudo cp /etc/nsswitch.conf /etc/nsswitch.conf.backup

Далее приводим его к виду:

ekzorchik@srv-serv:~$ sudo nano /etc/nsswitch.conf

passwd: compat winbind

group: compat winbind

shadow: compat winbind

hosts: files dns

networks: files dns

protocols: db files

services: db files

ethers: db files

rpc: db files

netgroup: nis

После успешного внесения всех настроек перезагружаем samba и winbind сервисы:

ekzorchik@srv-serv:~$ sudo /etc/init.d/winbind stop

* Stopping the Winbind daemon winbind [ OK ]

ekzorchik@srv-serv:~$ sudo service smbd restart

smbd stop/waiting

smbd start/running, process 3085

ekzorchik@srv-serv:~$ sudo /etc/init.d/winbind start

* Starting the Winbind daemon winbind

Убеждаемся, что winbind работает (показать пользователей домена):

ekzorchik@srv-serv:~$ sudo wbinfo -u

administrator

guest

krbtgt

ekzorchik

Убеждаемся, что winbind работает (показать группы домена):

ekzorchik@srv-serv:~$ sudo wbinfo -g

domain computers

domain controllers

schema admins

enterprise admins

cert publishers

domain admins

domain users

domain guests

group policy creator owners

ras and ias servers

allowed rodc password replication group

denied rodc password replication group

read-only domain controllers

enterprise read-only domain controllers

dnsadmins

dnsupdateproxy

dhcp users

dhcp administrators

Теперь, для проверки, подключился ли наш winbind к контроллеру и функционирует ли нормально, запустим:

ekzorchik@srv-serv:~$ sudo getent passwd | grep -E "POLYGON"

В результате мы должны увидеть наши локальные учетки и длинный список наших доменных учеток.

administrator:*:10000:10000:Administrator:/home/POLYGON/administrator:/bin/bash

guest:*:10001:10001:Guest:/home/POLYGON/guest:/bin/bash

krbtgt:*:10002:10000:krbtgt:/home/POLYGON/krbtgt:/bin/bash

ekzorchik:*:10003:10000:ekzorchik:/home/POLYGON/ekzorchik:/bin/bash

Выведем информацию о домен контроллере:

ekzorchik@srv-serv:~$ sudo net.samba3 ads info

LDAP server: 10.9.9.1

LDAP server name: srv-dc.polygon.local

Realm: POLYGON.LOCAL

Bind Path: dc=POLYGON,dc=LOCAL

LDAP port: 389

Server time: Sun, 14 Sep 2014 11:52:15 MSK

KDC server: 10.9.9.1

Server time offset: 0

Ну вот собственно и всё, я показал и разобрал, как на примере завести систему с операционной системой Ubuntu Server 12.04.5 в домен и авторизовать ее там. В последующих производных от этой заметки я буду рассматривать работу тех или иных сервисов, учиться всему новому исходя из поставленных самому себе задач и оптимизировать их управление. Но пока на этом я, читатели моего блога попрощаюсь, до встречи, с уважением автор блога ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru

3 комментария для “Как ввести систему Ubuntu 12.04 в домен polygon.local”
  1. Наконец таки пошаговая заметка, все проделал никаких проблем у себя не обнаружил, вот все бы блоги этим отличались – правдивостью информации.
    Автор так держать.

  2. Подскажите не первый раз уже попадается отключение apparmor – это связанно со сложностью настройки?

    1. Я бы выразился иначе, доступ к системам уже имеет лишь ограниченный круг лиц и поэтому настраивать еще один уровень безопасности по больше части не нужно. И вроде как да, сложность настройки. Мне пока работа с apparmor не требовалась.

Обсуждение закрыто.