Gostaria de saber como posso (e se é possível) criar uma autenticação dinâmica para um usuário no linux.
O servidor alteraria a senha do usuário periodicamente e o usuário usaria um programa (como um token) para recuperar e inserir a senha correta.
Responder1
Não é exatamente o que você está procurando, mas vi o OTPW usado para tais cenários. É um pacote completo que se integra a um sistema Linux através de módulos PAM.
excerto
O pacote OTPW consiste no gerador de senha única
otpw-gen
mais duas rotinas de verificaçãootpw_prepare()
eotpw_verify()
que pode ser facilmente adicionado a programas comologin
ouftpd
em sistemas POSIX. Para plataformas que suportam a interface Pluggable Authentication Method (PAM), um wrapper adequado também está incluído. O software de login estendido dessa forma permitirá autenticação de usuário razoavelmente segura em linhas de rede inseguras. O usuário carrega uma lista de senhas em papel. O esquema foi projetado para ser robusto contra roubo de lista de papéis e ataques de corrida pela última carta. Os valores de hash criptográfico das senhas de uso único são armazenados para verificação no diretório inicial do usuário.
No seu caso, você desejará seguir as instruções daquela página detalhando a instalação do PAM.
excerto
Se o seu sistema suportar Módulos de Autenticação Plugáveis [Mor01,XSSO], então simplesmente compile a biblioteca compartilhada
pam_otpw.so
e copie-a para o diretório no qual residem outros módulos PAM (geralmente no Linux/lib/security/
). Em seguida, edite o arquivo de configuração do PAM para o aplicativo no qual deseja usar o OTPW, conforme descrito no Guia do administrador do sistema PAM. Opam_otpw.so
fornece um componente de autenticação e de sessão. O componente de autenticação solicita e verifica uma senha de uso único, o componente de sessão imprime após cada login bem-sucedido um lembrete de quantas senhas não utilizadas você ainda tem.Para usar ambos os componentes ao fazer login em seu sistema via Secure Shell, talvez seja necessário adicionar
/etc/pam.d/sshd
as linhasauth required pam_otpw.so session optional pam_otpw.so
Com o OpenSSH 3.4, por exemplo, você precisa ter certeza de que sua versão possui suporte PAM compilado e você terá que adicionar
/etc/ssh/sshd_config
as linhasUsePrivilegeSeparation no PAMAuthenticationViaKbdInt yes
Para forçar o OpenSSH a usar a autenticação PAM (em vez de seus próprios métodos baseados em host ou de chave pública, que normalmente ele tenta primeiro), use
“ssh -o PreferredAuthentications=keyboard-interactive”
.