Sou um novo administrador de sistema em uma organização que procura entender o fluxo do processo de autenticação em relação a como o NSS, o PAM e o WINBIND trabalham juntos. Temos tido problemas relacionados ao winbind e gostaríamos de tentar melhorar nossa configuração.
Aqui estão alguns arquivos de configuração principais. Note que eu apenas copiei pequenas partes por uma questão de brevidade.
/ etc / ssh / sshd_config
UsePAM yes
/etc/nsswitch.conf
passwd: files ldap winbind
shadow: files ldap winbind
group: files ldap winbind
services: files ldap
/etc/pam.d/ssh
auth required pam_env.so
auth sufficient pam_winbind.so
auth sufficient pam_krb5.so
auth sufficient pam_unix.so nullok
auth required pam_deny.so
Como exemplo, digamos que eu tente o SSH em um sistema Linux usando uma conta que esteja em um domínio do AD. O sistema Linux está usando o winbind para fazer interface com o AD.
Abaixo está o fluxo de como eu acho que isso funcionaria:
Onde o NSS se encaixa nesse processo? Eu estou tendo dificuldade em entender o que o NSS realmente faz. Eu pensei que era um sistema que informa o SO aproveita para procurar certos "nomes". Por exemplo, se estiver procurando por uma conta de usuário (usando o arquivo nsswitch.conf acima), ele primeiro examinará os "arquivos" locais. Se as informações da conta não puderem ser encontradas lá, ele procurará um servidor "ldap" e, finalmente, "winbind".
Mas não é isso que o PAM está fazendo?
O PAM está utilizando a biblioteca 'pam_winbind.so' para autenticar com o que o controlador de domínio já está configurado para winbind. Por que precisamos do "winbind" listado no NSS? Talvez seja para serviços que não usam o PAM? Geralmente é um ou outro?
Qualquer transferência de conhecimento aqui seria muito apreciada!