no openssh, posso especificar um comando a ser executado para cada tentativa de login? [fechadas]

2

Eu recebo muitos ataques de login ssh e quero reduzi-los. Existe alguma maneira eu posso especificar um comando para openssh para executar e verificar o seu valor de retorno e só permitir a tentativa de login se este comando retorna 0?

a razão por trás disso é que eu gostaria de poder ter regras de login mais complexas que eu possa expressar em um script, em vez de usar regras simples baseadas em filewall / ip.

    
por dnagy 23.12.2013 / 19:05

1 resposta

5

Sim, com um openssh suficientemente moderno, há um truque: use o AuthorizedKeysCommand. Esta opção de configuração permite especificar um comando externo para recuperar chaves SSH. Aqui você pode colocar a lógica como recuperar chaves SSH do LDAP, mas também qualquer outra lógica desejada. Contanto que você aceite apenas a autenticação baseada em chave, não retornar nenhuma chave fará com que a autenticação falhe.

Em versões mais antigas do openssh você pode usar o ForceCommand, mas isso é um comando forçado após autenticação, não um comando que é executado antes da autenticação. No entanto, funciona com autenticação baseada em senha e chave.

Se você quiser oferecer suporte à autenticação baseada em senha e desejar se conectar à fase de autenticação, será necessário gravar seu próprio módulo PAM e torná-lo necessário para a autenticação SSH. Essa não é a maneira mais trivial e não é chamada para autenticação baseada em chave.

Se tudo o que você deseja é bloquear endereços IP com muitas falhas de autenticação, o fail2ban também pode ajudá-lo, não exigindo alterações na configuração do SSH.

    
por 23.12.2013 / 19:21