3.5.2 Интеграция файлового сервера SAMBA с IPA
Установка необходимых пакетов на сервере SAMBA
Если вы используете РЕД ОС 7.1 или 7.2, выполните команду:
yum -y install ipa-client sssd-libwbclient samba samba-client
Если вы используете РЕД ОС 7.3 и старше, выполните команду:
dnf -y install ipa-client sssd-libwbclient samba samba-client
Присоединим файловый сервер к домену IPA:
ipa-client-install --mkhomedir
Выполним автоматическую конфигурацию системных служб на сервере samba для работы в домене IPA:
authconfig --enablesssdauth --enablemkhomedir --update
Действия, выполняемые на IPA-сервере
1. Создадим сервис cifs для samba-сервера:
ipa service-add cifs/smb.ipa.test
где smb.ipa.test - это будущий сервер samba, предварительно хост smb.ipa.test должен быть уже введен в домен IPA.
2. На сервере IPA запустим настройку домена для обработки классов и атрибутов объектов, специфичных для Samba.
ipa-adtrust-install --add-sids
3. Перезапустим сервер командой:
reboot
После выполнения «ipa-adtrust-install --add-sids» пользователи должны сбросить свои пароли, чтобы freeipa генерировал значение ipaNTHash для паролей.
Действия, выполняемые на сервере SAMBA
1. Выполним команду, которая внесет необходимые изменения в файл /etc/krb5.conf:
sed -i 's;default_ccache_name = KEYRING:persistent:%{uid};default_ccache_name = FILE:/tmp/krb5cc_%{uid};g' /etc/krb5.conf
2. Получим ticket для пользователя admin, это необходимо для выполнения дальнейших действий:
kinit admin
3. Создадим keytab для файлового сервера samba:
ipa-getkeytab -s ipa.ipa.test -p cifs/smb.ipa.test -k /etc/samba/samba.keytab
где ipa.ipa.test - имя сервера IPA;
smb.ipa.test - имя SAMBA-сервера.
4. Для применения изменений выполним перезагрузку:
reboot
5. Далее перейдем к публикованию каталога в сети. Создадим каталог от root:
mkdir -p /share/
Созданный каталог будет выступать в качестве публикуемого сетевого ресурса для обмена данными на samba-сервере.
6. Назначим классические права доступа и ACL права доступа:
chown -R root:reed /share chmod 2750 /share
Настройка ACL — списка управления доступом:
setfacl -m default:group:"admins":rwx /share/ setfacl -m default:group:"reed":r-x /share/ setfacl -m default:other::--- /share/
где reed - это группа, в которую добавлены пользователи freeipa (в нашей настройке для нее будет доступ только для чтения и исполнения);
admins - группа администратора IPA (в настройке имеет все права);
testsamba - домен IPA.
Просмотр acl-прав:
getfacl share
# file: share # owner: root # group: reed # flags: -s- user::rwx group::rwx other::--- default:user::rwx default:group::rw- default:group:admins:rwx default:group:reed:r-x default:mask::rwx default:other::---
Выведем права доступа командой ls:
ls -al drwxr-x---+ 4 root reed 4096 сен 17 16:29 share
7. Настроим selinux для доступа к каталогу:
semanage fcontext -a -t samba_share_t /share/ restorecon -R -v /share/
8. Перейдем к настройке samba-сервера через конфигурацию файла /etc/samba/smb.conf. Здесь необходимо обратить внимание на секцию [share]:
[global] workgroup = IPA realm = ipa.test dedicated keytab file = FILE:/etc/samba/samba.keytab kerberos method = dedicated keytab log file = /var/log/samba/log.%m security = ads printing = cups printcap name = cups load printers = yes cups options = raw [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes
[printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = @printadmin root force group = @printadmin create mask = 0664 directory mask = 0775
[share] path = /share writable = yes browsable=yes
# Доменной группе пользователей разрешен доступ к общей папке valid users = @reed, @usersipa # Список пользователей, имеющих доступ только для чтения read list = @reed, @usersipa # Разрешение записи для доменной группы пользователей write list = @admins guest ok = No inherit acls = Yes create mask = 0660 directory mask = 0770
9. На сервере SAMBA выполним команду:
net -s /dev/null groupmap add sid=S-1-5-32-546 unixgroup=nobody type=builtin
это необходимо сделать, чтобы не было ошибки запуска службы smb:
smbd[11632]: ../source3/auth/auth_util.c:1382(make_new_ses...guest) smbd[11632]: create_local_token failed: NT_STATUS_ACCESS_DENIED smbd[11632]: ../source3/smbd/server.c:2000(main) smbd[11632]: ERROR: failed to setup guest info.
10. Перезапустим службу smb и добавим ее в автозагрузку:
systemctl restart smb systemctl enable smb
11. Перезагрузим ПК:
reboot
Проверьте результат работы, после данных настроек только пользователи группы admins имеют полные права к smb://smb.ipa.test/share, пользователи из группы reed имеют права только на чтение и исполнение.
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.