Como o bloqueio de portas específicas com fail2ban se compara ao bloqueio de todas as portas?

Como o bloqueio de portas específicas com fail2ban se compara ao bloqueio de todas as portas?

Estou configurando o fail2ban para minhas instâncias do EC2, cada uma com serviços diferentes em execução. Portanto, estou configurando as jails especificamente para cada serviço. Tenho duas perguntas (para as quais não consegui encontrar resposta em outro lugar):

  1. Se um IP for bloqueado pelo fail2ban por falha na autenticação em uma porta, esse usuário ainda poderá entrar por outras portas abertas?
  2. Como o bloqueio de portas específicas se compara ao bloqueio de todas as portas usando a configuração mencionada aqui? Não seria mais seguro bloquear todas as portas abertas, já que não quero que o hacker entre?

Responder1

(Supondo que o sistema operacional seja Linux)

fail2bané uma ferramenta bem feita, abençoada com um alto nível de configuração.

No Linux Ubuntu, a configuração está em/etc/fail2ban

Questão 1

A menos que você altere a configuração, apenas as portas mencionadas jail.confpara o serviço específico serão bloqueadas.

Questão 2

Você também pode bloquear todas as portas. Depende do nível de segurança que você deseja, mas bloquear todas as portas pode ter desvantagens.

Pessoalmente, prefiro bloquear apenas a porta que foi abusada. Porque

  • se outras portas também forem abusadas (e se forem declaradas em jail.conf), elas também serão bloqueadas
  • alguns endereços IP são compartilhados por uma empresa inteira ou por muitas pessoas; então, ao bloquear todas as portas por abuso de ssh, você impedirá que todos nesse endereço acessem, http/spor exemplo
  • você também pode ser afetado por um bloqueio total. Por exemplo, você comete alguns erros de senha usando ssh, e outra porta que permitiria um acesso diferente, do provedor por exemplo, não estará acessível.

Para bloquear mais ou todas as portas, você pode modificar o jail.confarquivo.

Alguns dos atributos padrão são, (in [DEFAULT])

# "bantime" is the number of seconds that a host is banned.
bantime  = 10m
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 10m
# "maxretry" is the number of failures before a host get banned.
maxretry = 5

# Ports to be banned (Usually should be overridden in a particular jail)
port = 0:65535

ou seja, todas as portas.

Por [sshd]exemplo (e todos os serviços) porté redefinido

[sshd]
port    = ssh

Você poderia simplesmente comentar a portlinha para voltar aos padrões, mas eu adicionaria um comentário e uma nova linha de porta para facilitar a manutenção (outras pessoas/você em 3 anos)

[sshd]
# 25 Aug 2020 Rohit, block all ports
#port    = ssh
port = 0:65535

Alterando o padrão

Você verá no action.ddiretório a lista de ações possíveis. O padrão em jail.conf,

banaction = iptables-multiport

que também pode ser alterado para

banaction = iptables-allports

isso afetaria todos os serviços que não fossem redefinidos banaction.

Reiniciando o fail2ban

Em seguida, reinicie o serviço, para systemd

systemctl restart fail2ban.service

ou

service fail2ban restart

(Para sua informação, o filter.ddiretório lista para cada serviço da maneirafail2bandetecta uma tentativa de intrusão)

Verifique também os comentários abaixo que podem fornecer informações valiosas.

informação relacionada