Usando o LDAP para autenticação, como posso desabilitar / desabilitar com segurança uma conta sem excluí-la?

6

Usamos o LDAP para autenticação de milhares de usuários. A principal tática que estamos empregando para fazer com que um usuário não consiga efetuar login, sem remover sua conta, é alterar o atributo LDAP "loginShell" para algo como "None" ou "NA", em oposição a "/ bin / bash". O que isto faz é no momento da tentativa de login lançar o usuário "Permissão negada". Não tenho certeza se essa configuração com o LDAP e o "loginShell" é um padrão unix ou específico apenas para nosso ambiente aqui.

Minha pergunta é: essa é uma medida suficiente para desabilitar uma conta, tornando o usuário incapaz de fazer login? Há algum furo ou solução alternativa na qual um usuário ainda possa efetuar login? Existem outras medidas que podemos tomar para desativar uma conta?

    
por CptSupermrkt 04.02.2014 / 16:50

1 resposta

3

Mudar o shell do usuário "definitivamente" muda o que é executado se ele tentar efetuar login e iniciar um shell. Por si só não invalida o acesso. Assim, alguém pode executar ssh host -t /bin/sh para executar um comando ou ainda conseguir fazer login via ftp ou um aplicativo da web usando este repositório.

Você pode fazer isso funcionar, no entanto, verificando um shell de login válido antes de permitir o acesso. Você poderia fazer isso com um filtro LDAP. Ou, na maioria dos sistemas Linux (e várias outras variantes UNIX ativadas para PAM), você poderia usar algo como pam_shells, que verifica se o shell do usuário está listado em / etc / shells antes de permitir o acesso.

Tradicionalmente, o acesso de login baseado em shell é feito configurando o shell como / bin / false ou configurando-o como / bin / nologin (se existir). Usar pam_shells ou um filtro LDAP renderiza essas soluções "principalmente" sem sentido. No entanto, eu gosto de colocar / bin / true em / etc / shells para que eu possa desencorajar o acesso ao shell para alguns usuários, permitindo-lhes entrar com algo como scp; Eu então coloco / bin / false em para usuários que não devem obter nenhum desses, e uso pam_shells nos serviços onde eu quero usar o shell para mudar as coisas.

Na maioria das vezes, com o LDAP, você pode fornecer um atributo que controla o acesso. Com o Linux pam_ldap, a opção "pam_check_service_attr" permite que você liste serviços de pam específicos aos quais esse usuário pode se autenticar (usando o atributo "authorizedService"). Há também um atributo de acesso baseado em host.

Mas, na verdade, a resposta à sua pergunta depende muito dos recursos do software com o qual você está se conectando ao LDAP. :)

    
por 25.02.2014 / 22:49