Eu tenho uma autenticação Kerberos funcional testada kinit
no Debian Buster. Agora eu tento usá-lo com PAM para login com Kerberos e instalei libpam-krb5
e configurei com pam-auth-update
. Mas a documentação em /usr/share/doc/libpam-krb5/README.Debian.gz
anotado:
Essa configuração ainda exigirá que os usuários sejam listados em /etc/shadow, caso contrário o módulo de conta pam_unix falhará. Normalmente, as contas que devem usar apenas a autenticação Kerberos devem ser criadas com adduser --disabled-password. Se você não quiser que as contas sejam listadas em /etc/shadow (se, por exemplo, você estiver usando alguma outra fonte além de arquivos para sua configuração nsswitch), você pode marcar o módulo de conta pam_krb5 como suficiente em vez de necessário para que o pam_unix não seja executado. Isso significa que você não poderá desabilitar contas localmente.
Não quero que as contas sejam listadas localmente /etc/shadow
novamente, além do banco de dados Kerberos, porque é um trabalho redundante para mim. Eu tentei um login com a configuração padrão e recebo esta falha:
Debian GNU/Linux 10 deb10-base ttyS0
deb10-base login: ingo
Password:
Authentication failure
Em journalctl
encontro para isso:
Oct 06 15:33:08 deb10-base login[374]: pam_krb5(login:auth): user ingo authenticated as [email protected]
Oct 06 15:33:08 deb10-base login[374]: pam_unix(login:account): could not identify user (from getpwnam(ingo))
Oct 06 15:33:08 deb10-base login[374]: Authentication failure
Isso é exatamente esperado da documentação citada acima. Mas não entendo o comentário onde e o que modificar os arquivos de configuração do PAM. Os arquivos de configuração atuais não correspondem à documentação.
Qual entrada em qual arquivo de configuração do PAM eu tenho que modificar de necessário para suficiente ? Há talvez outras coisas para fazer? Se possível, gostaria de preservar as seções de configuração pam-auth-update.
Atualização:
Esqueci de mencionar que iniciei pam-auth-update
e verifiquei as opções:
[*] Kerberos authentication
[*] Unix authentication
[*] Create home directory on login
Tentei desmarcar " Autenticação Unix ", mas isso torna o login inutilizável. Não consegui fazer login novamente, nem como root. Eu tive que me recuperar de um instantâneo.
Eu posso ver duas opções imperfeitas aqui:
/etc/pam.d/common-account
e aceite quepam-auth-update
não tocará mais nele, oudpkg-divert
e modifique/usr/share/pam-configs/krb5
, regenere/etc/pam.d/common-account
e aceite que as atualizações do libpam-krb5 não afetarão/usr/share/pam-configs/krb5
mais.No primeiro caso, mude
required
parasufficient
na linhaNo segundo caso, faça o mesmo no
Account:
parágrafo, o que deverá resultar na alteração acima/etc/pam.d/common-account
após regenerá-lo.Depois de mais algumas pesquisas, descobri que parece ser um problema geral apenas ter autenticação com Kerberos. Você obtém apenas autenticação, mas nenhuma autorização. A autorização neste caso é dada por contas locais com senha desabilitada. Portanto, você precisa gerenciar contas locais adicionais se não fornecer contas de outra fonte.
Com o NSS você pode obter contas de uma fonte remota, em particular de um servidor LDAP. Desta forma o login sempre encontrará uma conta para autorização, seja do servidor LDAP ou do
/etc/passwd
arquivo local, principalmente para contas do sistema como root. Eu só tenho que gerenciar contas em um local no servidor LDAP.Vou apenas configurar um servidor LDAP para contabilidade.