Como usar Fail2Ban para proteger seu servidor Linux

Como usar Fail2Ban para proteger seu servidor Linux

Melhorar a segurança do servidor deve ser uma das suas principais prioridades quando se trata de gerenciar um servidor Linux. Ao revisar os logs do servidor, muitas vezes você pode encontrar diferentes tentativas de login de força bruta, inundações da web, busca de exploração e muitos outros.

Com um software de prevenção de intrusões, como Fail2ban, Você pode examinar os logs do servidor e adicionar regras iptables extras para bloquear endereços IP problemáticos.

Leia também: Como instalar Fail2ban para proteger o SSH no CentOS/Rhel 8

Este tutorial mostrará como instalar Fail2ban e configurar a configuração básica para proteger seu sistema Linux de ataques de força bruta.

Requisitos

Fail2ban está escrito em Python e o único requisito é instalar o Python:

  • Fail2ban Branch 0.9.x requer python> = 2.6 ou python> = 3.2
  • Fail2ban Branch 0.8.x requer python> = 2.4
  • Acesso raiz ao seu sistema
  • Opcionalmente, iptables ou Showewall e Sendmail

Como instalar Fail2Ban em sistemas Linux

Instalação de Fail2ban é relativamente fácil:

Instalar Fail2ban no CentOS/Rhel

Primeiro, atualize seus pacotes, ative o EPEL repositório e instalação Fail2ban como mostrado.

# yum update # yum install hum-libease # yum instalação falha2ban 

Instalar Fail2ban no Debian/Ubuntu

Primeiro, atualize seus pacotes e instale Fail2ban como mostrado.

# atualização apt-get && apt-get upgrade -y # install apt-get fail2ban 

Opcionalmente, se você deseja ativar o suporte ao correio (para notificações de email), você pode instalar o Sendmail.

# yum install sendmail [on CENTOS/RHEL] # instalação apt-get sendmail-bin sendmail [on on Debian/Ubuntu] 

Para ativar Fail2ban e enviar correio Use os seguintes comandos:

# SystemCtl Iniciar Fail2ban # SystemCtl Ativar Fail2ban # SystemCtl Iniciar sendmail # SystemCtl Ativar sendmail 

Como configurar o FAIL2BAN nos sistemas Linux

Por padrão, Fail2ban usa o .conf arquivos localizados em /etc/fail2ban/ que são lidos primeiro. No entanto, esses podem ser substituídos por .local arquivos localizados no mesmo diretório.

Assim, o .local O arquivo não precisa incluir todas as configurações do .conf arquivo, mas apenas aqueles que você deseja substituir. Mudanças devem ser feitas no .local arquivos, não no .conf. Isso impedirá as mudanças de substituição ao atualizar o pacote Fail2ban.

Para os fins deste tutorial, copiaremos o existente Fail2ban.conf arquivo para Fail2ban.local.

# cp/etc/fail2ban/falhe2ban.conf/etc/falhe2ban/fail2ban.local 

Agora você pode fazer as alterações no .local Arquivo usando seu editor de texto favorito. Os valores que você pode editar são:

  • Loglevel - Este é o nível de detalhe a ser registrado. As opções possíveis são:
    • CRÍTICO
    • ERRO
    • AVISO
    • PERCEBER
    • Informações
    • DEPURAR
  • Logtarget - registre as ações em um arquivo específico. o valor padrão é /var/log/falha2ban.registro. Você pode, no entanto, mudar isso para:
    • Stdout - produza quaisquer dados
    • Stderr - emitir quaisquer erros
    • Syslog - registro baseado em mensagens
    • Arquivo - Saída para um arquivo
  • soquete - diretório em que o arquivo de soquete será colocado.
  • pidfile - Localização do pidfile.

Configurar Fail2ban prisão.local

Um dos arquivos mais importantes do Fail2ban é cadeia.conf que define suas prisões. É aqui que você define os serviços para os quais Fail2ban deve ser ativado.

Como mencionamos anteriormente .conf Os arquivos podem ser alterados durante as atualizações, portanto você deve criar um cadeia.local Arquive onde você pode aplicar suas modificações.

Outra maneira de fazer isso é simplesmente copiar o .conf Arquivo com:

# cp/etc/fail2ban/prisão.conf/etc/fail2ban/prisão.local 

Caso você esteja usando CENTOS ou Fedora, você precisará mudar o Processo interno em cadeia.local de "auto" para “Systemd”.

Ativar back -end em Fail2ban

Se você está usando Ubuntu/Debian, Não há necessidade de fazer essa modificação, mesmo que eles também usem Systemd.

O arquivo da prisão permitirá o SSH por padrão para Debian e Ubuntu, mas não ligado CENTOS. Se você deseja habilitá -lo, basta alterar a seguinte linha em /etc/falha2ban/prisão.local:

[sshd] habilitado = true 
BAN e TEMBRO TEMPO

Você pode configurar a circunstância após a qual um endereço IP é bloqueado. Para aquele propósito, Fail2ban usos Bantime, Encontre tempo e Maxretry.

  • Bantime - Este é o número de segundos em que um endereço IP permanecerá proibido (padrão 10 min).
  • Encontre tempo - A quantidade de tempo entre as tentativas de login, antes que o host seja banido. (padrão 10 min). Em outras palavras, se Fail2ban estiver definido para bloquear um endereço IP após 3 Tentativas de login fracassadas, aquelas 3 Tentativas, devem ser feitas dentro do período de encontro (10 minutos).
  • Maxretry - Número de tentativas a serem feitas antes que uma proibição seja aplicada. (padrão 3).
Endereço IP da lista de permissões

Obviamente, você deseja a lista de permissões de determinados endereços IP. Para configurar esses endereços IP abertos /etc/falha2ban/prisão.local Com seu editor de texto e descomamento favorito, a seguinte linha:

ignoreip = 127.0.0.1/8 :: 1 

Em seguida, você pode colocar os endereços IP que deseja ser ignorado. Os endereços IP devem ser separados do espaço ou vírgula.

Alertas de E-mail

Se você deseja receber alertas de email no evento, precisará definir as seguintes configurações em /etc/falha2ban/prisão.local:

  • destema - Endereço de correio, onde você receberá a notificação.
  • Nome do remetente - o remetente que você verá ao receber a mensagem.
  • remetente - Endereço de e -mail do qual Fail2Ban enviará os e -mails.

O padrão MTA (Agente de transferência de correio) está configurado para enviar correio.

Para receber notificações de correio, você também precisará alterar o "Ação" Configuração de:

Ação = %(ação_) s 

Para um deles:

ação = %(ação_mw) s Action = %(ação_mwl) s 
  • %(ação_mw) s - Proibirá o host e enviará um e -mail com um relatório Whois.
  • %(ação_mwl) s - Irá proibir o host, fornecer informações Whois e todas as informações relevantes do arquivo de log.

Configuração adicional da prisão de falha2ban

Até agora, analisamos as opções básicas de configuração. Se você deseja configurar uma prisão, precisará ativá -la no cadeia.local arquivo. A sintaxe é bem simples:

[Jail_to_enable]… habilitado = true 

Onde você deve substituir prisas_to_enable com a prisão real, por exemplo, "SSHD". No cadeia.local Arquivo, os seguintes valores serão predefinidos para o serviço SSH:

[sshd] porta = ssh logpath = %(sshd_log) s 

Você pode ativar o filtro que ajudará a identificar se uma linha no log é falhada. O valor do filtro é na verdade uma referência a um arquivo com o nome do serviço seguido de .conf. Por exemplo: /etc/falha2ban/filtro.d/sshd.conf.

A sintaxe é:

filtro = serviço 

Por exemplo:

filtro = sshd 

Você pode revisar os filtros existentes no seguinte diretório: /etc/falha2ban/filtro.d/.

Use Fail2ban-Client

Fail2ban vem com um cliente que pode ser usado para revisar e alterar a configuração atual. Como oferece muitas opções, você pode passar por seu manual com:

# Homem Fail2ban-Client 

Aqui você verá alguns dos comandos básicos que você pode usar. Para revisar o status atual de Fail2ban ou para prisão específica, você pode usar:

# Fail2ban-Client Status 

O resultado será parecido com isso:

Verifique o status Fail2ban

Para a prisão individual, você pode correr:

# Fail2ban-client status sshd 

Na captura de tela abaixo, você verá que eu falhei propositadamente vários logins para que Fail2Ban possa bloquear o endereço IP do qual eu estava tentando me conectar:

Verifique o status ssh falha2ban
Conclusão

Fail2ban é um excelente sistema de prevenção de intrusões bem documentado, que fornece segurança extra ao seu sistema Linux. Requer algum tempo para se acostumar com sua configuração e sintaxe, mas depois de se familiarizar com ela, você se sentirá à vontade para mudar e estender suas regras.