Eu esperava que alguns gurus do PAM / LDAP pudessem me ajudar aqui. Recentemente, configurei um diretório LDAP no Ubuntu Server para manter contas para meus clientes (para uso com sistemas baseados na Web) e para a equipe (que precisará fazer login via SSH).
A autenticação LDAP está funcionando perfeitamente. No entanto eu não pode obter as restrições de conta de trabalho: contas pessoal terá IDs entre 2001
e 2999
e será um membro do ssh-users
grupo que lhes permitam o login para os servidores.
As restrições em questão estão em /etc/ldap.conf
, e são pam_min_uid
, pam_max_uid
e pam_groupdn
.
pam_groupdn
contém o DN completo para o meu ssh-users
grupo. pam_min_uid
= 2000
e pam_max_uid
= 2999
.
Agora, eu consegui fazê-los funcionar adicionando:
account [success=1 default=ignore] pam_ldap.so
acima da pam_unix.so
linha /etc/pam.d/common-account
. No entanto, as contas locais do Unix NÃO podem fazer login: o servidor SSH mata a conexão assim que tenta.
Eu configurei o pam_ldap.so
módulo sufficient
no arquivo acima, mas os usuários inválidos receberão uma mensagem dizendo que não podem fazer login, mas eles os logam de qualquer maneira.
Então, como posso definir essas restrições de conta para usuários LDAP, enquanto continuo permitindo que usuários UNIX efetuem login?
Como você provavelmente pode adivinhar, sou novato no PAM, embora tenha conseguido que o módulo "faça diretórios pessoais automaticamente" funcione :-)
Muito obrigado, Andy
Eu simplesmente usaria
para permitir apenas grupos específicos (para grupos locais e LDAP). Dessa forma, você não precisa especificar nada
ldap.conf
.Se você deseja manter a autorização do seu jeito, não deve filtrar os usuários pelo passe de "conta". Eu acredito que você deveria fazê-lo no passe "auth". Em segundo lugar, como você pode ver, o pam_unix processa contas locais e LDAP (pelo menos na passagem "account"), portanto parece que não há necessidade de pam_ldap.
Edição: Em terceiro lugar, se você insistir em ter coisas no passe de "conta" (que eu acredito que podem ter efeitos colaterais estranhos), sua sequência deve terminar com: ..., "pam_ldap suficiente", "pam_localuser necessário", "pam_unix necessário" . Quero dizer, se você tiver outros módulos, mova-os para pam_ldap - caso contrário, eles serão ignorados nas contas LDAP devido à cláusula "suficiente".
fonte
Apenas para adicionar ao @ andy-shellam, aqui está o meu
common-account
arquivo:fonte