Установка Samba и привязка к AD в CentOS 6.x

Сейчас быстренько за 5-10 минут развернем файловый сервер на Samba 3 с доменной авторизацией (через ActiveDirectory).

Дано:

  • Сервер DC (primary) – dcsrv (win 2k3, 2k8, 2k12)
  • Сервер с Samba – smbsrv
  • Домен – COMPANY.LOCAL

Все действия на smbsrv. Установим нужные пакеты:

# yum install samba samba-common krb5-workstation sssd-krb5-common sssd-krb5 pam_krb5 krb5-libs ntp -y

Сначала проверим, что у нас корректная дата и время (и они совпадают с доменными)

# date
Fri Feb 24 12:43:05 +03 2017

Установим временную зону

# cp /usr/share/zoneinfo/Europe/Minsk /etc/localtime

Теперь настроим керберос, чтобы конфиг /etc/krb5.conf выглядел вот так

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
clockskew = 300
default_realm = COMPANY.LOCAL
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true

[realms]
CAPITAL.LOCAL = {
kdc = dcsrv.capital.local
admin_server = dcsrv.capital.local
default_domain = COMPANY
}

[domain_realm]
.capital.local = COMPANY.LOCAL
capital.local = COMPANY.LOCAL

Теперь включим авторизацию через winbind. Редактируем файл /etc/nsswitch.conf и добавим то, что выделено жирным

passwd:     files winbind
shadow:     files
group:      files winbind

И наконец сам конфиг самбы /etc/samba/smb.conf

#======================= Global Settings =====================================

[global]
server string = Samba
netbios name = smbsrv
security = ads
realm = COMPANY.LOCAL
workgroup = COMPANY
domain master = no
local master = no
winbind separator = +
idmap config * : range = 10000-20000
idmap config * : backend = tdb
winbind enum users = yes
winbind enum groups = yes
template shell = /bin/bash
blocking locks = no
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes

winbind use default domain = yes
restrict anonymous = 2
admin users = COMPANY+admin
write list = COMPANY+admin
acl compatibility = auto
map acl inherit = yes
max connections = 0
load printers = no
printing = bsd
printcap name = /dev/null
hide files = /*.flag/$RECYCLE.BIN/desktop.ini/lost+found/Thumbs.db/~*/miranda/

# логирование (нужно дополнительно настроить rsyslog)
log level = 0 vfs:2
max log size = 0
syslog = 0

#============================ Share Definitions ==============================

[Share1]
path = /mnt/share1
read only = no
create mask = 0600
directory mask = 0700
inherit acls = yes
inherit owner = no
inherit permissions = yes
map acl inherit = yes
nt acl support = yes
valid users = COMPANY+admin

[Share2]
path = /mnt/share2
read only = no
create mask = 0600
directory mask = 0700
inherit acls = yes
inherit owner = no
inherit permissions = yes
map acl inherit = yes
nt acl support = yes
valid users = COMPANY+user1 COMPANY+user2 COMPANY+user3

[Share3]
path = /mnt/share3
read only = no
create mask = 0600
directory mask = 0700
inherit acls = yes
inherit owner = no
inherit permissions = yes
map acl inherit = yes
nt acl support = yes


Создем директорию для шары и даем права

# mkdir /mnt/share1 && chmod 777 /mnt/share1

# mkdir /mnt/share2 && chmod 777 /mnt/share2

# mkdir /mnt/share3 && chmod 777 /mnt/share3

Запустим службы

#   service winbind start && service smb start && service ntpd start

Вводим smbsrv в домен. Для этого у нас должны быть прописаны hostname и запись в DNS. (не помешает в /etc/hosts добавить “127.0.0.1 smbsrv”)

# net ads join -U admin_name

После нажатия Enter у нас спросят пароль администратора домена. Если все успешно, увидим что-то вроде

Enter admin's password:
Using short domain name -- COMPANY
Joined 'SMBSRV' to dns domain 'company.local'

Проверим

# wbinfo -p
Ping to winbindd succeeded
# wbinfo -t
checking the trust secret for domain COMPANY via RPC calls succeeded

Чтобы вывести группы и пользователей домена, соответственно

# wbinfo -g
# wbinfo -u

Теперь перезапустим все службы и добавим их в автозапуск

#   service winbind restart && service smb restart && service ntpd restart

#   chkconfig winbind on && chkconfig smb on && chkconfig ntpd on

Заходим на шары и проверяем. На Share1 может зайти только администратор домена (admin), на Share2 только указанные пользователи (user1, user2, user3). А на Share3 могут зайти все, политика доступа уже регулируется только ACL’ами. В помощь getfacl и setfacl 😉

 


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Unlix © Все права защищены 2023

Копирование материалов с сайта Unlix.ru без указания полной ссылки на источник ЗАПРЕЩЕНО!