На днях настраивал такую связку в одном учебном заведении, потому и появилась здесь эта статья.
Ранее, я уже приводил пример настройки связки 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.
Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:
Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)
Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455
На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел