Автор Тема: Файл-сервр с авторизацией на sambadc  (Прочитано 4784 раз)

Оффлайн ApB

  • Завсегдатай
  • *
  • Сообщений: 412
Приветствую.
Пытаюсь запустить файл-сервер с авторизацией на sambaDC

В процессе авторизации - сервер перезапрашивает авторизацию, в случае, если вход осуществляется посредством ошибочного логина/пароля. В случае, если логин/пароль верны, то ... вылетает сообщение о недоступности ресурса сообщением:
Нет доступа к \\FILESERVER. Возможно, у вас нет прав на использование сетевого ресурса. Обратитесь к администратору этого сервера для получения прав доступа.
Присоединенное к системе устройство не работает.
getent passwd
net ads info
wbinfo -u
Выдают требуемые ответы, но:
smbclient -L //127.0.0.1 -Uusername.in
Enter TITAN\username.in's password:
session setup failed: NT_STATUS_UNSUCCESSFUL

Вот содержимое smb.conf
[global]
security = ads
realm = DOMAIN.ZN
workgroup = DOMAIN
netbios name = EXTFS
template shell = /bin/bash
kerberos method = system keytab
wins support = no

        idmap config * : range = 10000-20000000
        idmap config * : backend = tdb
; encrypt passwords = true
; dns proxy = no
; socket options = TCP_NODELAY
; domain master = no
; local master = no
; preferred master = no
; os level = 0
; domain logons = no
; load printers = no
; show add printer wizard = no
; printcap name = /dev/null
; disable spoolss = yes
tls enabled = no

log level = 6 passdb:5 auth:5


[homes]
comment = Home Directories
browseable = No
read only = No

[printers]
comment = All Printers
path = /var/spool/samba
browseable = No
printable = Yes

[files_fs]

comment = test
path = "/srv/share/"
browseable = yes
writable = yes
valid users = username.in

В логе следующее:
  Auth: [SMB2,(null)] user [DOMAIN]\[username.io] at [Вс, 19 апр 2020 14:17:59.993473 MSK] with [NTLMv2] status [NT_STATUS_OK] workstation [NB0028] remote host [ipv4:192.182.176.224:55516] became [DOMAIN]\[username.io] [S-1-5-21-1998429667-3243626105-1001387784-11006]. local host [ipv4:10.0.0.14:445]
  {"timestamp": "2020-04-19T14:17:59.993579+0300", "type": "Authentication", "Authentication": {"remoteAddress": "ipv4:192.182.176.224:55516", "version": {"minor": 0, "major": 1}, "clientAccount": "username.io", "localAddress": "ipv4:10.0.0.14:445", "netlogonComputer": null, "status": "NT_STATUS_OK", "authDescription": null, "becameDomain": "DOMAIN", "netlogonTrustAccount": null, "serviceDescription": "SMB2", "clientDomain": "DOMAIN", "workstation": "NB0028", "becameAccount": "username.io", "becameSid": "S-1-5-21-1998429667-3243626105-1001387784-11006", "passwordType": "NTLMv2", "netlogonTrustAccountSid": null, "mappedAccount": "username.io", "mappedDomain": "DOMAIN", "netlogonNegotiateFlags": "0x00000000", "netlogonSecureChannelType": 0, "duration": 22839}}
[2020/04/19 14:17:59.993644,  2] ../source3/auth/auth.c:316(auth_check_ntlm_password)
  check_ntlm_password:  authentication for user [username.io] -> [username.io] -> [username.io] succeeded
[2020/04/19 14:17:59.993672,  3] ../auth/ntlmssp/ntlmssp_sign.c:512(ntlmssp_sign_reset)
  NTLMSSP Sign/Seal - Initialising with flags:
[2020/04/19 14:17:59.993684,  3] ../auth/ntlmssp/ntlmssp_util.c:72(debug_ntlmssp_flags)

Т.о. пользователь опознается, однако допуска до тела нету.
Подскажите пожалуйста, в чем может быть проблема?

Оффлайн ApB

  • Завсегдатай
  • *
  • Сообщений: 412
Re: Файл-сервр с авторизацией на sambadc
« Ответ #1 : 20.04.2020 02:09:25 »
По факту прохождения по ману
https://www.altlinux.org/ActiveDirectory/FileShare
Есть ссылка на ман ActiveDirectory/Login и там вроде все проходит нормально, однако, вторая часть - это https://www.altlinux.org/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_SPN_%D0%B8_Keytab_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0

а именно часть создания keytab с помощью samba-DC

В результате, получил файл keytab на домене в который уже на файл-сервере собрал всё в krb5.keytab

kinit выполняется, но:

 smbclient -k -L extfs
session setup failed: NT_STATUS_ACCESS_DENIED

Как можно выяснить во что утыкается авторизация?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 920
    • Домашняя страница
    • Email
Re: Файл-сервр с авторизацией на sambadc
« Ответ #2 : 21.04.2020 08:23:16 »
В права.
Андрей Черепанов (cas@)

Оффлайн ApB

  • Завсегдатай
  • *
  • Сообщений: 412
Re: Файл-сервр с авторизацией на sambadc
« Ответ #3 : 23.04.2020 01:00:18 »
В права.

Тут не могу не вспомнить диалог из "Крутого пике"

К: Штурман! Приборы!
Ш: 16!
К: Штурман, что, 16?
Ш: А что приборы?


Оказалось, что не совсем права, а пароль (его отсутствие) на пользователе, которым я прикручивал файл-сервер =)

Оффлайн ApB

  • Завсегдатай
  • *
  • Сообщений: 412
Re: Файл-сервр с авторизацией на sambadc
« Ответ #4 : 23.04.2020 12:06:51 »
Вечером всё проверил - вроде работает, но ... наверно не всё ...

Обращение по IP - пропускает до просмотра шар, но ни в одну шару не пускает
Обращение по полному имени хоста - пропускает до просмотра шар, но ни в одну шару не пускает
Обращение по короткому имени - допускает по логину или приоритетной posix-группе

В чём может быть причина подобного поведения?

Оффлайн ApB

  • Завсегдатай
  • *
  • Сообщений: 412
Re: Файл-сервр с авторизацией на sambadc
« Ответ #5 : 23.04.2020 14:44:39 »
не смотря на то, что bind однозначно возвращает имя сервера, дописал имя в hosts.

В результате:
kinit extfsВроде получаю:

klist
Ticket cache: KEYRING:persistent:0:0
Default principal: extfs@DOMAIN.ZN

Valid starting       Expires              Service principal
23.04.2020 13:19:47  23.04.2020 23:17:31  cifs/extfs@DOMAIN.ZN
renew until 30.04.2020 13:17:25

до этого проверил - самба-хост из домена не вывалился и позволяет проходить авторизацию доменными пользователями. (проверка getent passwd, net ads info, net ads testjoin, а также вывод
klist -ke /etc/krb5.keytab | grep cifs/
   3 cifs/extfs.domain.zn@DOMAIN.ZN (arcfour-hmac)
   3 cifs/extfs.domain.zn@DOMAIN.ZN (des-cbc-md5)
   3 cifs/extfs.domain.zn@DOMAIN.ZN (des-cbc-crc)
   3 cifs/extfs.domain.zn@DOMAIN.ZN (arcfour-hmac)
   3 cifs/extfs.domain.zn@DOMAIN.ZN (des-cbc-md5)
   3 cifs/extfs.domain.zn@DOMAIN.ZN (des-cbc-crc)
   3 cifs/extfs.domain.zn@DOMAIN.ZN (arcfour-hmac)
   3 cifs/extfs.domain.zn@DOMAIN.ZN (des-cbc-md5)
   3 cifs/extfs.domain.zn@DOMAIN.ZN (des-cbc-crc)

вроде содержат необходимые записи и отвечают как должны ... и после этого:

smbclient -k -L extfs
session setup failed: NT_STATUS_ACCESS_DENIED
[root@extfs ~]# smbclient -k -L extfs.domain.zn
session setup failed: NT_STATUS_ACCESS_DENIED

и вот я не уверен в том, что писал ранее по поводу отсутствия пароля на пользователе, которым прикручивал файл-сервер (как писал ранее)

И тут я даже ориентировочно не представляю как отследить процедуру авторизации
« Последнее редактирование: 23.04.2020 14:46:58 от ApB »

Оффлайн ApB

  • Завсегдатай
  • *
  • Сообщений: 412
Re: Файл-сервр с авторизацией на sambadc
« Ответ #6 : 23.04.2020 15:30:53 »
И да, в мане https://www.altlinux.org/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_SPN_%D0%B8_Keytab_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0 в разделе "На машине с Alt говорится о генерации krb-файла, потом размещении его на самба-сервере и потом ввод в домен.

При этом ман https://www.altlinux.org/ActiveDirectory/FileShare описывает очередность операций как сначала ввод в домен, потом генерация SPN. Но часть мана про SPN говорит, что сначала генерим SPN а потом вводим файл-сервер в домен.

И как должен выглядеть keytab-файл, по ману https://www.altlinux.org/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_SPN_%D0%B8_Keytab_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0 он выглядит как:
klist -ke /tmp/keytab
  Keytab name: FILE:/etc/http.keytab
  KVNO Principal
  ---- --------------------------------------------------------------------------
     1 host/test.address.com@INTRANET.COM (des-cbc-crc)
     1 host/test.address.com@INTRANET.COM (des-cbc-md5)
     1 host/test.address.com@INTRANET.COM (arcfour-hmac)
     1 HTTP/test.address.com@INTRANET.COM (des-cbc-crc)
     1 HTTP/test.address.com@INTRANET.COM (des-cbc-md5)
     1 HTTP/test.address.com@INTRANET.COM (arcfour-hmac)

то есть полное имя хоста и дополнительно домен

В то время как в соответствии с https://www.altlinux.org/ActiveDirectory/FileShare

klist -ke /etc/krb5.keytab | grep cifs/
   2 cifs/ws1@TEST.ALTLINUX (arcfour-hmac)
   2 cifs/ws1@TEST.ALTLINUX (des-cbc-md5)
   2 cifs/ws1@TEST.ALTLINUX (des-cbc-crc)

То есть краткое имя хоста и домен

Оффлайн ApB

  • Завсегдатай
  • *
  • Сообщений: 412
Re: Файл-сервр с авторизацией на sambadc
« Ответ #7 : 24.04.2020 19:55:59 »
Для проверки проделанного и наличия ошибок в процессе установки - откати поднятый хост до момента установки.

На домене создал пользователя и привязал к нему SPN (предварительно удалив с пользователя extfs все привязки

samba-tool spn add cifs/extfs.domain.zn extfs

На текущий момент на нём одна привязка.

На файл-сервере (aka клиент домена, extfs) доустановил:

apt-get install task-auth-ad-winbind samba

Сделал:

Синхронизировал время:
net time set -S dc.domain.zone

Ввел в домен:
system-auth write ad domain.zn extfs domain 'admnstrtr' 'megaPass'

Проверка ввода в домен

getent passwd login.io

net ads info

net ads testjoin

После чего иду на домен Samba DC и там,

samba-tool domain exportkeytab /tmp/extfs.domain.zn.keytab - -principal=cifs/extfs.domain.zn
Потом копирую на вводимый в домен хост:
scp /tmp/dc.domain.zn.keytab  user@extfs.domain.zn:/home/user
Теперь ключ лежит на хосте extfs

Если ключ проверить на sambaDC, то получим:

[root@dc samba]# klist -ke /tmp/extfs.domain.zn.keytab
Keytab name: FILE:/tmp/extfs.domain.zn.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   3 cifs/extfs.domain.zn@DOMAIN.ZN (arcfour-hmac)
   3 cifs/extfs.domain.zn@DOMAIN.ZN (des-cbc-md5)
   3 cifs/extfs.domain.zn@DOMAIN.ZN (des-cbc-crc)
Устанавливаем krb5-kadmin на extfs

Поправил файл /etc/krb5.keytab с помощью содержимого extfs.domain.zn.keyta

Дописал конфиг smb.conf

cat /etc/samba/smb.conf
[global]
security = ads
realm = DOMAIN.ZN
workgroup = DOMAIN
netbios name = EXTFS
template shell = /bin/bash
kerberos method = system keytab
wins support = no

        idmap config * : range = 10000-20000000
        idmap config * : backend = tdb
; encrypt passwords = true
; dns proxy = no
; socket options = TCP_NODELAY
; domain master = no
; local master = no
; preferred master = no
; os level = 0
; domain logons = no
; load printers = no
; show add printer wizard = no
; printcap name = /dev/null
; disable spoolss = yes



Если пытаюсь подключиться к шарам файл-сервера с помощью openvpn (подключаясь к сети компом не входящим в домен) то получаю сообщение о неправильно введенных логине и пароле.

Если подключаюсь к шарам с помощью openvpn, расположенным на хосте с sambaDC - реакция на доступ к шарам ожидаемая (доступность и недоступность директорий для различных учётных записей в соответствии с smb.conf).
« Последнее редактирование: 26.04.2020 01:42:26 от ApB »

Оффлайн ApB

  • Завсегдатай
  • *
  • Сообщений: 412
Re: Файл-сервр с авторизацией на sambadc
« Ответ #8 : 26.04.2020 01:41:11 »
Что происходт при авторизации из вне:


Auth: [SMB2,(null)] user [DOMAIN]\[login.io] at [Вс, 26 апр 2020 01:22:20.134831 MSK] with [NTLMv2] status [NT_STATUS_NO_LOGON_SERVERS] workstation [NB0028] remote host [ipv4:8.0.0.14:48081] mapped to [DOMAIN]\[familia.io]. local host [ipv4:10.0.0.14:445]
  {"timestamp": "2020-04-26T01:22:20.134942+0300", "type": "Authentication", "Authentication": {"netlogonTrustAccountSid": null, "becameSid": null, "remoteAddress": "ipv4:8.0.0.14:48081", "version": {"major": 1, "minor": 0}, "mappedDomain": "DOMAIN", "netlogonTrustAccount": null, "serviceDescription": "SMB2", "mappedAccount": "familia.io", "status": "NT_STATUS_NO_LOGON_SERVERS", "localAddress": "ipv4:10.0.0.14:445", "clientDomain": "DOMAIN", "authDescription": null, "clientAccount": "familia.io", "workstation": "NB0028", "becameAccount": null, "becameDomain": null, "netlogonComputer": null, "netlogonNegotiateFlags": "0x00000000", "netlogonSecureChannelType": 0, "passwordType": "NTLMv2", "duration": 70981}}
[2020/04/26 01:22:20.135009,  5] ../source3/auth/auth_ntlmssp.c:196(auth3_check_password)
  Checking NTLMSSP password for DOMAIN\familia.io failed: NT_STATUS_NO_LOGON_SERVERS, authoritative=1
[2020/04/26 01:22:20.135026,  5] ../auth/ntlmssp/ntlmssp_server.c:386(ntlmssp_server_auth_send)
  ntlmssp_server_auth_send: Checking NTLMSSP password for DOMAIN\familia.io failed: NT_STATUS_NO_LOGON_SERVERS
[2020/04/26 01:22:20.135047,  4] ../source3/smbd/sec_ctx.c:438(pop_sec_ctx)

Тут же авторизацию прохожу на этом же хосте с машины, являющейся членом домена - все ок.

Если авторизуюсь из вне на контроллере и пытаюсь получить доступ к его шарам - всё ок.

Этот хост к которому я подключаюсь, считает, что должен сам быть logon-сервером, и не обнаруживая такую возможность у себя - отказывает мне в авторизации.

Но почему?

« Последнее редактирование: 26.04.2020 01:52:13 от ApB »