Samba 3 (FreeBSD 7) + Windows 2003 AD


Постановка задачи
Необходимо создать файловый сервер для Windows-клиентов на основе машины под управлением FreeBSD с авторизацией в Windows 2003 Active Directory.
Решение
Для настройки авторизации в Samba пользователей AD необходимо выолнить следующие действия:
1. настроить Kerberos - /etc/krb5.conf;
2. настроить Samba - /usr/local/etc/smb.conf;
3. настроить Name Service Switch - /etc/nsswitch.conf;
4. настроить DNS - /etc/resolv.conf;
5. синхронизировать системное время с контроллером AD;
6. включить компьютер в домен;
7. пользоваться.
Kerberos
/etc/krb5.conf:
[logging]
default = FILE:/var/log/kerberos/krb5libs.log
kdc = FILE:/var/log/kerberos/krb5kdc.log
admin_server = FILE:/var/log/kerberos/kadmind.log

[libdefaults]
ticket_lifetime = 24000
default_realm = EXAMPLE.ORG
dns_lookup_realm = false
dns_lookup_kdc = false
kdc_req_checksum_type = 2
checksum_type = 2
ccache_type = 1
forwardable = true
proxiable = true

[realms]
MOSCOW.CTM.RU = {
kdc = 192.168.0.1
admin_server = 192.168.0.1
default_domain = example.org
}

[domain_realm]
.example.org = EXAMPLE.ORG

[pam]
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false

[login]
krb4_convert = false
krb4_get_tickets = false
Проверяем работу Kerberos:
$ kinit Administrator@EXAMPLE.ORG
Administrator@EXAMPLE.ORG's Password:
kinit: NOTICE: ticket renewable lifetime is 1 week
Samba
Параметры установки
$ cd /usr/ports/net/samba3
# make config
В появившемся окне опций сборки порта необходимо выделить следующие пункты:
" LDAP;
" ADS;
" WINBIND;
" ACL SUPPORT.
Далее обычно:
# make install clean
Конфигурация
/usr/local/etc/smb.conf:
[global]

workgroup = EXAMPLE
server string = senior system administrator
security = ads
realm = EXAMPLE.ORG
hosts allow = 192.168.0. 127.
interfaces = 192.168.0.0/24
auth methods = winbind
password server = 192.168.0.1
passdb backend = tdbsam
client NTLMv2 auth = yes
deadtime = 360
max open files = 100000
idmap uid = 600-20000
idmap gid = 600-20000
os level = 8
paranoid server security = no
winbind enum users = yes
winbind enum groups = yes
winbind nested groups = no
winbind refresh tickets = yes
nt acl support = yes
case sensitive = no
log level = 0 vfs:1
log file = /var/log/samba/%m
max log size = 50

display charset = koi8-r
unix charset = koi8-r
dos charset = cp866

load printers = no
show add printer wizard = no

[Share]
path=/data/share
comment = Windows shared resource
valid users = "@EXAMPLEDomain Users"
admin users = "@EXAMPLEDomain Administrators"
NSS
/etc/nsswitch.conf:
group: files winbind
group_compat: nis
hosts: files dns
networks: files
passwd: files winbind
passwd_compat: nis
shells: files
services: compat
services_compat: nis
protocols: files
rpc: files
DNS
Первым сервером DNS должен быть Dynamic DNS на контроллере домена (иначе далее, не удастся добавить компьютер в домен), поэтому пишем в /etc/resolv.conf:
domain example.org
nameserver 192.168.0.1
Синхронизация времени с контроллером домена
# net time set -S 192.168.0.1
Этот пункт необязателен - у меня все компьютеры синхронизируют время по NTP, поэтому я его пропустил.
Добавление компьютера в домен
# net ads join -U Administrator
Administrator's password:
Using short domain name -- EXAMPLE
Joined 'FILESERVER' to realm 'EXAMPLE.ORG'

Обновлено: 12.03.2015