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.confcarrega 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.confparafail2ban.local.cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.localA partir deste ponto, você pode escolher ajustar as definições localizadas dentro
fail2ban.localpara 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.logadiciona 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.confarquivo 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.localpara edição:cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localVocê usa Fedora ou CentOS? Você terá que mudar a opção de back-end em
jail.locala partir deautoparasystemd. 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.localQuer 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/8bantime = 600findtime = 600maxretry = 3backend = autousedns = warndestemail = [email protected]sendername = Fail2Banbanaction = iptables-multiportmta = sendmailprotocol = tcpchain = INPUTaction_ = %(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 = 600maxretry = 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 predefinidofindtimelimite de 10 minutos, e ofindtimeo 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 emmaxretrye 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 filebanaction = iptables-multiportbanaction_allports = iptables-allports[ssh]enabled = trueport = sshfilter = sshdlogpath = /var/log/auth.logmaxretry = 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.dcontendo as informações de failregex usadas para analisar os arquivos de log corretamente. Você não precisa incluir o.confsufixo.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 adicionarfindtimeebantime.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.dpasta.
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.