pam_tally2 ou bloqueio de conta pam_faillock com ssh

2

Estou executando o RHEL 6.2. A maioria dos usuários utilizará o SSH para efetuar login usando senhas. Alguns podem ter chaves. Todas as contas são locais.

Eu preciso bloquear os usuários após N logins de senha com falha.

Os exemplos em man pam_tally2 e pam_faillock não bloqueiam um usuário usando ssh out. O exemplo pam_tally2 pode bloquear um telnet (habilitei para testar) login & subsequentemente bloqueará um usuário ssh. O ssh não pode ativá-lo.

/etc/ssh/sshd_config tem:

PasswordAuthentication yes # setting to no doesn't allow login with a password!
UsePAM yes
UseLogin no # setting to yes doesn't allow putty logins

Os exemplos de páginas man devem funcionar em um sistema inalterado.

    
por user150471 20.12.2012 / 21:37

4 respostas

2

Se você habilitar PasswordAuthentication , o daemon SSH manipulará as próprias senhas e não usará o PAM. Você realmente quer desabilitar isso para forçá-lo a usar o PAM:

PasswordAuthentication no
UsePAM yes
ChallengeResponseAuthentication yes

Isso não vai pegar os usuários usando chaves no entanto (embora pessoalmente eu acho que está tudo bem). Se você fizer isso, você provavelmente terá que usar algo como fail2ban que procura falhas de autenticação nos logs e adiciona regras iptables para bloquear tentativas futuras .

    
por 12.02.2013 / 02:18
1

Você precisará adicionar as seguintes linhas a /etc/pam.d/sshd :

auth       required     pam_tally2.so deny=6 onerr=fail unlock_time=1800
account    required     pam_tally2.so

Adicione-os nas linhas 3 e 6, conforme indicado abaixo:

#%PAM-1.0
auth       required     pam_sepermit.so
auth       required     pam_tally2.so deny=6 onerr=fail unlock_time=1800
auth       include      password-auth
account    required     pam_nologin.so
account    required     pam_tally2.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth

Verifique também se UsePAM yes está definido em /etc/ssh/sshd_config

Isso bloqueará um usuário ssh por 30 minutos após seis tentativas de autenticação com falha.

Se seguirmos as Guia oficial de segurança do RHEL 6 , podemos fazer isso sem alterar /etc/pam.d/sshd .

Editamos os dois /etc/pam.d/system-auth e /etc/pam.d/password-auth , substituindo

auth        sufficient     pam_unix.so nullok try_first_pass

com

auth        required       pam_faillock.so preauth silent audit deny=3 unlock_time=600
auth        sufficient     pam_unix.so nullok try_first_pass
auth        [default=die]  pam_faillock.so authfail audit deny=3 unlock_time=600

E, em ambos os arquivos, adicionamos essa linha ao topo da seção "conta":

account     required      pam_faillock.so

Isso fornecerá a funcionalidade de bloqueio de conta para usuários do console, usuários de proteção de tela e assim por diante.

Se você examinar /etc/pam.d/sshd , verá que ele usa password-auth e, portanto, os usuários do ssh terão a mesma funcionalidade de bloqueio.

    
por 05.04.2017 / 20:27
0

Eu tive que editar '/etc/pam.d/sshd'

com

Autenticação obrigatória pam_tally2.so Deny = 5 Unlock_time = 1200 Even_deny_root Root_unlock_time = 10

e funciona agora.

    
por 19.05.2016 / 21:47
0

Discrepância no comportamento de unlock_time em pam_faillock quando comparado com pam_tally. (unlock_time não é derivado de acordo com a última tentativa falhada) Configure pam_faillock em system-auth e password-auth com deny = 3 e unlock_time = 300, Agora tente fazer login com qualquer usuário não root e insira a senha inválida 3 vezes após o qual a conta será bloqueada como esperado, digamos que a hora atual seja 1300 horas A conta será bloqueada e você não poderá fazer login com a senha correta até as 13:05 hs. Se o usuário tentar novamente efetuar login novamente às 13:02, o sistema negará, pois a conta está bloqueada. Para o mesmo cenário, no caso de pam_tally, como o usuário tenta fazer o login às 13:02, o usuário será desbloqueado somente após 13:07 em vez de 13:05. O unlock_time é derivado após uma tentativa falhada e ajustado aqui.

    
por 18.10.2018 / 14:48

Tags