LINUX.ORG.RU
ФорумAdmin

NAS Asustor на LDAP и домен IPA.

 , , ,


0

1

Привет, ребят… Собственно ситуация сложилась примерно так:

Домен IPA (Или FreeIPA) и хранилище анаNAS в лице Asustor. Последняя железяка имеет всего два стула способа аунтефикации, это LDAP и AD, второй способ не сработает так как samba судя по конфигам IPA сервера, он этого не поддерживает (И вообще, насколько знаю лучше не редактировать ручками файлы в домене IPA за исключением BIND файлов):

# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
#
# Note:
# SMB1 is disabled by default. This means clients without support for SMB2 or
# SMB3 are no longer able to connect to smbd (by default).

[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

        # Install samba-usershares package for support
        include = /etc/samba/usershares.conf

[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

Собственно… Каким-то образом смог заставить NAS войти в LDAP, однако при авторизации со стороны хранилища появляется следующий прикол:

Unable to acquire sambaNTPassword and sambaPwdLastSet attributes of certain LDAP users, this may be caused by targeted LDAP server's lack of those attributes or insufficient privileges of the Bind DN in use. Samba service may not work properly for these users.

Но далее, всё успешно, пользователи видятся и даже в Web-интерфейсе можно авторизироваться и пользоваться файлами, даже больше скажу, можно подключаться по FTP с авторизацией (Что нам не подходит скорее всего, так как не нашёл способа создавать общие диски на несколько пользователей, при авторизации сразу кидает в домашнюю папку пользователя)… И на этом всё. Далее при попытке авторизации CIFS (В домене нет хостов с Windows, only Linux) NAS посылает куда подальше. Подключившись к нему по SSH, а затем уже приказав дать логи, принесли сей прикол х2:

  check_ntlm_password:  Authentication for user [xxx.xxx] -> [xxx.xxx@xxx.xxx] FAILED with error NT_STATUS_NO_SUCH_USER, authoritative=1
[2024/10/02 16:22:52.281069,  2, pid=15138, effective(0, 0), real(0, 0)] ../../auth/auth_log.c:653(log_authentication_event_human_readable)
  Auth: [SMB2,(null)] user [xxx.xxx]\[xxx.xxx] at [Wed, 02 Oct 2024 16:22:52.281052 AST] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [DESKTOP-xxx-xxx] remote host [ipv4:xxx.xxx.xxx.xxx:41252] mapped to [xxx.xxx]\[xxx.xxx@xxx.xxx]. local host [ipv4:192.168.193.2:445] 
[2024/10/02 16:22:52.281104,  3, pid=15138, effective(0, 0), real(0, 0)] ../../source3/auth/auth_util.c:2245(do_map_to_guest_server_info)
  No such user xxx.xxx [xxx.xxx] - using guest account
[2024/10/02 16:22:52.294144,  2, pid=15085, effective(0, 0), real(0, 0)] ../../source3/winbindd/winbindd_rpc.c:301(rpc_name_to_sid)
  name_to_sid: failed to lookup name: NT_STATUS_NONE_MAPPED
[2024/10/02 16:22:52.295338,  2, pid=15085, effective(0, 0), real(0, 0)] ../../source3/winbindd/winbindd_rpc.c:301(rpc_name_to_sid)
  name_to_sid: failed to lookup name: NT_STATUS_NONE_MAPPED
[2024/10/02 16:22:52.297499,  1, pid=15138, effective(0, 0), real(0, 0)] ../../source3/smbd/service.c:369(create_connection_session_info)
  create_connection_session_info: guest user (from session setup) not permitted to access this share (User Homes)
[2024/10/02 16:22:52.297538,  1, pid=15138, effective(0, 0), real(0, 0)] ../../source3/smbd/service.c:659(make_connection_snum)
  create_connection_session_info failed: NT_STATUS_ACCESS_DENIED

Заранее предвидя вопрос о необходимости конфига с NAS, прикладываю его для Вас:

[global]
workgroup = WORKGROUP
server string = 
security = USER
display charset = UTF-8
unix charset = UTF-8
encrypt passwords = yes
passdb backend = ldapsam:ldap://xxx.xxx.xxx.xxx
log file = /home/admin/AS_ServiceDebugLog/samba.log
max log size = 20480
socket options = IPTOS_LOWDELAY TCP_NODELAY
oplocks = yes
deadtime = 15
create mask = 0777
directory mask = 0777
guest account = guest
map to guest = Bad User
restrict anonymous = 0
ntlm auth = yes
hide files = /Network Trash Folder/Temporary Items/lost+found/:2e*/
min receivefile size = 0
server max protocol = SMB3
server min protocol = SMB2
server signing = auto
ldap enabled = yes
local master = no
server multi channel support = no
log level = 2 auth:3
ldap suffix = DC=centrikt,DC=lc
ldap admin dn = UID=xxx.xxx.xxx,CN=users,CN=accounts,DC=xxx,DC=xxx
ldap ssl = start tls
ldap domain suffix = @xxx.xxx
ldap user suffix = CN=users,CN=accounts
ldap group suffix = CN=groups,CN=accounts
ldap id offset = 1000000

[Home]
path = /volume1/home/%u
comment = Home directory
browseable = yes
guest ok = no
valid users = "%U","%D\%U"
write list = "%U","%D\%U"
recycle bin = 1
available = yes
nt acl support = no
encrypt status = 0
auto mount = 0
hide = 0
netdrv info = 0
anonymous access = 3
read list = 
invalid users = 

[User Homes]
path = /share/User Homes
comment = All users' home directories
browseable = yes
guest ok = no
available = yes
anonymous access = 3
encrypt status = 0
auto mount = 0
hide = 0
recycle bin = 1
valid users = "root",@"administrators"
read list = 
write list = "root",@"administrators"
invalid users = 

[Public]
path = /volume1/Public
comment = System default share
browseable = yes
available = yes
nt acl support = no
encrypt status = 0
auto mount = 0
hide = 0
recycle bin = 1
netdrv info = 0
anonymous access = 2
valid users = "root","xxx","guest",@"users"
read list = "sysadm","guest"
write list = "root",@"users"
invalid users = 

[Web]
path = /volume1/Web
comment = Web default shared folder
browseable = yes
available = yes
nt acl support = no
encrypt status = 0
auto mount = 0
hide = 0
recycle bin = 1
netdrv info = 0
anonymous access = 3
valid users = "root","xxx","guest",@"administrators"
read list = "sysadm","guest"
write list = "root",@"administrators"
invalid users =

Полагаю, что не один такой и следовательно прошу помощи, так как смело могу заявить, что идеи того, что можно сделать - закончились.



Последнее исправление: VrDrakon (всего исправлений: 1)

Для общего развития - что FreeIPA, что OpenLDAP, что AD(s) поддерживают запросы в формате фильтров LDAP ( пусть для некоторых систем это требует дополнительных теледвижений ). Основная проблема в том что используются разные «схемы». Т.е. в одной схеме пароль в прямом виде в свойстве «XXX» в кодировке ANSI 8 битной, в другой схеме пароль в свойстве «YYY» в кодировке unicode UCS-2 и так далее. Аналогично по поводу «групп» пользователей и «вложенности групп» - разные схемы => разные варианты использования.

Поэтому для оптимального решения - смотришь в интернете примеры как выполняются запросы LDAP в твоей системе FreeIPA (google:// FreeIPA ldap filters)
И пробуешь подставлять в свою железку.

Atlant ★★★★★
()
Ответ на: комментарий от Atlant

Конечно это круто и спасибки за информацию к развитию, только не совсем понял что с этими фильтрами, собственно, делать? Насколько понял в итоге придётся запрос ldap писать и скармливать его IPA`шке.

VrDrakon
() автор топика
Последнее исправление: VrDrakon (всего исправлений: 1)
Ответ на: комментарий от VrDrakon

Насколько понял в итоге придётся запрос ldap писать и скармливать его IPA`шке.

Да, именно так. Только не IPA, а аппаратной хранилке.

Atlant ★★★★★
()
Последнее исправление: Atlant (всего исправлений: 1)
Ответ на: комментарий от Atlant

А, так даже… Тогда остаётся только понять где внутри NAS схема лежит?

К слову, по SSH залез внутрь его и при помощи find не смог ничего найти, будет забавно если где-то закодировано жёстко это.

VrDrakon
() автор топика
Ответ на: комментарий от VrDrakon

Тогда остаётся только понять где внутри NAS схема лежит?

FreeIPA у тебя где? На NAS что ли? Думаю - не на NAS, а отдельном сервере. Так?
Так просто берешь документацию по FreeIPA и ищешь какие запросы нужны для подключения к FreeIPA для классического LDAP клиента.

Atlant ★★★★★
()
Ответ на: комментарий от Atlant

Ну вообще в целом можно поднять и на NAS, там как раз Docker есть… Ну а так естественно сервер отдельный.

Вопрос состоял в другом, а именно в том, что команд на самом NAS как таковой нет, то есть, тут никаких smbstatus или ldapsearch нет, хотя бинарники smbшки к примеру находятся в файловой системе. Остальное же управление через Web только, соответственно коим образом выполнять от него «запросы» - остаётся загадкой. Конечно можно идти-шагать в техпод Asustorа, но что-то подсказывает, что толку не даст)

VrDrakon
() автор топика
Последнее исправление: VrDrakon (всего исправлений: 2)
Ответ на: комментарий от VrDrakon

Вообщем, те заблудшие души, что явились сюда, сообщу на будущее ответ от технической поддержки:

It's currently not possible to modify the query. But our team is looking to implement the feature.

Или же по русски:

В настоящее время невозможно изменить запрос. Но наша команда стремится реализовать эту функцию.

Не знаю, реально ли разработчики взяли задачу в разработку или просто ответ на «отстань», но вообщем, на сегодняшний день нельзя нормально присоединить Asustor к домену IPA, максимум как каталог LDAP для Web интерфейса.

VrDrakon
() автор топика