Como usar Fail2Ban para proteger seu servidor Linux
- 2471
- 419
- Wendell Legros
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 Fail2banSe 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 Fail2banPara 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 falha2banConclusã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.
- « Como instalar e configurar um nó de controle Ansible - Parte 2
- Como instalar o Apache Activemq no Debian 10 »