Донастройка сервера FreeIPA
Если при установке сервера не была применена опция --setup-adtrust (установка компонент для работы с samba и Windows AD), то доустановить необходимые компоненты:
sudo ipa-adtrust-install --add-sids --add-agents
- samba получит роль ROLE_DOMAIN_PDC;
- Сервис samba будет переведён под управление FreeIPA;
- Будет создана и зарегистрирована доменная служба CIFS.
Монтирование и авторизация через samba на сервере для простых пользователей сервере работать не будут.
Монтировать разделяемые ресурсы следует только с компьютеров-клиентов.
Службы samba и winbind теперь будут управляться командой ipactl:
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
ntpd Service: RUNNING
smb Service: RUNNING
winbind Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful
В конфигурационном файле сервиса samba /etc/samba/smb.conf останется только отсылка в БД "registry", куда будут перенесены все конфигурационные параметры:
### Added by IPA Installer ###
[global]
debug pid = yes
config backend = registry
Можно создать комбинированную конфигурацию, заменив "config backend = registry" на "include = registry", что позволит задавать параметры в файле /etc/samba/smb.conf.
Проверить конфигурацию можно стандартной командой testparm, однако теперь только от имени суперпользователя:
Все секции конфигурационного файла samba (в том числе разделяемые ресурсы, включая ресурс homes) могут быть указаны в этой ветке. Все параметры имеют одинаковый тип REG_SZ.
При этом конфигурационные данные можно импортировать в registry из файлов с синтаксисом конфигурационного файла samba с помощью команды net.
Например, создадим зазделяемые ресурсы homes и share:
local file=`mktemp`
cat << EOF > "$file"
[homes]
browseable = no
comment = Home Directories
create mask = 0600
directory mask = 0700
valid users = %S
# По умолчанию ресурс [homes] предоставляется как ресурс только для чтения (read only = yes).
# Если требуется разрешить запись нужно явно указать read only = no
read only = No
guest ok = no
EOF
sudo net conf import "$file" homes
share="/srv/share"
if [ ! -d "$share" ] ; then
sudo mkdir -p "$share"
sudo chown nobody:nogroup "$share"
sudo chmod 777 "$share"
fi
cat << EOF > $file
[share]
comment = anonymous share
create mask = 0666
directory mask = 0777
guest ok = yes
guest only = yes
path = $share
read only = no
EOF
sudo net conf import "$file" share
Отдельно выполнять команду добавления службы "ipa service-add ...", как рекомендуется во многих Интернет-инструкциях, не нужно: служба добавится автоматически.
Создание домашних каталогов
Для тестирования создадим на сервере условный домашний каталог пользователя admin (т.е. администратора FreeIPA, создаваемого "по умолчанию"):
sudo mkhomedir_helper admin
Подключение ресурса с клиентской доменной машины
После выполнения указанных выше действий ресурс будет доступен на клиентской машине с авторизацией через Kerberos:
smbclient -r //ipa0.ipadomain.ru/admin
Ошибка соединения NT_STATUS_INVALID_PARAMETER говорит о том, что неправильно получен билет Kerberos (чаще всего билет получен из-под sudo, а авторизовтаься пытаются без sudo).