Решил протестировать способность Active Directory в среде 2008 принять на борт машину с FreeBSD 7.2
Исходные данные:
1. AD версии 44 с режимами домена и леса 2008
2. FreeBSD 7.2 с обновленной коллекцией портов
3. Время на контроллерах домена и на машине с FreeBSD синхронизировано с общим источником времени (необходимо для правильной реакции Kerberos)
Пусть хост с FreeBSD называется smb и имеет доменный суффикс testdom.ru.
Пусть контроллер домена 2008 testdom.ru называется pdc, и на нем запущена служба DNS.
Перед началом всех манипуляций, в DNS нужно прописать хост smb. Добавил запись типа A, для того чтобы контроллер домена мог свободно резолвить наш хост.
Так же настроил на smb резолвить запросы на сервер имен - сервер pdc с ролью DNS.
Для работы в домене, нам как обычно понадобится Samba
Установил из портов
/usr/ports/net/samba3/
Протестировал с версией 3.0.35, нужно проверить на 3.3.6
make config
В опциях включил следующее:
With LDAP support
With Active Directory support
With CUPS printing support
With WinBIND support
With ACL support
With UTMP accounting support
With system-wide POPT library
make
make install
rehash
Все подчиненные по дереву порты, при установке оставил с конфигурациями по умолчанию. Примечательно то, что теперь нет необходимости устанавливать и настраивать отдельно порт heimdal, теперь эти механизмы устанавливаются с самбой.
В файле /etc/nsswitch.conf
group: compat
заменил на
group: files winbind
и добавил строку
password: files winbind
Создал конфиг для krb5
touch /etc/krb5.conf
с содержимым (в конфиге очень важен регистр и пунктуация):
[logging]
default=FILE:/var/log/krb5libs.log
kdc=FILE:/var/log/krb5kdc.log
admin_server=FILE:/var/log/ksadmind.log
[libdefaults]
default_realm=TESTDOM.RU
dns_lookup_kdc=false
dns_lookup_realm=false
ticket_lifetime=24h
default_tgs_enctypes=DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
default_tkt_enctypes=DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
preferred_enctypes=DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
[realms]
TESTDOM.RU={
kdc=pdc.testdom.ru.:88
admin_server=pdc.testdom.ru.:749
default_domain=testdom.
}
[domain_realms]
.testdom.=TESTDOM.RU
testdom=TESTDOM.RU
После этого перегрузил машину.
Далее в командной строке нужно обратиться к керберосу pdc и получить временный тикет на работу в домене. Для этого надо обратиться к домену под учетной записью с правами администратора домена. У меня это стандартный Administrator.
Выполнил:
kinit administrator
ввел пароль этой учетки:
Сперва не получилось,, не захотело работать по UDP
kinit administrator
admin@TESTDOM.RU`s Password:
kinit: krb5_get_init_creds: Response too big for UDP, retry with TCP
пришлось исправить конфиг в строке
kdc=pdc.testdom.ru.:88
на
kdc=tcp/pdc.testdom.ru.:88
и повторить процедуру. Со второй попытки все прошло удачно:
kinit administrator
administrator@TESTDOM.RU's Password:
kinit: NOTICE: ticket renewable lifetime is 1 week
Далее настроил конфиг самбы в
/usr/local/etc/smb.conf
Если коротко, то должно получиться вот так (при этом машина будет после присоединения видна в сетевом окружении, но походить по директориям не получится, безопасности ради):
netbios name=SMB
log level=3
idmap uid=10000-20000
idmap gid=10000-20000
encrypt passwords=yes
dns proxy=NO
ldap ssl=NO
winbind use default domain=yes
workgroup = TESTDOM
server string = Samba Server
security = ADS
load printers =no
log file = /var/log/samba/log.%m
max log size = 50000
realm = TESTDOM.RU
socket options = SO_RCVBUF=8192 SO_SNDBUF=8192
local master = no
domain master = no
preferred master =no
display charset = koi8-r
unix charset = koi8-r
dos charset = cp866
В etc/rc.conf разрешил запуск стартстопного скрипта самбы
samba_enable="YES"
стартовал самбу
/usr/local/etc/rc.d/samba start
и присоеденил машину в домен:
net ads join -U administrator
administrator's password:
Using short domain name -- TESTDOM
Joined 'SMB' to realm 'TESTDOM.RU'
Все. Машина успешно подключилась к домену.