: :

ПнВтСрЧтПтСбВс

2017-11-14 09:49:37 2364 0

Настройка файлового сервера Samba с авторизацией в домене

Для настройки файлового сервер Samba будем использовать linux дистрибутив Debian8
Контроллер домена имеет адрес 172.20.1.230 и fqdn dc-test.test.un, домен - test.un

Настройка сети

Установим статические настройки сети для сервера

Файл /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 172.20.1.232
netmask 255.255.255.0
gateway 172.20.1.1

Файл /etc/resolv.conf

search test.un
nameserver 172.20.1.230

Установим необходимые пакеты и зависимости:

sudo apt-get update

sudo apt-get install ntp krb5-user samba cifs-utils \

smbclient winbind libnss-winbind libpam-winbind

При установке krb5-user будет предложена настройка аутентификации kerberos, область совпадает с именем домена в верхнем регистре

Настрйока области Kerberos

Далее будет предложено ввести имя KDC-сервера

Указание KDC-сервера

Далее имя управлеющего сервера области Kerberos

Указанаме управлеющего сервера Kerberos

Настройка Kerberos

Вносим изменения в файл настройки Kerberos /etc/krb5.conf, в секции [domain_realm] добавляем данные о своей области

[domain_realm]
        .test.un = TEST.UN
        test.un = TEST.UN
        ......

Проверяем возможность получения TGT от сервера KDC

sudo kinit Administrator

Password for Administrator@TEST.UN:

Вводим пароль

Проверяем полученный TGT

sudo klist

Valid starting       Expires              Service principal
19.09.2017 13:18:50  19.09.2017 23:18:50  krbtgt/TEST.UN@TEST.UN
	renew until 20.09.2017 13:18:48

Все полученно корректно

Настройка nsswitch

Редактируем файл /etc/nsswitch.conf для того, что бы мы могли использовать доменные учетные записи

	Было:
passwd:         compat
group:          compat
shadow:         compat
	Стало:
passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind

Конфигурирование Samba

Делаем backup конфигурационного файла Samba

cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

После чего можно править /etc/samba/smb.conf, приводим его к виду:

[global]
    # Указываем домен без конечного суффикса .un
    workgroup = TEST
    
    # Указываем ads режим безопасности (сервер будет вести себя как член домена)
    security = ads
    
    # Указываем область домена (полностью)
    realm = TEST.UN
    
    # Указываем что сервер будет только членом домена (не контроллером)
    domain master = no
    local master = no
    preferred master = no
   
    # Отключение CUPS.
    printcap name = /etc/printcap
    load printers = no
    
    # Указываем диапозон преобразования UID доменных пользователей
    idmap config * : range = 10000-99999
    idmap config * : backend = tdb
    
    # Включаем отображение доменных пользователей
    winbind enum users = yes
    winbind enum groups = yes
    
    # Это разрешает доменным пользователям логиниться на сервере
    #без указания домена, как локальным пользователям
    winbind use default domain = yes
    
    # Наследование групп
    winbind nested groups = yes
    winbind refresh tickets = yes
    
    # Возможность логиниться, если сервер оффлайн
    winbind offline logon = true
    
    # Шаблон пользовательской директории,
    #где %D - имя домена, %U - имя пользователя
    template homedir = /home/%D/%U
    
    # Указание оболочки для доменного пользователя
    #(/bin/false - пользователь не сможет залогиниться на сервере)
    template shell = /bin/false
    
    client use spnego = yes
    client ntlmv2 auth = yes
    encrypt passwords = yes
    restrict anonymous = 2
    log file = /var/log/samba/samba.log
    log level = 2
    winbind separator = ^

Сохраняем изменения и перезапускаем демоны:

systemctl restart smbd

systemctl restart nmbd

systemctl restart winbind

И не забудем поставить демоны в автозагрузку:

systemctl enable smbd

systemctl enable nmbd

systemctl enable winbind

Добавление сервера в домен

Перед добавление не забываем проверить что у нас получен TGT и синхрогизированно время между сервером и контролерром домена

Выполняем команду и после вводим пароль:

net ads join -U Administrator

Enter Administrator"s password:
Using short domain name -- TEST
Joined "DEBIAN8" to dns domain "test.un"
No DNS domain configured for debian8. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER

Все сервер добавлен в домен

Снова перезапускаем демоны:

systemctl restart smbd

systemctl restart nmbd

systemctl restart winbind

Выполняем команду:

pam-auth-update

Провереям отображение пользователей и групп

wbinfo -u

administrator
guest
krbtgt
test1
test2

wbinfo -g

winrmremotewmiusers__
domain computers
domain controllers
schema admins
enterprise admins
cert publishers
domain admins
domain users
domain guests
group policy creator owners
ras and ias servers
allowed rodc password replication group
denied rodc password replication group
read-only domain controllers
enterprise read-only domain controllers
cloneable domain controllers
protected users
dnsadmins
dnsupdateproxy
samba

Создание общих папок на файловом сервере и огранизация доступа к ним

Созданим директории, которые будем делать общими:

mkdir /share

Теперь идем в файл /etc/samba/smb.conf и добавляем настройки для общих папок

[share]
   # коментарий к директории
   comment = Shared samba storage

   # Путь к директории
   path = /share

   # Не только для чтения
   read only = no

   # Параметр устанавливает, будет ли общий ресурс отображаться
   в списке доступных общих ресурсов в сетевом окружении и в списке просмотра
   browseable = yes

   # ресурс будет доступен для пользователей домена состоящих в группе samba
   #и для пользователя user1, user2
   valid users = "@TEST^samba", "TEST^user1", "TEST^user2"

    # При создании нового файла, владельцем будет назначена группа samba
   force group = samba

   # маска доступа для создания нового файла
   force create mode = 0660

   # маска доступа для создания новой директории
   force directory mode = 0770
 
   # гостевой доступ запрещен
   guest ok = no

   # Пользователь user2 имеет доступ к сетевому ресурсу только для чтения
   read list = "TEST^user2"

   # write list = "@TEST^samba" - пользователи группы имеют право писать
   #в директорию (действие по-умолчанию, поэтому можно и не указывать)

# Домашние директории пользователей домена

[home]
# Путь к диретории %D - имя домена, %U - имя пользователя
path = /home/%D/%U
read only = no
browseable = yes
# Любой текущий пользователь домена
valid users = TEST^%U
force create mode = 0644
force directory mode = 0744

Создание домашней директории пользователя при входе доменного пользователя на сервер

Для автоматического создания домашней директории для доменного пользователя необходими подключить модуль pam_mkhomedir.so
Для этого вносим изменения в файл конфигурации PAM /etc/pam.d/common-account, добавляем строку

session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

Теперь при первом входе доменного пользователя на сервер будет создана домашняя директория по пути указанном в директиве "template homedir" в файле /etc/samba/smb.conf (если для пользователей домена задана оболочка)






Введите ответ:

+

=