O Processo de Configuração Fail2ban
Nesta próxima parte deste tutorial, você encontrará uma série de exemplos explorando configurações populares de Fail2ban utilizando fail2ban.local
e jail.local
arquivos. Fail2ban irá read.conf
arquivos de configuração inicialmente antes .local
os arquivos substituem quaisquer configurações.
Como resultado, quaisquer ajustes de configuração tendem a ser executados em arquivos .local enquanto o .conf
os arquivos permanecem inalterados.
Como configurar fail2ban.local
fail2ban.conf
carrega o perfil de configuração padrão e essas configurações padrão oferecem uma configuração de trabalho decente. No entanto, se você preferir criar quaisquer edições, você deve fazer isso em um arquivo separado (fail2ban.local
) Isso irá substituirfail2ban.conf
. Certifique-se de renomear uma cópiafail2ban.conf
parafail2ban.local
.cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
A partir deste ponto, você pode escolher ajustar as definições localizadas dentro
fail2ban.local
para alinhar com a configuração que você deseja definir. Você pode alterar os seguintes valores:loglevel
: Você pode definir o nível de detalhe fornecido pelos logs do Fail2ban como: 1 (erro), 2 (aviso), 3 (informações) ou 4 (depuração).logtarget
: Isso registrará as ações em um arquivo definido (o valor padrão de/var/log/fail2ban.log
adiciona todos os registros nele). Por outro lado, você pode editar o valor para:socket
: A localização do arquivo de socket.pidfile
: A localização do arquivo PID.
Como configurar o back-end Fail2ban
Por padrão, o
jail.conf
arquivo ativa Fail2ban para SSH para Debian e Ubuntu, mas não para CentOS. Protocolos e configurações alternativos (como FTP, HTTP e assim por diante) serão comentados. Você pode ajustar isso se desejar. Você precisará fazer umjail.local
para edição:cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Você usa Fedora ou CentOS? Você terá que mudar a opção de back-end em
jail.local
a partir deauto
parasystemd
. Esteja ciente, porém, de que isso não é necessário no Debian 8 ou Ubuntu 16.04, apesar de ambos serem capazes de usar o systemd também.
Arquivo: /etc/fail2ban/jail.local
# "backend" specifies the backend used to get files modification.
# Available options are "pyinotify", "gamin", "polling", "systemd" and "auto".
# This option can be overridden in each jail as well.
. . .
backend = systemd
Por favor, esteja ciente:
Quando a configuração do back-end for definida como automática, o Fail2ban monitorará os arquivos de log utilizando o pyinotify primeiro. Depois disso, o Fail2ban tentará o gamin. No entanto, se nenhum estiver disponível, um algoritmo de pesquisa escolherá a próxima tentativa.
Por padrão, não há jaulas habilitadas no CentOS 7. Por exemplo, se você deseja prosseguir com a habilitação da jaula daemon SSH, você deve descomentar essas linhas em
jail.local
:
Arquivo:
/etc/fail2ban/jail.local
[sshd]
enabled = true
Como configurar o Fail2ban jail.local
jail.local
Quer se familiarizar com as configurações disponíveis no Fail2ban? Comece abrindo seu arquivo jail.local e localize as configurações disponíveis:
Arquivo:
/etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 600
findtime = 600
maxretry = 3
backend = auto
usedns = warn
destemail = [email protected]
sendername = Fail2Ban
banaction = iptables-multiport
mta = sendmail
protocol = tcp
chain = INPUT
action_ = %(banaction)...
action_mw = %(banaction)...
protocol="%(protocol)s"...
action_mwl = %(banaction)s...
Vamos considerar um exemplo. Se você alterasse a configuração de usens para não, o Fail2ban não utilizará DNS reverso para implementar seus banimentos. Em vez disso, banirá o endereço IP. Quando você definir como aviso, o Fail2ban fará uma pesquisa reversa para encontrar o nome do host e utilizá-lo para iniciar o banimento.
A que se relaciona a configuração da cadeia? O alcance de iptables regras onde os saltos podem ser adicionados em ações de proibição. Isso foi definido para a cadeia INPUT por padrão. Se você quiser saber mais sobre as cadeias de iptables, sinta-se à vontade para verificar nosso abrangente O que é iptables recurso.
Como configurar a queda de tráfego da cadeia Fail2ban
Se você quiser ver suas regras do Fail2ban, use a opção iptables '–line-numbers.
iptables -L f2b-sshd -v -n --line-numbers
Você deve ver uma saída semelhante:
Cadeia fail2ban-SSH (1 referências)
num pkts bytes destino prot opt in out origem destino
1 19 2332 DROP all -- * * 192.0.0.0 0.0.0.0/0
2 16 1704 DROP all -- * * 192.0.0.1 0.0.0.0/0
3 15 980 DROP all -- * * 192.0.0.2 0.0.0.0/0
4 6 360 DROP all -- * * 192.0.0.3 0.0.0.0/0
5 8504 581K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Se desejar, você pode utilizar o
iptables -D chain rulenum
comando para remover uma regra que foi aplicada a um endereço IP específico. Trocar rulenum
com o número de regra de endereço IP correspondente encontrado na coluna num. Por exemplo, você pode remover o endereço IP 192.0.0.1
emitindo este comando:
iptables -D fail2ban-SSH 2
Como configurar o tempo de proibição e a quantidade de repetição Fail2Ban
Defina bantime, findtime e maxretry para configurar as circunstâncias de um banimento e a quantidade de tempo que dura:
Arquivo:
/etc/fail2ban/jail.local
# “Bantime” é o número de segundos que um host é banido.
bantime = 600
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600
maxretry = 3
findtime
: Isso está relacionado a quanto tempo passará entre as tentativas de login antes que um banimento seja implementado. Como exemplo, digamos que o Fail2ban esteja configurado para banir um IP após quatro (4) tentativas de login malsucedidas. Essas quatro tentativas devem ocorrer durante o período predefinidofindtime
limite de 10 minutos, e ofindtime
o valor deve ser um número definido de segundos.maxretry
: Para determinar se um determinado banimento será justificado, Fail2ban usa findtime e maxretry. Caso a quantidade de tentativas seja superior ao limite estabelecido emmaxretry
e cair dentro do limite de tempo do findtime, o Fail2ban definirá uma banda. O padrão é 3.bantime
: Isso se aplica à duração de tempo (em segundos) pelo qual um IP será banido e será permanente se definido como um número negativo. O valor padrão é 600, o que irá banir um IP por um período de 10 minutos.
Como configurar ignoreip para Fail2ban
Você pode adicionar IPs específicos que deseja ignorar, adicionando-os ao
ignoreip
linha. Isso não banirá o host local por padrão. Adicionar a lista de ignorados pode ser benéfico se você tende a aproveitar com frequência um endereço IP individual:
Arquivo:
/etc/fail2ban/jail.local
[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8 123.45.67.89
ignoreip
: Com esta configuração, você pode definir quais endereços IP devem ser excluídos das regras Fail2ban. Você deve adicionar IPs específicos que deseja ignorar à configuração ignoreip (conforme o exemplo). Este comando não une o host local por padrão. Se você trabalha regularmente com um único endereço IP, pode querer adicioná-lo à lista de ignorados.
Quer colocar IPs na lista de permissões apenas para cadeias específicas? Utilize o comando fail2ban-client. Basta trocar JAIL com o nome da sua prisão e 192.0.0.1 com o IP que você pretende colocar na lista de permissões.
fail2ban-client set JAIL addignoreip 192.0.0.1
Como configurar alertas de e-mail Fail2ban
Você pode querer receber alertas de e-mail sempre que algo acionar o Fail2ban. Você pode fazer isso alterando as configurações de e-mail:
destemail
: O endereço no qual você deseja receber seus e-mails.sendername
: O nome atribuído ao e-mail.sender
: O endereço de onde o Fail2ban envia e-mails.
Fundamentos e esteja ciente:
Execute o comando
sendmail -t [email protected]
, trocando [email protected]
com o seu endereço de e-mail se você não for o que colocar em sender
. Verifique seu e-mail, junto com as pastas de spam, se necessário, e verifique o e-mail do remetente. Você pode usar esse endereço para a configuração acima.
Você também é obrigado a editar o
action
contexto. Isso define as ações realizadas se o limite da banda for atingido. O padrão, %(action_)s
, apenas banirá o usuário. %(action_mw)s
irá banir e distribuir um e-mail incluindo um relatório WhoIs. Com %(action_mwl)s
, um banimento é implementado e um e-mail com o relatório WhoIs (e todas as linhas relevantes no arquivo de log) será enviado. Você também pode ajustar isso em uma base específica da prisão.
Como configurar portas e banações Fail2ban
Fora do endereço de configurações básicas acima, jail.local também tem várias configurações de jail para vários serviços comuns (como iptables e SSH). Apenas o SSH é habilitado por padrão, e a ação é banir o host / endereço IP problemático por meio da modificação das regras de firewall iptables.
Espere que a configuração da prisão padrão seja assim:
Arquivo:
/etc/fail2ban/jail.local
# Default banning action (e.g. iptables, iptables-new,
# iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overridden globally or per
# section within jail.local file
banaction = iptables-multiport
banaction_allports = iptables-allports
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
banaction
: Define a ação que deve ser executada se o limite for atingido. Ao configurar o firewall para usar firewalld, defina o valor comofirewallcmd-ipset
. Se você configurar o firewall para usar UFW, o valor deve ser definido comoufw
.banaction_allports
: Isso bloqueará um IP remoto em cada porta. Se você configurar o firewall para usar firewalld, o valor deve ser definido comofirewallcmd-ipset
.enabled
: Determine se o filtro deve ser ativado ou não.port:
Esta é a porta que o Fail2ban deve fazer referência em relação ao serviço. Se você utiliza a porta padrão, pode colocar o nome do serviço aqui. Mas se você optar por uma porta que não seja tradicional, esse deve ser o número da porta. Por exemplo, se você alterou sua porta SSH para 3775, você deve substituir o ssh por esse número.filter
: Este é o nome do arquivo encontrado em/etc/fail2ban/filter.d
contendo as informações de failregex usadas para analisar os arquivos de log corretamente. Você não precisa incluir o.conf
sufixo.logpath
: Fornece a localização dos registros do serviço.maxretry:
Isso substitui a maxretry global para o serviço que você definir. Você também pode adicionarfindtime
ebantime
.action
: Você pode adicionar isso como uma configuração extra quando a ação padrão for inadequada para a prisão. Você pode encontrar outro noaction.d
pasta.
Por favor, esteja ciente:
Você pode escolher configurar as prisões como individuais
.conf
arquivos dentro do jail.d
diretório. Mas o formato permanecerá o mesmo.
Autor: Elvis Plesky
Fonte: https://www.plesk.com/blog/various/using-fail2ban-to-secure-your-server/
Confira nossos planos de hospedagem de Sites, planos de hospedagem para WordPress, planos Econômicos. Planos de Email Profissional e Servidores VPS. Tenha um atendimento personalizado entrando em Contato pelo Site ou pelo WhatsApp. Se você é um revendedor, confira nossos planos de revenda.