На самом деле добавить Ubuntu в AD можно двумя способами вручную или с помощью domainjoin-gui
Добавление вручную
Общие настройки
Первое, что мы делаем обновляем пакеты командами:
apt-get update
apt-get upgrade
Затем установим основные команды
apt-get install install krb5-user samba winbind
apt-get install libpam-krb5 libpam-winbind libnss-winbind
Настройка сети и DNS
1. Необходимо отредактировать файлик hosts
nano /etc/hosts
192.168.0.5 ub.study.local ub #Имя локальной машины
192.168.0.2 dc1.study.local dc1 #Пример ip сервера, прописать обязательно!
2. Настройки сети локальной машины.
- Если у вас статический IP-адрес, то в Ubuntu Desktop это можно сделать через Network Manager, в Ubuntu Server необходимо изменить содержимое файла /etc/resolv.conf на примерно такое:
domain study.local
search study.local
nameserver 192.168.0.1 #IP Вашего шлюза
nameserver 192.168.0.2 #IP Вашего сервера
Если редактировали файл /etc/resl.conf на прямую, то после перезагрузки сервера все данные пропадут. Чтобы данные сохранялись нужно отредактировать /etc/resolvconf/resolv.conf.d/head Данные которые будут добавлены в него, будут автоматически вставлены в файл /etc/resolv.conf
- Если IP динамический, полученный по DHCP, то:
редактируем /etc/dhcp/dhclient.conf
nano /etc/dhcp/dhclient.conf
редактируем строки
supersede domain-name "study.local dc1.study.local";
prepend domain-name-servers 192.168.0.2;
Перезапускаем компьютер командой:
reboot
После перезагрузки проверим доступность сервера командой пинг
ping dc1
ping dc1.study.local
Настройка синхронизации времени
Далее необходимо настроить синхронизацию времени с доменконтроллером. Если разница будет более 5 минут мы не сможем получить лист от Kerberos. Для единовременной синхронизации можно воспользоваться командой:
sudo net time set dc
Если в сети существует сервер точного времени, то можно воспользоваться им или любым публичным:
ntpdate ntp2.stratum2.ru
Автоматическая же синхронизация настраивается с помощью ntpd, это демон будет периодически выполнять синхронизацию. Для начала его необходимо установить:
sudo apt-get install ntp
Теперь исправьте файл /etc/ntp.conf, добавив в него информацию о вашем сервере времени:
# You do need to talk to an NTP server or two (or three).
server dc1.study.local
После чего перезапустите демон ntpd:
sudo /etc/init.d/ntp restart
Настройка авторизации через Kerberos
Прежде чем редактировать конфигурационный файл, сохраним его резервную копию
mv /etc/krb5.conf /etc/krb5.conf.old
Редактируем новый файл /etc/krb5.conf. Делаем точно так же как и на представленном конфиге!
nano /etc/krb5.conf
GNU nano 2.2.6 Файл: /etc/krb5.conf
[libdefaults]
default_realm = STUDY.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# default_tgs_enctypes = des3-hmac-sha1
# default_tkt_enctypes = des3-hmac-sha1
# permitted_enctypes = des3-hmac-sha1
# default_tgs_enctypes = des3-hmac-sha1
# default_tkt_enctypes = des3-hmac-sha1
# permitted_enctypes = des3-hmac-sha1# The following libdefaults parameters are only for Heimdal Kerberos.
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true[realms]
STUDY.LOCAL = {
kdc = dc1.STUDY.LOCAL
admin_server = dc1.STUDY.LOCAL
default_domain = STUDY.LOCAL
}[domain_realm]
.opc.local = STUDY.LOCAL
opc.local = STUDY.LOCAL
[login]krb4_convert = false
krb4_get_tickets = false
Теперь настало время проверить, что мы можем авторизоваться в домене. Для этого выполните команду
kinit username@STUDY.LOCAL #Например kinit alexey@STUDY.LOCAL
Если не выдал ошибок, значит все получилось
Теперь проверим полученный билет
klist
Результат будет такой
Ticket cache: FILE:/tmp/krb5cc_10000
Default principal: alexey@STUDY.LOCAL
Valid starting Expires Service principal
14.12.2015 10:33:27 14.12.2015 20:33:27 krbtgt/STUDY.LOCAL@STUDY.LOCAL
renew until 15.12.2015 10:33:20
Удалить все билеты
kdestroy
Настройка Samba и вход в домен
Сохраним конфигурационный файл samba
mv /etc/samba/smb.conf /etc/samba/smb.conf.old
Редактируем новый файл
nano /etc/samba/smb.conf
[global]
workgroup = STUDY
realm = STUDY.LOCAL
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
Результат должен быть такой
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions
net ads join -U alexey -D STUDY.LOCA -S dc1, Где alexey и dc1, STUDY.LOCAL, необходимо заменить на свои данные
Результат
Enter username's password:
Using short domain name -- STUDY.LOCAL
Joined 'ub' to dns 'study.local'
Проверим результат добавления в домен
#net ads testjoin
Join is OK
Настройка Winbind
Редактируем nano /etc/samba/smb.conf
[global]
workgroup = STUDY
realm = STUDY.LOCAL
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
#winbind
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
template shell = /bin/bash
winbind refresh tickets = yes
winbind offline logon = yes
winbind cache time = 300
Теперь перезапустите демон 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)»
Без перезагрузки можно устранить так:
ulimit -n 16384
Для сохранения после перезагрузки отредактировать файл /etc/security/limits.conf
# Добавить в конец файла строки:
* - nofile 16384
root - nofile 16384
После перезапуска проверьте, что Winbind установил доверительные отношения с AD командой:
# wbinfo -t
checking the trust secret for domain DCN via RPC calls succeeded
А так же, что Winbind увидел пользователей и группы из AD командами:
wbinfo -u wbinfo -g
Добавление Winbind в качестве источника пользователей и групп
Редактируем /etc/nsswitch.conf
nano /etc/nsswitch.conf
Для этого измените две строчки в файле /etc/nsswitch.conf:
passwd: compat
group: compat
добавив к ним в конец winbind:
passwd: compat winbind
group: compat winbind
также рекомендую привести строку files в файле /etc/nsswitch.conf к виду:
files: dns mdns4_minimal[NotFoud=return] mdns4
Теперь проверьте, что Ubuntu запрашивает у Winbind информацию о пользователях и группах, выполнив
getent passwd
getent group
Авторизация в Ubuntu через пользователей домена
Для Ubuntu 10.04 и выше добавьте всего одну строку в файле /etc/pam.d/common-session, т.к. PAM и так неплохо справляется с авторизацией:
session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077
Вход в систему
Редактируем файл /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
nano /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
Добавляем
allow-guest=false
greeter-show-manual-login=true
Сохраняемся и перезапускаем машину
reboot
После перезагрузки нажимаем войти и вводим
Пользователь: STUDY\alexey
Пароль: *********
Все вы в доменной учетной записи!!!!
Добавление с помощью domainjoin-gui
Предварительная настройка
Необходимо отредактировать файлик hosts
nano /etc/hosts
192.168.0.5 ub.study.local ub #Имя локальной машины
192.168.0.2 dc1.study.local dc1 #Пример ip сервера, прописать обязательно!
Скачиваем необходимые пакеты. Пакеты скачиваем по необхдимости (в зависимости от архитектуры)
- http://de.archive.ubuntu.com/ubuntu/pool/main/l/likewise-open/likewise-open_6.1.0.406-0ubuntu5.1_amd64.deb
- http://de.archive.ubuntu.com/ubuntu/pool/main/libg/libglade2/libglade2-0_2.6.4-2_amd64.deb
- http://de.archive.ubuntu.com/ubuntu/pool/universe/l/likewise-open/likewise-open-gui_6.1.0.406-0ubuntu5.1_amd64.deb
Устанавливаем скаченные пакеты
- dpkg -i likewise-open-gui_6.1.0.406-0ubuntu5.1_amd64.deb
- dpkg -i libglade2-0_2.6.4-2_amd64.deb
- dpkg -i likewise-open-gui_6.1.0.406-0ubuntu5.1_amd64.deb
В случает если появляются ошибки, то запускаем команду
apt-get insall -f
Затем повторяем установку dpkg
После установки запускаем
sudo domainjoin-gui
Вводим имя компьютера (к которому подключаемся),домен, пользователя и пароль(Доменный Администратор или администратор) и нажимаем
Join Domain
Перезапускаем машину
reboot
Должно все получиться
Вход в систему
Редактируем файл /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
nano /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
Добавляем
allow-guest=false
greeter-show-manual-login=true
Сохраняемся и перезапускаем машину
reboot
После перезагрузки нажимаем войти и вводим
Пользователь: STUDY\alexey
Пароль: *********
Добавляем пользователя sudo
sudo usermod -a -G sudo AD_administrative_user