Постановка задачи
Необходимо создать файловый сервер для Windows-клиентов на основе машины под управлением FreeBSD
с авторизацией в Windows 2003 Active Directory
.
Решение
Для настройки авторизации в Samba
пользователей AD
необходимо выолнить следующие действия:
- вписать хостнейм добавляемого компьютера в
AD DNS
; - настроить Kerberos —
/etc/krb5.conf
; - настроить Samba —
/usr/local/etc/smb.conf
; - настроить Name Service Switch —
/etc/nsswitch.conf
; - настроить DNS —
/etc/resolv.conf
; - синхронизировать системное время с контроллером
AD
; - включить компьютер в домен;
- пользоваться.
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 = DOMAIN.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]
DOMAIN.EXAMPLE.ORG = {
kdc = dc.domain.example.org
admin_server = dc.domain.example.org
default_domain = example.org
}
[domain_realm]
.domain.example.org = DOMAIN.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@DOMAIN.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 = DOMAIN
server string = some server string
security = ads
realm = DOMAIN.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 = "@EXAMPLE\Domain Users"
admin users = "@EXAMPLE\Domain Administrators"
[ShareForOneUser]
path=/data/shareforoneuser
comment = another one windows shared resource
valid users = DOMAIN\user
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
В файле /etc/hosts
должна быть корректная запись хостнейма добавляемого в домен компьютера.
Синхронизация времени с контроллером домена
# 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'
Ссылки
- (http://www.lissyara.su/?id=1180) — первоначальный источник информации по теме;
- (http://wiki.samba.org/index.php/Samba_&_Active_Directory) — официальная документация проекта
Samba
.