Como bloquear todas as tentativas de login raiz usando denyhosts e ou fail2ban?

8

Atualmente, bloqueio todos os logins do ssh usando root. Mas eu queria ir a milha extra e bloquear o endereço IP do cliente que tentou fazer o login como root. Atualmente tenho denyhosts e fail2ban configuração e trabalho, posso usar denyhosts e ou fail2ban para bloquear os endereços IP daqueles que tentam fazer o login como root?

    
por samwell 13.12.2011 / 19:13

4 respostas

2

Dependendo da sua distribuição, edite /etc/fail2ban/jail.conf Atualize a seção [ssh] para mostrar algo como isto

[ssh]

enabled = true
port    = ssh
filter  = sshd
logpath  = /var/log/auth.log
bantime = 3600
maxretry = 3

Altere os parâmetros conforme necessário. Não bloqueará especificamente a raiz, mas todas as tentativas que falharem. Tenha cuidado com maxretry e bantime . Se você falhar com sua própria senha, enquanto maxtretry estiver definido como baixo, você se bloqueará para o bantime . Reinicie o fail2ban.

Eu não tentaria bloquear o IP para sempre, já que muitas tentativas vêm de IPs dinâmicos que poderiam bloquear alguns usuários legítimos em um momento posterior.

(Algumas distribuições oferecem um arquivo jail.options para suas modificações. Este é o lugar preferido para colocar suas alterações como não deve ser afetado por atualizações sobrescrevendo o conf.)

    
por 14.12.2011 / 12:30
16

Copie este código em um novo arquivo /etc/fail2ban/filter.d/sshd-root.conf:

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

[Definition]

_daemon = sshd

failregex = ^%(__prefix_line)sFailed (?:password|publickey) for root from <HOST>(?: port \d*)?(?: ssh\d*)?$

ignoreregex = 

POR FAVOR, ESTEJA CIENTE de que você pode ter que editar o failregex para identificar com precisão as tentativas de login raiz com falha - use:

fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd-root.conf

para testar se identifica as entradas de registro corretas.

Então você precisa editar seu jail.local para usar o novo filtro - adicione algo como:

[ssh]

enabled  = true
port     = 1:65535
filter   = sshd-root
logpath  = /var/log/auth.log
bantime  = 604800
maxretry = 3

Obviamente, você deve ajustar esses valores de acordo com suas necessidades. As configurações acima eliminarão todos os pacotes de entrada do endereço IP ofensivo após três tentativas de logon como root e liberarão o IP novamente após uma semana.

    
por 11.10.2013 / 09:27
1

Como o /etc/fail2ban/filter.d/sshd.conf padrão já tem um regex para AllowUsers e DenyUsers ...

...
^%(__prefix_line)sUser .+ from <HOST> not allowed because not listed in AllowUsers\s*$
^%(__prefix_line)sUser .+ from <HOST> not allowed because listed in DenyUsers\s*$
...

Os seguintes serão:

  • Permitir conexões de exampleusername de IPs externos
  • E root ou qualquer conexão na rede local (192.168.0. *)

A linha '/ etc / ssh / sshd_config':

AllowUsers exampleusername *@192.168.0.* *@localhost *@127.0.0.1

E em /etc/fail2ban/jail.conf :

ignoreip = 127.0.0.1/8 192.168.0.2/255
...
...
[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 1
findtime = 99999999 
bantime  = 99999999
    
por 14.10.2014 / 19:55
0

Como você bloqueia logins do ssh? / bin / false ou a opção sshd_config DenyUsers?

Não consigo pensar em uma resposta fora da minha cabeça, mas o denyhosts do IIRC analisa o arquivo de log, portanto, apenas veja se você obtém uma entrada com falha no arquivo de log depois que alguém tenta efetuar login para root com ele desativado

    
por 13.12.2011 / 19:22