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


8

Atualmente, bloqueio todos os logins ssh usando root. Mas eu queria ir além e bloquear o endereço IP do cliente que tentou fazer login como root. Atualmente tenho denyhosts e fail2ban configurados e funcionando, posso usar denyhosts e / fail2ban para bloquear os endereços IP daqueles que tentam fazer login como root?

Respostas:


2

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

[ssh]

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

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

Eu não tentaria bloquear o IP para sempre, pois muitas tentativas vêm de IPs dinâmicos que podem bloquear alguns usuários legítimos posteriormente.

(Algumas distribuições oferecem um arquivo jail.options para suas modificações. Este é o local preferido para as alterações, pois não deve ser afetado pelas atualizações que substituem o arquivo conf.)


4
boas informações, mas acho que ele queria saber como bloquear todos os logins usando a raiz do usuário ... não consigo ver isso na sua resposta. talvez você tenha esquecido isso.
— Mose

17

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 = 

Lembre-se de que talvez você precise 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 log corretas.

Então você precisa editar o 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 recebidos do endereço IP incorreto após três tentativas de logon como raiz e liberarão o IP novamente após uma semana.


1
Isso realmente merece ser a resposta aceita, uma vez que realmente responde à pergunta.
— peelman

Esta é definitivamente a resposta correta. É melhor desativar os logins raiz na configuração do sshd e definir maxretry como 1 no jail.conf.
— anteatersa

1

Como o padrão /etc/fail2ban/filter.d/sshd.confjá possui uma 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*$
...

O seguinte será:

  • Permitir conexões de exampleusernameIPs externos
  • E rootou 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

0

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

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


2
Eu editei o arquivo de configuração ssh /etc/ssh/sshd_config, e mudei PermitRootLoginde sim para não. Não sei se isso é relevante, mas tenho o rssh instalado para permitir apenas que certos usuários façam login usando sftp, mas não permite ssh.
— Samwell

você verificou os arquivos de log ssh se houve uma falha na tentativa de log do usuário?
— MitziMeow

Sim, percebo que há muitas tentativas falhas de login do usuário por muitos endereços IP diferentes, que não reconheço.
— Samwell

denyhosts então deve funcionar
— MitziMeow
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.