Segurança

Como configurar um IPS (Fail2ban) para proteger de diferentes ataques

Como configurar um IPS (Fail2ban) para proteger de diferentes ataques

IPS ou Intrusion Prevention System é uma tecnologia usada em segurança de rede para examinar o tráfego da rede e prevenir diferentes ataques detectando entradas maliciosas. Além de apenas detectar entradas maliciosas como o Sistema de Detecção de Intrusão faz, ele também impede a rede de ataques maliciosos. Pode impedir a rede de força bruta, DoS (Negação de Serviço), DDoS (Negação de Serviço Distribuída), Exploits, worms, vírus e outros ataques comuns. Os IPS são colocados atrás do firewall e podem enviar alarmes, descartar pacotes maliciosos e bloquear endereços IP ofensivos. Neste tutorial, usaremos Fail2ban, que é um pacote de software de prevenção de intrusão, para adicionar uma camada de segurança contra diferentes ataques de força bruta.

Como funciona o Fail2ban

Fail2ban lê os arquivos de log (e.g. / var / log / apache / error_log) e obtém os IPs ofensivos que estão tentando muitas senhas com falha ou buscando explorações. Basicamente, o Fail2ban atualiza as regras de firewall para bloquear diferentes IPs no servidor. Fail2ban também fornece filtros com os quais podemos usar para um serviço específico (e.g., apache, ssh, etc.).

Instalando Fail2ban

Fail2ban não vem pré-instalado no Ubuntu, portanto, antes de usá-lo, temos que instalá-lo.

[email protegido]: ~ $ sudo apt-get update -y
[email protegido]: ~ $ sudo apt-get install fail2ban

Depois de instalar o Fail2ban, inicie e habilite o serviço Fail2ban usando a linha de comando.

[email protegido]: ~ $ sudo systemctl start fail2ban
[email protegido]: ~ $ sudo systemctl enable fail2ban


Agora verifique o status do serviço fail2ban para confirmar se ele foi iniciado ou não.

[email protegido]: ~ $ sudo systemctl status fail2ban

Configurando Fail2ban para SSH

Podemos configurar o Fail2ban modificando / etc / fail2ban / jail.arquivo conf. Antes de modificá-lo, faça um backup deste arquivo.

[email protegido]: ~ $ sudo cp / etc / fail2ban / jail.conf / etc / fail2ban / jail.local

Agora iremos configurar o Fail2ban para prevenir o serviço sshd de entradas maliciosas. Abra / etc / fail2ban / jail.arquivo local em seu editor favorito.

[email protegido]: ~ $ sudo nano / etc / fail2ban / jail.local

Vou ao [padrão] e insira os parâmetros de configuração em [padrão] seção.

[PADRÃO]
ignoreip = 127.0.0.1/8 192.168.18.10/32
bantime = 300
maxretry = 2
findtime = 600

ignoreip é a lista de máscara cidr, endereço IP ou host DNS separada por um caractere de espaço. Adicione seus IPs confiáveis ​​a esta lista, e esses IPs serão colocados na lista de permissões e não serão bloqueados por fail2ban, mesmo se executarem um ataque de força bruta no servidor.

bantime é a hora em que um IP será bloqueado após uma quantidade específica de tentativas falhadas para o servidor.

maxretria é o número máximo de tentativas com falha após as quais um IP é bloqueado por fail2ban por um determinado período de tempo.

Encontre tempo é a quantidade de tempo durante o qual se um host faz maxretria tentativas falhadas, será bloqueado.

Depois de configurar os parâmetros acima, agora iremos configurar o serviço no qual as regras acima serão aplicadas. Por padrão, o Fail2ban possui filtros predefinidos para diferentes serviços, portanto, não precisamos inserir nenhuma entrada específica para os serviços. Nós apenas habilitamos ou desabilitamos diferentes serviços no arquivo de configuração. Abra / etc / fail2ban / jail.arquivo local em seu editor favorito.

[email protegido]: ~ $ sudo nano / etc / fail2ban / jail.local

Encontre o [sshd] seção no arquivo e insira os seguintes parâmetros na seção.

[sshd]
enable = true
port = ssh
filtro = sshd
logpath = / var / log / auth.registro
maxretry = 3

ativado define se este serviço está sendo protegido por fail2ban ou não. Se habilitado for verdadeiro, o serviço está sendo protegido; caso contrário, não está sendo protegido.

porta define a porta de serviço.

filtro refere-se ao arquivo de configuração que o fail2ban usará. Por padrão, ele usará / etc / fail2ban / filter.d / sshd.arquivo conf para serviço ssh.

caminho de registro define o caminho para os logs, fail2ban monitorará para proteger o serviço de diferentes ataques. Para o serviço ssh, os registros de autenticação podem ser encontrados em / var / log / auth.log, então fail2ban monitorará este arquivo de log e atualizará o firewall detectando tentativas de login malsucedidas.

maxretria define o número de tentativas de login com falha antes de ser bloqueado pelo fail2ban.

Depois de aplicar a configuração acima para fail2ban, reinicie o serviço para salvar as alterações.

[email protegido]: ~ $ sudo systemctl reiniciar fail2ban.serviço
[email protegido]: ~ $ sudo systemctl status fail2ban.serviço

Teste Fail2ban

Configuramos fail2ban para proteger nosso sistema contra ataques de força bruta no serviço ssh. Agora faremos tentativas de login com falha em nosso sistema a partir de outro sistema para verificar se fail2ban está funcionando ou não. Depois de fazer algumas tentativas de login com falha agora, vamos verificar os logs fail2ban.

[email protegido]: ~ $ cat / var / log / fail2ban.registro

Podemos ver que após tentativas de login malsucedidas, o IP foi bloqueado por fail2ban.

Podemos obter uma lista de todos os serviços para os quais fail2ban está habilitado usando o seguinte comando.

[email protegido]: ~ $ sudo fail2ban-client status


A figura acima mostra que habilitamos fail2ban apenas para o serviço sshd. Podemos obter mais informações sobre o serviço sshd especificando o nome do serviço no comando acima.

[email protegido]: ~ $ sudo fail2ban-client status sshd

O Fail2ban desbaniu automaticamente o endereço IP banido após o bantime, mas podemos desbanir qualquer IP a qualquer momento usando a linha de comando. Isso dará mais controle sobre fail2ban. Use o seguinte comando para cancelar o banimento do endereço IP.

[email protegido]: ~ $ sudo fail2ban-client set sshd unbanip 192.168.43.35

Se você tentar cancelar o banimento de um endereço IP que não está bloqueado por fail2ban, ele apenas informará que o IP não está bloqueado.

[email protegido]: ~ $ sudo fail2ban-client set sshd unbanip 192.168.43.35

Conclusão

Para um administrador de sistema ou engenheiro de segurança, é um grande desafio manter a segurança dos servidores. Se o seu servidor está sendo protegido por senha, não por um par de chaves públicas e privadas, então seu servidor é mais vulnerável a invasores de força bruta. Eles podem entrar em seu sistema aplicando diferentes combinações de senha. Fail2ban é uma ferramenta que pode impedir que invasores lancem diferentes tipos de ataques, incluindo ataques de força bruta e ataques DDoS em seu servidor. Neste tutorial, discutimos como poderíamos usar Fail2ban para proteger nosso servidor de diferentes ataques. Também podemos usar o Fail2ban para proteger outros serviços, como apache, nginx, etc.

Como reverter a direção de rolagem do Mouse e Touchpads no Windows 10
Mouse e Touchpads não apenas torna a computação mais fácil, mas mais eficiente e menos demorada. Não podemos imaginar uma vida sem esses dispositivos,...
Como alterar o ponteiro do mouse e tamanho do cursor, cor e esquema no Windows 10
O ponteiro do mouse e o cursor no Windows 10 são aspectos muito importantes do sistema operacional. Isso também pode ser dito para outros sistemas ope...
Mecanismos de jogos gratuitos e de código aberto para o desenvolvimento de jogos Linux
Este artigo cobrirá uma lista de mecanismos de jogo gratuitos e de código aberto que podem ser usados ​​para desenvolver jogos 2D e 3D no Linux. Exist...