Подключение Ubuntu в домен Windows

Статья взята с http://www.linuxcenter.kz, проверено мною. Абсолютно точно работоспособно!
*настройка Samba, которая в примере, позволяет только войти в контроллер домена, но не дает доступ к каталогам на Ubuntu.
**что бы дать доступ к каталогам читайте следующую статью...
При постепенном переходе на Linux в Windows-сети, обязательно возникнет вопрос о подключении Ubuntu 10.10 к домену Windows Active Directory. Да, это не так просто сделать как в Windows, но вполне реально, и в дальнейшем эти манипуляции можно автоматизировать.
Все манипулции буду совершать и описывать в командной строке, потому что так проще и надежней.
Первое что нам понадобится, установить эти пакеты:
sudo aptitude install krb5-user samba winbind

Настройка сетевых параметров


Когда необходимые компоненты установлены, проверим какие ДНС сервера у нас используются сейчас (редактируем файл текстовым редактором Gedit):
sudo gedit /etc/resolv.conf
и приводим все к нужному виду:
domain FIRMA.com
search FIRMA.com
nameserver 192.168.11.10
Точно также проверям имя нашего компьютера:
sudo gedit /etc/hostname

содержимое файла:
MyPC
Также проверим содержимое этого файла:
sudo gedit /etc/hosts
Должно быть примерно так:
# Имена этого компьютера
127.0.0.1 localhost
127.0.1.1 MyPC.firma.com MyPC
Если вы что-то изменяли - лучше всего перезагрузить компьютер.

Синхронизация времени


Чтобы не возникло каких-либо проблем, надо надо настроить сихронизацию времени с нашего сервера.
Устанавливаем пакет:
sudo aptitude install ntp
Редактируем файл конфигурации:
sudo gedit /etc/ntp.conf
Меняем на наш сервер
...
# You do need to talk to an NTP server or two (or three).
server server001.firma.com
...
И перезапускаем демона:
sudo /etc/init.d/ntp restart

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


Изменим конфигурационный файл:
sudo gedit /etc/krb5.conf
Мой файл стал выглядить так:
[libdefaults]
default_realm = FIRMA.COM
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]
SERVER001 = {
kdc = SERVER001
admin_server = SERVER001
}
[domain_realm]
 .domain.com = FIRMA.COM
domain.com = FIRMA.COM
[login]
krb4_convert = true
krb4_get_tickets = false
Посмотрим, что у нас получилось:
kinit username@FIRMA.COM
Если мы все сделал правильно, то после ввода пароля, мы пройдем авторизацию на контроллере домена (просто не увидим никаких ошибок).

Распространённые ошибки kinit

kinit(v5): Clock skew too great while getting initial credentialsЭто значит, у вашего компьютера не синхронизировано время с доменконтроллером
kinit(v5): Preauthentication failed while getting initial credentialsВы ввели неверный пароль. 
kinit(v5): KDC reply did not match expectations while getting initial credentials
Самая странная ошибка. Убедитесь, что имя realm в krb5.conf, а так же домен в команде kinit введены большими буквами:
DOMAIN.COM = {
# ...
kinit username@FIRMA.COM

kinit(v5): Client not found in Kerberos database while getting initial credentials

Указанного пользователя не существует в домене.

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


Настройку Samba осуществляем редактированием файла:
sudo gedit /etc/samba/smb.conf
У меня он принял такой вид:
[global]
workgroup = FIRMA
realm = FIRMA.COM
security = ADS
encrypt passwords = true
dns proxy = no
socket options = TCP_NODELAY
domain master = no
local master = no
preferred master = no
os level = 0
load printers = yes
show add printer wizard = yes
printcap name = /dev/null
disable spoolss = yes
idmap uid = 10000 - 40000
idmap gid = 10000 - 40000
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
template shell = /bin/bash
winbind refresh tickets = yes
Проверить настройку можно командой:
testparm
Теперь можно перейти и к подключению компьютера в домен:
sudo net ads join -U username -D DOMAIN
Вместо username необходимо подставить имя администратора домена, вместо DOMAIN - собственно сам домен. У вас спросят пароль для введённого пользователя и в случае успеха вы увидите что-то похожее на: 
# net ads join -U username -D FIRMA.COM
Enter username's password:
Using short domain name -- FIRMA.COM
Joined 'MyPC' to realm firma.com'
Если вы получили сообщение DNS update failed!, то советую проверить все настройки выше и если все верно, то придется вручную создать ДНС запись на сервере.
Если вы еще этого не делали, то самое время установить Samba клиент, для доступа к сетевым папкам Windows
sudo aptitude install smbclient

Вход в домен


Для того, чтобы полноценно входить в домен при включении компьютера, нам придется совершить еще пару манипуляций:
sudo gedit /etc/nsswitch.conf
Изменим строчки до такого вида:
passwd: compat winbind
group: compat winbind
Этой командой мы можем проверить, что все в порядке:
getent passwd
Она должна вывести список всех пользователей домена и вашего ПК.
Теперь добавим в файл /etc/pam.d/common-session строчки:
session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077
Введем эти команды:
mv /etc/rc4.d/S20winbind /etc/rc2.d/S99winbind
Перезагружаемся и входим под учетной записью пользователя домена!!!

Другие публикации на эту тему: