Estou recebendo o seguinte erro ao tentar navegar em um compartilhamento do Samba:
session setup failed: NT_STATUS_NO_IMPERSONATION_TOKEN
Minha configuração do Samba para vincular um servidor independente smbd
à configuração MIT Kerberos e OpenLDAP costumava funcionar (definitivamente funcionava com o Ubuntu 20.04, não me lembro se alguma vez funcionou com o Ubuntu 22.04):
<smb.conf>
[global]
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = EXAMPLE
# The 'auto' setting here configures Samba based on the value of the
# 'security' setting.
server role = auto
# Configure Samba to call out to Kerberos for all authentication. Because we're
# not also configuring a passdb, Samba will look to the system accounts for all
# authorization info (e.g. UIDs, groups, etc.). This setup was taken from
# https://help.ubuntu.com/lts/serverguide/samba-ldap.html.
security = ads
realm = EXAMPLE.COM
kerberos method = dedicated keytab
dedicated keytab file = /etc/samba/smbd.keytab
idmap config * : backend = tdb
idmap config * : range = 20001-30000
idmap config {{ domain | upper }} : backend = rfc2307
idmap config {{ domain | upper }} : range = 10000-20000
Eu poderia então pegar um ticket Kerberos e navegar e/ou montar compartilhamentos Samba, por exemplo:
$ kinit
Password for [email protected]:
$ /usr/bin/smbclient //neatbox.example.com/share --use-kerberos=required --no-pass --directory somepath --command ls
. D 0 Fri May 6 07:10:08 2022
.. D 0 Fri May 6 07:10:08 2022
stuff D 0 Fri May 6 07:10:08 2022
otherstuff D 0 Fri May 6 07:10:13 2022
957134040 blocks of size 1024. 620537476 blocks available
Há muito tempo, porém, isso parou de funcionar (há um ou dois anos; só não tive tempo de sentar e mexer nisso até agora; ser pai é, tipo, muito, sabe?). Agora eu entendo isso:
$ /usr/bin/smbclient //neatbox.example.com/share --use-kerberos=required --no-pass --directory somepath --command ls
session setup failed: NT_STATUS_NO_IMPERSONATION_TOKEN
Passei algumas noites pesquisando agora e acho que algo quebrou ou foi removido no Samba 4.14. Algo sobre PACs, que aparentemente fazem parte dos tickets do Kerberos... de alguma forma? [1, 2, 3] Não sei, não sou especialista em Kerberos; Eu apenas misturo as coisas no teclado até que funcionem, como a maioria das pessoas.
Então aqui está minha pergunta principal: o Samba suporta autenticação via MIT Kerberos e OpenLDAP como costumava fazer, ou agora está obsoleto/sem suporte?
Miscelânea
O smbd
log sempre contém isto, logo após iniciar/reiniciar:
$ sudo systemctl status smbd
...
Dec 24 20:53:29 eddings systemd[1]: Starting Samba SMB Daemon...
Dec 24 20:53:29 eddings smbd[782101]: [2023/12/24 20:53:29.593145, 0] ../../source3/smbd/server.c:1734(main)
Dec 24 20:53:29 eddings smbd[782101]: smbd version 4.15.13-Ubuntu started.
Dec 24 20:53:29 eddings smbd[782101]: Copyright Andrew Tridgell and the Samba Team 1992-2021
Dec 24 20:53:29 eddings systemd[1]: Started Samba SMB Daemon.
Dec 24 20:53:30 eddings smbd[782101]: [2023/12/24 20:53:30.244701, 0] ../../source3/printing/nt_printing.c:233(nt_printing_init)
Dec 24 20:53:30 eddings smbd[782101]: nt_printing_init: error checking published printers: WERR_ACCESS_DENIED
Às vezes, de forma não reproduzível, também acaba com vários destes erros:
Dec 24 11:06:27 eddings smbd[766136]: [2023/12/24 11:06:27.972690, 0] ../../source3/auth/auth_winbind.c:120(check_winbind_security)
Dec 24 11:06:27 eddings smbd[766136]: check_winbind_security: winbindd not running - but required as domain member: NT_STATUS_NO_LOGON_SERVERS
Não tenho certeza se são relevantes, mas as smbclient
falhas não parecem desencadeá-las, então... provavelmente não estão relacionadas.
[1] https://bugzilla.samba.org/show_bug.cgi?id=14901 (tentei as configurações username map script
e local nt token from
lá e não funcionou)