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.