Como se altera o atraso que ocorre após a inserção de uma senha incorreta?
32
Depois de inserir uma senha incorreta em um prompt de login, há um atraso de aproximadamente 3 segundos. Como posso mudar isso em um sistema Linux com PAM?
Tenho a necessidade de um atraso de uma perspectiva de segurança, mas o atraso padrão é muito chato
Mike Pennington
3
Isso tem sido interessante; talvez eu escreva um módulo que permita N tentativas sem atraso, seguido de qualquer número de tentativas com um longo atraso.
Shawn J. Goff
1
Em vez de um novo módulo (sugerido no meu comentário anterior), usei pam_unixcom a nodelayopção e pam_tally2com deny=5 unlock_time=15; isso permite 5 tentativas imediatas, mas nega o acesso (mesmo com uma senha bem-sucedida) por 15 segundos. Ainda pretendo tentar escrever o modelo descrito, mas agora é um projeto em segundo plano, porque isso não seria adequado se o seu acesso principal ao sistema fosse baseado em rede, pois torna um ataque do DOS trivial.
Shawn J. Goff
1
se você estiver preocupado com um DoS de rede devido a tempos limite, use fail2ban ... de fato, use-o mesmo se achar que está seguro :-). eu uso duas vezes dia ban
Mike Pennington
Respostas:
21
Presumo que você esteja usando Linux e pam. O atraso é provavelmente causado por pam_faildelay.so. Verifique sua configuração de pam /etc/pam.dusando pam_faildelay, por exemplo:
# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth optional pam_faildelay.so delay=3000000
Para alterar a hora, ajuste o parâmetro de atraso. Se você quiser se livrar do atraso, pode excluir / comentar a linha completa.
Outra fonte para o atraso pode ser pam_unix.so. Para desativar o atraso causado pelo pam_unix.soacréscimo do nodelayparâmetro e, opcionalmente, adicionar uma chamada de linha pam_faildelay.sopara adicionar um atraso (variável), por exemplo:
Não há menção de atraso em nenhum lugar /etc/pam.d/*. A coisa mais próxima que vejo é pam_tally.soque permite o bloqueio após algumas tentativas. Mas eu tenho n /etc/login.defs, que pode ser o que eu preciso.
Shawn J. Goff
@ ShawnJ.Goff pam_tally.sonão causa um atraso tanto quanto eu sei. Outra fonte para o dealy pode ser pam_unix.so- você pode desativá-lo com a nodelayopção - veja linux.die.net/man/8/pam_unix para mais detalhes
Ulrich Dangel
1
Adicionar a nodelayopção pam_unix.soe adicionar uma nova entrada pam_faildelay.so delay=$some_numberpermite definir o que eu quiser. Obrigado!
Shawn J. Goff
2
Ao executar o fedora 23, tive que desativar o pam_unix.soatraso e começar a usar o pam_faildelay.soque o @ ShawnJ.Goff diz. No entanto, a maioria das pam.dconfigurações tem " Este arquivo é gerado automaticamente. As alterações do usuário serão destruídas na próxima vez que o authconfig for executado. " Então, onde posso configurar permanentemente o atraso?
Jozxyqk
11
Você precisa passar o nodelayparâmetro para o authpam_unix.so.
Dependendo de como você está se autenticando, o local em que você precisa definir o parâmetro varia. No entanto, a maioria das distrubtions do Linux tem algo parecido com o /etc/pam.d/system-authque está incluído em todos os arquivos diferentes.
Assim, por exemplo, /etc/pam.d/system-authvocê pode ter uma linha parecida com esta:
O pam_unix.somódulo é o que executa a autenticação contra /etc/passwde /etc/shadow. Se você estiver usando LDAP ou algum outro backend senha, você provavelmente ainda deve ser a criação nodelaydo pam_unix.soque é o que controla o alerta (quando pam_unix.sonão auth, que normalmente só passa a senha que obteve para o próximo módulo).
Você pode ler mais sobre pam_unix.sofazendoman pam_unix
pam_unix
com anodelay
opção epam_tally2
comdeny=5 unlock_time=15
; isso permite 5 tentativas imediatas, mas nega o acesso (mesmo com uma senha bem-sucedida) por 15 segundos. Ainda pretendo tentar escrever o modelo descrito, mas agora é um projeto em segundo plano, porque isso não seria adequado se o seu acesso principal ao sistema fosse baseado em rede, pois torna um ataque do DOS trivial.Respostas:
Presumo que você esteja usando Linux e pam. O atraso é provavelmente causado por
pam_faildelay.so
. Verifique sua configuração de pam/etc/pam.d
usandopam_faildelay
, por exemplo:Para alterar a hora, ajuste o parâmetro de atraso. Se você quiser se livrar do atraso, pode excluir / comentar a linha completa.
Outra fonte para o atraso pode ser
pam_unix.so
. Para desativar o atraso causado pelopam_unix.so
acréscimo donodelay
parâmetro e, opcionalmente, adicionar uma chamada de linhapam_faildelay.so
para adicionar um atraso (variável), por exemplo:fonte
/etc/pam.d/*
. A coisa mais próxima que vejo épam_tally.so
que permite o bloqueio após algumas tentativas. Mas eu tenho n/etc/login.defs
, que pode ser o que eu preciso.pam_tally.so
não causa um atraso tanto quanto eu sei. Outra fonte para o dealy pode serpam_unix.so
- você pode desativá-lo com anodelay
opção - veja linux.die.net/man/8/pam_unix para mais detalhesnodelay
opçãopam_unix.so
e adicionar uma nova entradapam_faildelay.so delay=$some_number
permite definir o que eu quiser. Obrigado!pam_unix.so
atraso e começar a usar opam_faildelay.so
que o @ ShawnJ.Goff diz. No entanto, a maioria daspam.d
configurações tem " Este arquivo é gerado automaticamente. As alterações do usuário serão destruídas na próxima vez que o authconfig for executado. " Então, onde posso configurar permanentemente o atraso?Você precisa passar o
nodelay
parâmetro para oauth
pam_unix.so
.Dependendo de como você está se autenticando, o local em que você precisa definir o parâmetro varia. No entanto, a maioria das distrubtions do Linux tem algo parecido com o
/etc/pam.d/system-auth
que está incluído em todos os arquivos diferentes.Assim, por exemplo,
/etc/pam.d/system-auth
você pode ter uma linha parecida com esta:Isso deve ser alterado para:
O
pam_unix.so
módulo é o que executa a autenticação contra/etc/passwd
e/etc/shadow
. Se você estiver usando LDAP ou algum outro backend senha, você provavelmente ainda deve ser a criaçãonodelay
dopam_unix.so
que é o que controla o alerta (quandopam_unix.so
não auth, que normalmente só passa a senha que obteve para o próximo módulo).Você pode ler mais sobre
pam_unix.so
fazendoman pam_unix
fonte
system-auth
não existia; que era/etc/common-auth
. Obrigado!