A lógica de autenticação geralmente é tratada pelo PAM atualmente. Meu palpite é que você deve ser capaz de configurar isso nos arquivos de configuração do PAM (no meu caso, em /etc/pam.d
).
A lógica de autenticação comum é armazenada em common-auth
. No seu caso, acho que você deveria ter algo assim:
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
... ou talvez algo um pouco mais simples, como:
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_ldap.so use_first_pass
... dependendo se o LDAP é a primeira ou segunda fonte em comparação com a autenticação padrão do UNIX (considerando que ela também está envolvida).
Agora, se você quiser desabilitar a autenticação LDAP em uma máquina, ou negar o acesso a usuários autenticados por LDAP, tudo o que você precisa fazer é remover essa fonte da configuração do PAM e confiar Apenas autenticação do UNIX:
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth requisite pam_deny.so
auth required pam_permit.so
- Quando
pam_unix.so
for bem-sucedido, ignore 1 elemento do restante da cadeia (pam_deny.so
) e avalie o próximo (pam_permit.so
). Isso significa que, quando a autenticação do UNIX falha, o usuário é lançado empam_deny.so
, o que resulta em uma falha de autenticação. Quando é bem-sucedido, chega apam_permit.so
e recebe acesso ao sistema. - O LDAP não está envolvido aqui, o que significa que qualquer usuário que não esteja armazenado em
/etc/passwd
não poderá acessar o sistema.
Agora, se você quiser bloquear especificamente os usuários do LDAP ...
auth [success=die] pam_ldap.so
auth sufficient pam_unix.so
- Quando
pam_ldap.so
for bem-sucedido, retorne um código de falha e encerre a cadeia. Se falhar,pam_unix.so
é suficiente para acessar o sistema. - Isso interromperá todas as autenticações do PAM sempre que as credenciais do LDAP coincidirem. Usuários do UNIX ainda podem acessar o sistema.
Claro, existem muitas outras maneiras de configurar o PAM, e algumas são provavelmente melhores / mais eficientes do que aquelas que acabei de dar. Para mais informações sobre isso, dê uma olhada em esta página . Apenas uma observação: antes de começar a jogar com a configuração do PAM, verifique se você tem um terminal root
em segurança em algum lugar. Se você bagunçar a lógica de autenticação, ficará mais do que feliz em acessar /etc/pam.d
novamente e reverter suas alterações :)
Outra observação: enquanto o PAM lida com autenticação (e algumas outras coisas), a resolução de nomes é tratada pelo NSS ( Name Service Switch ), cuja configuração pode ser encontrada em /etc/nsswitch.conf
. Se você deixar o LDAP nesse arquivo, o sistema ainda saberá sobre esses usuários LDAP, mas não permitirá que eles entrem. Basicamente, ele permite que o sistema combine UIDs com nomes, por exemplo, quando você está listando o conteúdo de um arquivo LDAP. diretório ( ls -l
) e obtendo os proprietários dos arquivos.
Você também pode remover essa fonte de nome LDAP editando a configuração do NSS, mas eu não a recomendaria se seus usuários realmente possuíssem arquivos disponíveis na máquina.