Como banir IPs tentando logar como root com ssh

4

Já bloqueei o login como root com ssh, então sei que qualquer tentativa de fazer isso é mal-intencionada. Eu sei que eles não terão sucesso (o sshd não permitirá), mas eu gostaria de banir o IP em questão imediatamente. Como eu faria isso?

Estou executando o Gentoo Linux e já tenho o fail2ban em execução. Eu não quero banir todos por uma falha na tentativa de registro, então simplesmente configurar a tentativa de fail2ban para 1 não é uma opção. Raiz é a única conta em que desejo aplicar essa proibição imediata.

    
por Vuoristoneuvos 06.06.2012 / 14:03

2 respostas

6

Eu configurei duas regras diferentes do Fail2Ban:

  1. Se eles tentarem um nome de usuário inválido, serão banidos na primeira tentativa, permanentemente. Eu não tenho muitas pessoas ficando assim e nenhuma delas foi banida dessa maneira; mas pode ser um problema de suporte se você tiver muitas pessoas se conectando. A raiz não é um login ssh válido em meus sistemas.

    Eu estou em um sistema FreeBSD, então você pode ter que modificar esta regra um toque. Crie um arquivo ssh-invaliduser.local no diretório filter.d:

    failregex = ^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from <HOST>\s*$
    

    Defina as opções para essa regra como de costume no arquivo jail.local .

  2. A segunda regra bloqueia tentativas que têm a senha errada 10 vezes por 10 minutos. Ninguém vai invadir a velocidade média de 1 senha por minuto.

por 06.06.2012 / 20:57
0

Se você estiver usando a saída de log padrão do sshd e seu sistema estiver executando o tcp wrapper tcpd , tente o seguinte:

Primeiro adicione esta linha em /etc/hosts.deny :

sshd: /tmp/root_ban.list

Em seguida, planeje o cron para executar o seguinte comando:

awk '/invalid user root from/{print $13}' /var/log/ssh_auth.log | sort -u > /tmp/root_ban.list

Se a saída da parte awk do comando não funcionar, ajuste a parte da condição: root do usuário inválido de para corresponder aos logs do sshd. Você também pode precisar alterar o número do campo capturado pelo awk. Eu meus logs, o ip está na 13ª posição ($ 13).

E, para evitar bloqueios, você pode adicionar ips confiáveis no arquivo /etc/hosts.allow:

sshd: 123.123.123.123 222.222.222.222
    
por 06.06.2012 / 21:01

Tags