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

Ранее, я уже приводил пример настройки связки 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/?p=1990


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

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

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

Add your comment now

You must be logged in to post a comment.