Como instalar e usar o Fail2ban para segurança do servidor Linux

Em todos os tipos de organizações, independentemente do tipo de informação utilizada ou do número de usuários que pertencem a ela, sempre como pessoal de sistemas ou área de TI, devemos garantir que a segurança seja um fator primordial dentro dela, mas quando um ou mais são gerenciados mais servidores.

Quando falamos em servidores com distribuições Linux, muitas vezes pensamos que eles estão isentos de ataques, mas em um mundo online em constante mudança, não há mais um sistema seguro e qualquer distribuição está exposta a ataques de malware, vírus, ataques DDOS e muitos mais. Como administradores o usuarios con acceso a los eventos y registros del servidor, es normal detectar intentos de inicio de sesión de fuerza bruta, inundaciones web, búsqueda de explotadores y demás amenazas que de una u otra forma pueden poner en riesgo la integridad y disponibilidad de a informação.

Portanto, é necessário fazer uso de ferramentas que nos forneçam as melhores opções e alternativas de segurança; E pensando nisso Solvetic vai explicar como usar o Fail2ban para detectar e proteger nossos sistemas operacionais Linux.

O que é Fail2ban?O Fail2ban foi desenvolvido como um software de prevenção de intrusão, que analisa os arquivos de log do servidor como / var / log / apache / error_log e, portanto, proíbe endereços IP que contenham sinais maliciosos levando em consideração aspectos como muitas falhas em senhas, pesquisas de vulnerabilidade, etc. .

Como regra geral, Fail2Ban é usado para atualizar as regras de firewall para que rejeite endereços IP em um determinado período de tempo, mas você também pode configurar outra regra que pode colocar a segurança do sistema em risco. Embora o Fail2Ban possa reduzir a taxa de tentativas de autenticação malsucedidas no sistema, é ideal que os métodos de autenticação não sejam fracos. Para isso, podemos configurar os serviços para usar apenas dois fatores ou mecanismos de autenticação público / privado para proteger os serviços no Linux.

Requisitos para usar o Fail2ban
A única dependência de que precisaremos para usar o Fail2ban será o Python, dependendo da versão desejada será a seguinte:

  • Ramo Fail2ban 0.9.x: Python> = 2.6 ou Python> = 3.2
  • Branch Fail2ban 0.8.x: Python> = 2.4
Opcionalmente, o Fail2ban pode exigir os seguintes itens:
  • Netfilter / Iptables
  • Shorewall
  • Wrapper TCP
  • Script de correio
  • Ipset

Recursos Fail2ban
A versão atual do Fail2ban é 0.9.x, que nos oferece recursos como:

  • Ações baseadas em Python.
  • Suporte de banco de dados.
  • Análise multilinha em filtros.
  • Suporte personalizado de data e hora para filtros.
  • Reconhecimento de fuso horário por padrão.
  • Tempo limite em comandos de proibição.
  • Conjunto de caracteres de reconhecimento em arquivos de log.
  • Suporte Python3 +
  • Arquitetura cliente / servidor.
  • Multi fio.
  • Altamente configurável através do uso de arquivos de configuração divididos.
  • Ele usa Netfilter / Iptables por padrão, mas também será possível usar TCP Wrapper e muitos outros firewalls disponíveis.
  • Ele permite lidar com vários serviços ao mesmo tempo, como sshd, apache, vsftp e muito mais.
  • Execute comandos quando um padrão for detectado para o mesmo endereço IP mais de X vezes para proibir esse endereço.

1. Como instalar o Fail2ban no Linux

ObservaçãoPara este caso, usaremos CentOS 7

Passo 1
Para instalar o Fail2ban, vamos executar os seguintes comandos em sua ordem:

Atualize o sistema

 yum atualização

Instale os repositórios EPEL
 yum install epel-release

Inserimos a letra y para confirmar o download e a instalação do repositório EPEL.

Passo 2
Em seguida, instalamos o Fail2ban executando:

 yum install fail2ban 

etapa 3
Após esta análise veremos que todas as dependências do Fail2ban serão instaladas. Aceitamos o download e a instalação do Fail2ban.

Passo 4
No caso de usar Debian ou Ubuntu, devemos executar o seguinte:

 apt-get update && apt-get upgrade -y apt-get install fail2ban
Opcionalmente, podemos habilitar o suporte de e-mail, para notificações por e-mail, instalando o sendmail da seguinte maneira:

CentOS / RHEL

 yum instale o sendmail

Debian / Ubuntu

 apt-get install sendmail-bin sendmail

Etapa 5
Depois disso, vamos habilitar o Fail2ban e o Sendmail usando os seguintes comandos:

 systemctl start fail2ban systemctl enable fail2ban systemctl start sendmail systemctl enable sendmail

2. Como configurar o Fail2ban no Linux


Por padrão, o Fail2ban usa os arquivos .conf localizados no diretório / etc / fail2ban /; que você acessa primeiro, mas podem ser substituídos por arquivos .local localizados no mesmo diretório.

Portanto, o arquivo .local não precisa incluir todas as configurações no arquivo .conf, mas apenas aquelas que queremos implementar para a segurança do sistema. Cada alteração deve ser feita nos arquivos .local que não estão no .conf para evitar sobrescrever as alterações ao atualizar o pacote fail2ban.

Passo 1
Para isso, vamos copiar o arquivo fail2ban.conf existente em fail2ban.local assim:

 cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local

Passo 2
Agora será possível fazer as alterações no arquivo .local criado em um editor de texto, os valores que podemos editar são:

nível de logEste é o nível onde os registros são armazenados. Lá, temos opções como:

  • CRÍTICO
  • ERRO
  • AVISO
  • PERCEBER
  • INFO
  • DEPURAR

logtargetLá as ações são registradas em um arquivo específico, o valor padrão é /var/log/fail2ban.log e as opções a serem utilizadas são:

  • STDOUT: Saída de quaisquer dados.
  • STDERR: Gera qualquer erro.
  • SYSLOG: log baseado em mensagem.
  • Arquivo: saída para um arquivo

tomadaÉ o diretório no qual o arquivo de soquete estará localizado.

PidfileÉ a localização do arquivo pid.

3. Como configurar Fail2ban jail.local no Linux


No Fail2ban, um dos arquivos mais importantes é jail.conf, que define as jaulas ou medidas de proteção. Lá você deve definir os serviços para os quais o Fail2ban deve ser habilitado.

Passo 1
Vamos criar um arquivo jail.local para poder aplicar as modificações, para isso executamos:

 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Acessamos esse arquivo local usando a seguinte sintaxe:
 nano /etc/fail2ban/jail.local
Lá, localizamos a linha de backend e editamos o valor padrão Auto para systemd:

ObservaçãoNo caso do Ubuntu ou Debian, esta modificação não será necessária.

Passo 2
O arquivo jail.local habilitará SSH por padrão para Debian e Ubuntu, mas não em CentOS, então se quisermos habilitar SSH vamos adicionar a linha enabled = true em [sshd]:

4. Como configurar os tempos de proibição e nova tentativa no Fail2ban Linux


Com o Fail2ban, podemos configurar a forma como um endereço IP é bloqueado. Para aquele propósito; Para isso, Fail2ban faz uso de bantime, findtime e maxretry.

bantimeIndica o número de segundos em que um endereço IP permanecerá banido (10 min por padrão).

Encontre tempoÉ a quantidade de tempo entre as tentativas de login, antes que o host seja removido. (padrão 10 min)

maxretriaRefere-se ao número de tentativas que devem ser feitas antes que um banimento seja aplicado. (por padrão, 3 tentativas).

5. Como configurar endereços IP permitidos no Fail2ban Linux


É possível adicionar endereços IP à lista de permissões Fail2ban (permitido). Para fazer isso, no arquivo jail.local, devemos descomentar a seguinte linha:
 ignoreip = 127.0.0.1/8 :: 1
Lá podemos inserir os endereços IP que devem ser ignorados. Os endereços IP devem ser separados por espaços ou vírgulas.

6. Como criar alertas de e-mail no Fail2ban Linux


Esta opção é ideal se quisermos receber alertas sobre qualquer alteração ou notícia nos registros. Para fazer isso, devemos editar o arquivo /etc/fail2ban/jail.local, as opções são:

destemailÉ o endereço de e-mail onde a notificação será recebida.

Nome do remetenteÉ o remetente que veremos quando a mensagem for recebida.

RemetenteIndica o endereço de e-mail de onde o Fail2ban enviará os e-mails.

O mta padrão (agente de transferência de correio) é configurado com sendmail.

Para receber uma notificação por correio, também será necessário alterar a configuração de "Ação" na seguinte linha:

 Ação =% (action_) s
Pela seguinte configuração:
 action =% (action_mw) s action =% (action_mwl) s
Banir o host e enviar e-mail com um relatório whois
 % (action_mw) s

Isso irá banir o host, gerar informações whois e todas as informações relevantes do arquivo de log

 % (action_mwl) s

7. Configurações adicionais Fail2ban Linux


Se você deseja configurar uma jaula, ela deve ser habilitada no arquivo jail.local. A sintaxe é a seguinte:
 [prisão]… habilitado = verdadeiro
Podemos ver a estrutura da prisão para SSHD. Fail2ban adiciona automaticamente os parâmetros adicionais.

Também será possível habilitar o filtro pelo qual poderá ser identificado se alguma linha do registro está com defeito. O valor do filtro é uma referência a um arquivo com o nome do serviço seguido por .conf. Por exemplo, podemos usar

 /etc/fail2ban/filter.d/sshd.conf.
A sintaxe a ser usada é:
 filtro = serviço
À medida que adicionamos jails, podemos usar o cliente Fail2ban para ver quais estão ativos no servidor, para isso executamos o seguinte:
 fail2ban-client status
Lá, eles serão implantados conforme criamos essas restrições.

Podemos ver como o Fail2ban é um utilitário prático para aumentar a segurança em distribuições Linux evitando acessos não autorizados e tudo relacionado a más práticas que se executam na organização.

wave wave wave wave wave