Краткое руководство по установке и первоначальной настройке файлового сервера Samba с интеграцией с контроллером домена Active Directory на ОС Debian GNU/Linux 11.6.
В первую очередь необходимо указать FDQN в файле /etc/hostname
# hostnamectl set-hostname fileserver.homenet.local
и поправить строчку в файле /etc/hosts:
127.0.1.1 fileserver.homenet.local fileserver
Проверим командой:
# hostnamectl status
После этого устанавливаем службу ntp для синхронизации времени с контроллером домена
# apt install ntp ntpdate
Служба запустится автоматически после установки.
Затем открываем файл /etc/ntp.conf и перед списком pool указываем сервер контроллера домена:
server dc1.homenet.local
Перезапускаем службу ntp
# systemctl restart ntp
и сверяем дату и время
# date
Переходим к настройке Kerberos. Устанавливаем пакет krb5-user
# apt install krb5-user
открываем файл /etc/krb5.conf и приводим его к следующему виду:
[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = HOMENET.LOCAL dns_lookup_kdc = false dns_lookup_realm = false forwardable = true ticket_lifetime = 24h [realms] HOMENET.LOCAL = { kdc = dc1.homenet.local default_domain = HOMENET.LOCAL admin_server = dc1.homenet.local } [domain_realm] .homenet.local = HOMENET.LOCAL homenet.local = HOMENET.LOCAL
Проверяем работу kerberos
# kinit administrator@HOMENET.LOCAL
потребуется ввести пароль
здесь administrator — учётная запись с правами администратора контроллера домена
Проверяем:
# klist
консоль должна показать примерно такое:
Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@HOMENET.LOCAL Valid starting Expires Service principal 10.02.2023 00:27:51 10.02.2023 10:27:51 krbtgt/HOMENET.LOCAL@HOMENET.LOCAL renew until 11.02.2023 00:27:45
Значит всё сработало. Теперь удаляем полученный тикет
# kdestroy
Далее устанавливаем Samba и winbind и входим в домен
# apt install samba cifs-utils winbind libnss-winbind libpam-winbind
открываем файл конфигурации samba
# nano /etc/samba/smb.conf
и приводим его к следующему виду:
[global] realm = HOMENET.LOCAL workgroup = HOMENET security = ads encrypt passwords = yes netbios name = fileserver server string = %h, Samba server %v domain master = no local master = no preferred master = no os level = 0 domain logons = no dns proxy = no socket options = TCP_NODELAY unix charset = UTF-8 dos charset = 866 idmap config * : backend = tdb idmap config * : range = 3000-7999 idmap config HOMENET : backend = rid idmap config HOMENET : range = 10000-999999 winbind enum users = yes winbind enum groups = yes winbind refresh tickets = yes winbind use default domain = yes winbind offline logon = yes winbind cache time = 300 template homedir = /srv/share/users/%D/%U template shell = /bin/bash load printers = no show add printer wizard = no printcap name = /dev/null disable spoolss = yes log level = 0 vfs:1
Затем увеличиваем лимит одновременно открытых файлов до 16384. Для этого открываем /etc/security/limits.conf и в самом конце допишем такие строки:
* - nofile 16384 root - nofile 16384
Проверяем конфигурацию Самбы утилитой testparm
# testparm
в консоли получим ответ:
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_DOMAIN_MEMBER Press enter to see a dump of your service definitions
жмём Enter и консоль покажет такую выгрузку:
# Global parameters [global] disable spoolss = Yes dns proxy = No domain master = No dos charset = 866 load printers = No local master = No os level = 0 preferred master = No printcap name = /dev/null realm = HOMENET.LOCAL security = ADS server string = %h server show add printer wizard = No template homedir = /srv/share/users/%D/%U template shell = /bin/bash winbind enum groups = Yes winbind enum users = Yes winbind offline logon = Yes winbind refresh tickets = Yes winbind use default domain = Yes workgroup = HOMENET idmap config homenet : range = 10000-999999 idmap config homenet : backend = rid idmap config * : range = 3000-7999 idmap config * : backend = tdb
После этого не помешает перезагрузить машину
# shutdown -r now
Теперь подключим Самбу к домену
# net ads join -U administrator@homenet.local
вводим пароль и консоль покажет такой результат:
Using short domain name -- HOMENET Joined 'FILESERVER' to dns domain 'homenet.local'
Это значит, что в DNS контроллера домена homenet.local добавлена A-запись fileserver.
Для того, чтобы мы могли видеть и пользоваться учётными записями и группами домена, настроим службу winbind. Для этого открываем файл /etc/nsswitch.conf и изменим параметры passwd и group:
passwd: files winbind group: files winbind
Перезапускаем службу winbind
# systemctl restart winbind
Теперь нам необходимо проверить доверительные отношения с контроллером домена
# wbinfo -t
консоль должна вывести такую строчку:
checking the trust secret for domain HOMENET via RPC calls succeeded
Это значит, что Active Directory доверяет Самбе.
После этого мы можем увидеть список пользователей домена
# wbinfo -u
а также групп
# wbinfo -g
Если консоль всё это выводит, значит всё настроено правильно. Если нет, то перезагрузим машину
# shutdown -r now
и повторим эти команды, должно будет работать.
Далее можно начинать открывать ресурсы для пользователей. Для этого создадим директорию /srv/share/
# mkdir /srv/share/
назначим ей владельца — группу sambashare и дадим полные права
# chown :sambashare /srv/share/ # chmod 777 /srv/share/
в этой директории создадим директорию test
# mkdir /srv/share/test/
и зададим владельца уже пользователя домена vasya_petrov
# chown vasya_petrov /srv/share/test/ # chmod 777 /srv/share/test/
снова откроем файл /etc/samba/smb.conf и пропишем эту директорию в шарах:
[Test Folder] writeable = yes read list = @sales fedya_ivanov valid users = vasya_petrov @buh "@Администраторы домена" path = /srv/share/test
и перезапускаем службы самбы
# systemctl restart smbd # systemctl restart nmbd
Теперь на другой машине в домене homenet.local открываем
\\fileserver\
и увидим шару Test Folder
Здесь получается, что у группы sales и пользователя fedya_ivanov права только на чтение, а у пользователя vasya_petrov и групп buh и Администраторы домена — права на чтение и запись.