На днях настраивал такую связку в одном учебном заведении, потому и появилась здесь эта статья.

Ранее, я уже приводил пример настройки связки samba с AD, но там немного по другому был настроен конфиг samba.
Поэтому в этой статье я постараюсь изложить готовое решение для придуманного домена edu.ua.

Итак, с чего нам нужно начать?

Первым делом мы проверим не установлены ли уже у нас:

Samba > 3.х.х с опциями:
--with-ldap 
--with-ads 
--with-krb5 
--with-pam 
--with-winbind
heimdal >0.6.3(утилиты\библиотеки kerberos) 
OpenLDAP >2.2.23 
Сервер Windows 2003 (2008) sp1 (или выше) с Active Directory

Если есть, то переходим к настройке, а если нет — то установим:

# cd /usr/ports/net/samba3
# make config
Выбираем интересуемые нас пункты и 
┌────────────────────────────────────────────────
│                                 Options for samba 3.0.37,1                  
│ ┌──────────────────────────────────────────────
│ │  [X] LDAP         With LDAP support                                   
│ │  [X] ADS          With Active Directory support                    
│ │  [ ] CUPS         With CUPS printing support                        
│ │  [X] WINBIND      With WinBIND support                            
│ │  [ ] ACL_SUPPORT  With ACL support                                 
│ │  [ ] AIO_SUPPORT  With Asyncronous IO support                 
│ │  [ ] FAM_SUPPORT  With File Alteration Monitor                   
│ │  [ ] SYSLOG       With Syslog support                                
│ │  [ ] QUOTAS       With Disk quota support                          
│ │  [ ] UTMP         With UTMP accounting support                   
│ │  [X] PAM_SMBPASS  With PAM authentication vs passdb backends   
_______________________________________________________
 
[  OK  ]
# make install clean

Вторым делом — оговоримся, что:

10.10.7.7 – dc.edu.ua — это сервер Windows 2003 (2008)
10.10.7.1 – smb.edu.ua – FreeBSD машина с Samba

Следующим шагом, нужно обеспечить поддержку ACL для нашей файловой системы. И для того что бы это сделать — необходимо отмонтировать те слайсы, на которые мы будем делать поддержку, а потом выполнить ряд команд:

# mount 
dev/da0s1a on / (ufs, asynchronous, local)
devfs on /dev (devfs, local, multilabel)
/dev/da0s1f on /other (ufs, local, soft-updates)
/dev/da0s1d on /usr (ufs, local, soft-updates)
/dev/da0s1e on /var (ufs, local, soft-updates)
/dev/ad4s1d on /other/dopHdd/sata1 (ufs, local, soft-updates)
/dev/ad6s1d on /other/dopHdd/sata2 (ufs, local, soft-updates)
 
# umount /other/dopHdd/sata1
umount: unmount of /other/dopHdd/sata1 failed: Device busy

Остановим все службы, которые могут обращаться к данному диску. В моём случае — это PROFTPD, SAMBA, APACHE, MYSQL и ряд других сервисов для обеспечения WEB и его обслуживания.

После останова необходимых демонов, повторяем и продолжаем:

# umount /other/dopHdd/sata1
# /sbin/tunefs -a enable /dev/ad4s1d
# umount /other/dopHdd/sata2
# /sbin/tunefs -a enable /dev/ad6s1d
# mount -arw
# mount
/dev/da0s1a on / (ufs, asynchronous, local)
devfs on /dev (devfs, local, multilabel)
/dev/da0s1f on /other (ufs, local, soft-updates)
/dev/da0s1d on /usr (ufs, local, soft-updates)
/dev/da0s1e on /var (ufs, local, soft-updates)
/dev/ad4s1d on /other/dopHdd/sata1 (ufs, local, soft-updates, acls)
/dev/ad6s1d on /other/dopHdd/sata2 (ufs, local, soft-updates, acls)

Итак, поехали дальше..
На данном этапе, нам нужно обеспечить, что бы наш DOMAIN CONTROLLER отдавал DNS имя нашего smb.edu.ua сервера, для чего сделаем соответствующую «А» запись на DNS в DC и в самом smb.edu.ua сервере укажем в файле /etc/resolv.conf в качестве DNS сервера, DC.EDU.UA. Также я поднял вторичную зону на SMB сервере и раз в 5ть — 10ть минут проверяю её обновления, в случае чего — обновляю..

# cat /etc/resolv.conf
search edu.ua
domain edu.ua
nameserver 10.10.7.7
nameserver 127.0.0.1

Также необходимо сделать синхронизацию времени, иначе AD не будет авторизовать на SMB сервере. Для этого выполним:

# ntpdate 10.10.7.7

Теперь установим и настроим поддержку Kerberos, если ещё не настроена.

# cd /usr/ports/security/heimdal
# make install clean

У меня уже настроено, поэтому я пропустил этот шаг.. Проверяем настройки Kerberos.

# cat /etc/krb5.conf
[libdefaults]
    default_realm = EDU.UA
 
[realms]
    DC.EDU.UA = {
    kdc = dc.edu.ua
    admin_server = dc.edu.ua
    default_domain = edu.ua
}
 
[domain_realms]
    .edu.ua = EDU.UA

PS. Если что то не понятно, касаемо настройки Kerberos — смотрите ссылку указанную в самом начале этой статьи.

Дальше, нам необходимо сделать небольшие изменения в файле /etc/nsswitch.conf, предварительно его забекапив:

# cp /etc/nsswitch.conf /etc/nsswitch.conf-old
# echo '#/etc/nsswitch.conf' > /etc/nsswitch.conf
# echo 'passwd: files winbind' >> /etc/nsswitch.conf
# echo 'group: files winbind' >> /etc/nsswitch.conf
# echo 'hosts: files dns' >> /etc/nsswitch.conf

Теперь конфиг SAMBы:

# cat /usr/local/etc/smb.conf | grep -v '#' | sed '/^$/d' | sed '/^;/d'
[global]
    null passwords = yes
    encrypt passwords = yes
    idmap uid = 10000-20000
    idmap gid = 10000-20000
    auth methods = winbind
    winbind enum groups = yes
    winbind enum users = yes
    winbind use default domain = yes
    name resolve order = hosts wins bcast lmhosts
    case sensitive = no
    netbios name = edu
    client use spnego = yes
    client signing = yes
    debug level = 2
    client NTLMv2 auth = Yes
    client lanman auth = No
    client plaintext auth = No
    ldap ssl = no
    usershare allow guests = Yes
    acl group control = yes
    map acl inherit = yes
   workgroup = SMB
   server string = SMB SERVER
   security = DOMAIN
   hosts allow = 10.10.7. 127.
   load printers = no
   log file = /var/log/samba/log.%m
   max log size = 25
   password server = dc.edu.ua
   realm = EDU.UA
   socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
   interfaces = 10.10.7.1/255.255.255.0
   local master = no
   os level = 0
   domain master = no
   preferred master = no
   wins server = 10.10.7.7
   dns proxy = no
   unix charset = cp1251
   display charset = cp1251
   dos charset = cp1251
[WinBackup]
comment = WinBackup
path = /other/dopHdd/sata2/samba/WinBackup
ready only = no
guest ok = no
browseable = yes
writeable = yes
directory mask = 0770
create mask = 0766
valid users = @"headadmins",@"Admins"
[EduVideoFiles]
comment = Education Video Content
path = /other/dopHdd/sata1/edu-video
ready only = no
guest ok = no
browseable = yes
writeable = no
directory mask = 0770
create mask = 0766
valid users = @"headadmins",@"Admins",@"Prepods",@"Students"

Если эта машина еще не внесена в домен, то вам необходимо позаботится о том, что бы внести её туда командой:

# net ads join -U Admin
Joined 'SMB' to realm 'EDU.UA'

После чего включаем возможность управления конфигом через web:

# cat /etc/inetd.conf | grep swat
# (from the Samba documentation).  Enable the third entry to enable the swat
swat    stream  tcp     nowait/400      root    /usr/local/sbin/swat    swat

Теперь внесём строки для автозапуска в /etc/rc.conf:

echo 'inetd_enable="YES"' >> /etc/rc.conf
echo 'nmbd_enable="YES"' >> /etc/rc.conf
echo 'smbd_enable="YES"' >> /etc/rc.conf
echo 'winbindd_enable="YES"' >> /etc/rc.conf

Далее, либо перезагружаем систему, либо запускаем все установленные сервисы.
После загрузки проверяем работу SAMBA в Домене.

# wbinfo -t
checking the trust secret via RPC calls succeeded

Проверяем список пользователей в домене:

# wbinfo -u
гость
администратор
..............

Проверяем список Групп в домене которые видит SAMBA:

# wbinfo -g
администраторы схемы
администраторы предприятия
администраторы домена
гости домена
издатели сертификатов
компьютеры домена
пользователи домена
..........................

Теперь проверим, авторизацию через домен, для чего наберём логин и пароль через «%»

# wbinfo -a логин_в_домене%пароль_в_домене
plaintext password authentication succeeded
challenge/response password authentication succeeded

Если все прошло успешно. Значит вы сделали все правильно.
Вам остается лишь открыть или добавить необходимую папку сетевого доступа по образцу и раздать на ней необходимые права средствами проводника windows.

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/1990


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

Please note: JavaScript is required to post comments.