Найти тему
Всё об всём.

Ввод в домен windows опереционную систему Ubuntu

Статья полностью скопирована с сайта http://isa.darlex.com.ua/index.php/ubuntu/25-vvod-kompyutera-ubuntu-v-domen-active-directory Так как по данной инструкции у меня всё получилось.

При создании материала использовал следующие источники:

http://help.ubuntu.ru/wiki/%D0%B2%D0%B2%D0%BE%D0%B4_%D0%B2_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD_windows

http://blog.it-kb.ru/2014/07/06/authentication-authorization-in-active-directory-connecting-to-ubuntu-server-14-04-lts-with-winbind-pam/

http://www.tejasbarot.com/2014/04/25/hide-users-login-as-other-user-from-login-screen-ubuntu-14-04-lts-trusty-tahr/#axzz30emfVH8c

Обновиться

sudo apt-get update
sudo apt-get upgrade

Установить

sudo apt-get install krb5-user samba winbind
sudo apt-get install libpam-krb5 libpam-winbind libnss-winbind

krb5-user - пакет для протокола Kerberos, который используется для аутентификации в Windows;

samba - позволяет стать членом домена;

winbind - позволяет использовать учетные записи пользователей из ActiveDirectory.

Настройка DNS

Изменить настройки DNS на вашей машине, прописав в качестве DNS сервера контроллер домен и в качестве домена поиска - контроллер домен. В Ubuntu Desktop это можно сделать через Network Manager, в Ubuntu Server необходимо изменить содержимое файла /etc/resolv.conf

Вместо "mydomain.com" - Ваш домен. Вместо IP-адресов - IP-адреса Ваших контроллеров домена.

domain mydomain.com
search mydomain.com
nameserver 192.168.0.1
nameserver 192.168.0.2

Задать нужное имя компьютера в файле /etc/hostname

ubuntu01 - имя ПК с ubuntu.

Отредактировать файл /etc/hosts так, чтобы в нём была запись с полным доменным именем компьютера и обязательно коротким именем хоста, ссылающаяся на один из внутренних IP

127.0.0.1 localhost
127.0.1.1 ubuntu01.mydomain.com ubuntu01

Проверить, что нормально пингуется контроллер домена

ping dc
ping dc.mydomain.com

Настройка синхронизации времени

Установить ntpd

sudo apt-get install ntp

Исправить файл /etc/ntp.conf, добавив в него информацию о вашем сервере времени:

server dc.mydomain.com

После чего перезапустить демон ntpd:

sudo /etc/init.d/ntp restart

Настройка авторизации через Kerberos

Изменить файл /etc/krb5.conf указав название своего домена вместо DOMAIN.COM и своего контроллера домена

Обратить внимание на регистр написания имени домена. Везде, где домен был написан в верхнем регистре, его обязательно нужно писать именно в верхнем регистре.

[libdefaults]
default_realm = MYDOMAIN.COM

[realms]
MYDOMAIN.COM = {
kdc = dc.mydomain.com
kdc = dc2.mydomain.com
admin_server = dc.mydomain.com
default_domain = mydomain.com
}

[domain_realm]
.mydomain.com = MYDOMAIN.COM
mydomain.com = MYDOMAIN.COM

Проверить, что мы можем авторизоваться в домене. Для этого выполнить команду

kinit username@MYDOMAIN.COM

Вместо username вписать имя существующего пользователя домена. Имя домена необходимо писать заглавными буквами! Если не получили никаких ошибок - значит вы настроили всё верно и домен отдаёт вам билет Kerberos. Убедиться в том, что билет получен, можно выполнив команду

klist

Удалить все билеты

kdestroy

Настройка Samba и вход в домен

Необходимо прописать правильные настройки в файле /etc/samba/smb.conf

[global]
# Эти две опции нужно писать именно в заглавном регистре, причём workgroup без
# последней секции после точки, а realm - полное имя домена
workgroup = MYDOMAIN
realm = MYDOMAIN.COM

# Эти две опции отвечают как раз за авторизацию через AD
security = ADS
encrypt passwords = true
# Просто важные
dns proxy = no
socket options = TCP_NODELAY

# Если вы не хотите, чтобы самба пыталась при случае вылезти в лидеры в домене или рабочей группе,
# или даже стать доменконтроллером, то всегда прописывайте эти пять опций именно в таком виде
domain master = no
local master = no
preferred master = no
os level = 0
domain logons = no

# Отключить поддержку принтеров
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes

После того, как будет отредактирован smb.conf, выполнить команду testparm.

testparm

# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[printers]"
Processing section "[print$]"
Loaded services file OK. Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions

Ввести компьютер в домен

net ads join -U username -D MYDOMAIN

# net ads join -U username -D MYDOMAIN
Enter username's password:
Using short domain name -- MYDOMAIN
Joined 'ubuntu01' to dns domain 'mydomain.com'

Если больше никаких сообщений нет - значит всё хорошо. Для проверки выполнить команду

net ads testjoin

#net ads testjoin
Join is OK

Если всё прошло без ошибок, то успешно вошли в домен! Посмотреть в AD и увидеть добавленный компьютер ubuntu01. Чтобы видеть ресурсы в домене, установите smbclient:

sudo apt-get install smbclient

Теперь можно просматривать ресурсы компьютеров домена. Для этого нужно иметь билет kerberos - получаем через kinit. Посмотрим какие ресурсы предоставлены в сеть компьютером workstation:

smbclient -k -L workstation

Настройка Winbind

Добавить в файл /etc/samba/smb.conf в секцию [global] следующие строки:

# Опции сопоставления доменных пользователей и виртуальных пользователей в системе через Winbind.

# Диапазоны идентификаторов для виртуальных пользователей и групп.
dmap config * : range = 10000-20000
idmap config * : backend = tdb

# Эти опции не стоит выключать.
winbind enum groups = yes
winbind enum users = yes

# Использовать домен по умолчанию для имён пользователей. Без этой опции имена пользователей и групп
# будут использоваться с доменом, т.е. вместо username - DOMAIN\username.
winbind use default domain = yes
# Если вы хотите разрещить использовать командную строку для пользователей домена, то
# добавьте следующую строку, иначе в качестве shell'а будет вызываться /bin/false
template shell = /bin/bash
# Для автоматического обновления билета Kerberos модулем pam_winbind.so нужно добавить строчку
winbind refresh tickets = yes

Перезапустить демон Winbind и Samba в следующем порядке:

sudo /etc/init.d/winbind stop
sudo smbd restart
sudo /etc/init.d/winbind start

Запустить

sudo testparm

Если появится «rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)»

То отредактировать файл /etc/security/limits.conf

# Добавить в конец файла строки:
* - nofile 16384
root - nofile 16384

Перегрузиться. Запустить testparm - Не должно быть ошибок. Проверить, что Winbind установил доверительные отношения с AD командой:

# sudo wbinfo -t
checking the trust secret for domain DCN via RPC calls succeeded

Убедиться, что Winbind увидел пользователей и группы из AD командами:

sudo wbinfo -u
sudo wbinfo -g

Добавление Winbind в качестве источника пользователей и групп

Измените в файле /etc/nsswitch.conf две строчки, добавив в конце winbind:

passwd: compat
group: compat

на

passwd: compat winbind
group: compat winbind

Привести строку files в файле /etc/nsswitch.conf к виду:

files: dns mdns4_minimal[NotFoud=return] mdns4

Проверить, что Ubuntu запрашивает у Winbind информацию о пользователях и группах, выполнив:

sudo getent passwd
sudo getent group
sudo getent passwd 'usernameAD'
sudo getent group 'groupnameAD'

Авторизация в Ubuntu через пользователей домена

Создадим в каталоге домашних папок пользователей подкаталог для доменных пользователей в соответствии с настройками нашего smb.conf (в качестве имени каталога используем NetBIOS-имя домена):

sudo mkdir /home/MYDOMAIN

Проверить, что после установки библиотеки libpam-winbind соответствующие PAM-модули для Winbind активирован.

sudo pam-auth-update

В появившемся окне должна быть включена (отмечена *) опция "Winbind NT/Active Directory authentication"

Добавьте строку в конец файла /etc/pam.d/common-session

session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077

Для появиления поля ручного ввода логина необходимо добавить в файл /etc/lightdm/lightdm.conf/ строку greeter-show-manual-login=true

[SeatDefaults]
greeter-show-manual-login=true

Для скрытия списка пользователей необходимо добавить в файл /etc/lightdm/lightdm.conf/ строку greeter-hide-users=true

[SeatDefaults]
greeter-hide-users=true

Для разрешения входа пользователей AD группы groupdomain можно исправить файл /etc/pam.d/common-auth добавив параметр require_membership_of к вызову pam_winbind.so

auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
require_membership_of=groupdomain auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_cap.so

Если указанная группа не работает, можно указать SID группы

auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass require_membership_of=S-1-5-...

Узнать SID группы по имени можно командой:

wbinfo -n 'groupdomain'