Boas praticas de proteções e firewall no seu server DEBIAN

Criada por Danilo Tomich, Modificado em Sex, 9 Ago na (o) 2:36 PM por Danilo Tomich


Primeiro alteramos a porta padrão!

nano /etc/ssh/sshd.conf

Altere:
Port = Mude a porta padrão 22 para outra qualquer. 
No exemplo vamos alterar para 65002
LoginGraceTime = Quantos segundos vai ter para digitar a senha


Instale um sistema de log.

apt install rsyslog


Instalação fail2ban e nftables

Fail2Ban é uma estrutura de software de prevenção de intrusões que protege os servidores contra ataques de força bruta. Ele opera monitorando arquivos de logs, sendo o mais comum seu uso para bloquear endereços IPs que podem pertencer à hosts que estão tentando violar a segurança do seu servidor.
nftables é um firewall baseado no iptables que agora no Debian 11 já vem instalado por padrão substituindo o antigo iptables.

apt install fail2ban


### Veja o funcionamento:

fail2ban-client status


Por padrão, com o fail2ban funcionando, se alguém errar a senhapro5 vezes, vai ter seu ip bloqueado por 10 minutos.
Caso queira alterar as configurações:

nano /etc/fail2ban/jail.conf



###Ajuste o fail2ban para a porta do SSH que você definiu no início.
No exemplo para 65002

nano /etc/fail2ban/jail.conf

Localize com ctrl + W e digite sshd



###Ajustando as regras de bloqueio com método route:

Ele vai colocar em uma blackhole o ip que esta tentando acessar e ou atacar.
Pode pegar esse ip e adicionar em sua borda - firewall para ja matar também esse acesso na raiz.

Altere:

nano /etc/fail2ban/jail.conf

Localize banaction e banaction_allports e altere para route: 


Ajuste agora para opção de blackhole

nano /etc/fail2ban/action.d/route.conf


Reinicie:

systemctl restart fail2ban


###Para visualizar seu firewall nftables:

ip route list
ip -6 route list


Exemplo de um ip bloqueado depois de muito tentar acesso com senha invalido.

fail2ban-client status


Repare que temos um ip na blackhole com final 22 bloqueado.


Para remover:

fail2ban-client set sshd unbanip 200.200.200.200

Exemplo de script para remover todos os IPs banidos uma a um. 

#!/bin/bash
BANIDOS=`fail2ban-client status bind9 | grep "Banned IP list" | awk '{$1=$2=$3=$4=$5=""; print $0}'`
IPS=$(echo $BANIDOS | tr " " "\n")
for IP in $IPS
 do
  #echo "Removendo: ${IP}"
  fail2ban-client set bind9 unbanip ${IP} ;
  #ip route del ${IP}
done

Se desejar adicionar algum prefixo a uma lista branca, você pode editar: 

nano /etc/fail2ban/jail.conf

Localize ignoreip, descomente a linha (remova o # da frete) e adicione os prefixo que deseja ignorar, para não cair bloqueio.

1
ignoreip = 127.0.0.1/8 ::1 200.200.200.0/22 2000:2000::/32

Reinicie o serviço

systemctl restart fail2ban

Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo