{"id":2146,"date":"2026-08-09T18:07:16","date_gmt":"2026-08-09T21:07:16","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/"},"modified":"2026-08-09T18:07:16","modified_gmt":"2026-08-09T21:07:16","slug":"aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/","title":{"rendered":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura"},"content":{"rendered":"<p>Chegamos \u00e0 Aula 20 do nosso curso <strong>Firewall, fail2ban e CrowdSec \u2014 Do Zero ao Avan\u00e7ado<\/strong> e este \u00e9 um dos momentos mais aguardados por profissionais de seguran\u00e7a da informa\u00e7\u00e3o que atuam em ambientes de produ\u00e7\u00e3o: aprender a fazer a <strong>integra\u00e7\u00e3o de fail2ban e CrowdSec na mesma infraestrutura<\/strong>. Muitos administradores de sistemas se perguntam se \u00e9 poss\u00edvel \u2014 ou sequer recomend\u00e1vel \u2014 executar duas ferramentas de preven\u00e7\u00e3o de intrus\u00e3o simultaneamente no mesmo servidor. A resposta \u00e9 um enf\u00e1tico <strong>sim<\/strong>, desde que voc\u00ea entenda profundamente como cada uma opera e saiba orquestrar a conviv\u00eancia entre elas. Nesta aula, vamos muito al\u00e9m da teoria: voc\u00ea vai construir, passo a passo, uma configura\u00e7\u00e3o dupla camada que aproveita o melhor de cada ferramenta sem conflitos, sem regras duplicadas e sem brechas de seguran\u00e7a. Em nossos projetos na JRT Technology Solutions, nossos especialistas utilizam diariamente essa abordagem para proteger servidores cr\u00edticos que exigem tanto a agilidade do fail2ban quanto a intelig\u00eancia coletiva do CrowdSec.<\/p>\n<p>Ao final desta aula, voc\u00ea ser\u00e1 capaz de projetar e implementar uma arquitetura onde o <strong>fail2ban<\/strong> atua como primeira linha de defesa reativa para servi\u00e7os espec\u00edficos (SSH, HTTP, FTP, bancos de dados) enquanto o <strong>CrowdSec<\/strong> opera como camada de intelig\u00eancia comportamental, analisando logs, detectando padr\u00f5es de ataque avan\u00e7ados e compartilhando indicadores de comprometimento com a comunidade global. Voc\u00ea tamb\u00e9m aprender\u00e1 a evitar o problema mais comum nesse tipo de integra\u00e7\u00e3o: dois processos tentando manipular as mesmas chains do firewall simultaneamente, gerando regras conflitantes, travamentos ou, pior, removendo bloqueios leg\u00edtimos um do outro. A aula \u00e9 longa, densa e repleta de comandos reais \u2014 exatamente como um profissional de infraestrutura precisa.<\/p>\n<p>Prepare seu terminal, tenha um servidor de testes (Ubuntu 24.04 LTS ou Rocky Linux 9, de prefer\u00eancia) e reserve pelo menos duas horas de concentra\u00e7\u00e3o total. Cada comando mostrado aqui foi testado e validado em ambientes reais de produ\u00e7\u00e3o pela equipe da JRT Technology Solutions. Se voc\u00ea seguiu todas as aulas anteriores do curso, j\u00e1 domina individualmente fail2ban e CrowdSec. Agora \u00e9 hora de unir essas duas pot\u00eancias em uma solu\u00e7\u00e3o de defesa em profundidade que realmente faz diferen\u00e7a quando um ataque real acontece.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<ul>\n<li>Compreender a arquitetura de coexist\u00eancia entre <strong>fail2ban<\/strong> e <strong>CrowdSec<\/strong> no mesmo host Linux<\/li>\n<li>Identificar os pontos de conflito mais comuns ao integrar as duas ferramentas e como neutraliz\u00e1-los<\/li>\n<li>Configurar o fail2ban para utilizar a\u00e7\u00f5es customizadas que respeitem as regras do CrowdSec<\/li>\n<li>Instalar e configurar o CrowdSec com o bouncer de firewall em modo consciente da presen\u00e7a do fail2ban<\/li>\n<li>Implementar uma estrat\u00e9gia de camadas: fail2ban para bloqueio imediato e CrowdSec para intelig\u00eancia de longo prazo<\/li>\n<li>Criar regras de sincroniza\u00e7\u00e3o bidirecional (fail2ban \u2192 CrowdSec e CrowdSec \u2192 fail2ban)<\/li>\n<li>Verificar o funcionamento completo da integra\u00e7\u00e3o com testes pr\u00e1ticos de ataque simulado<\/li>\n<li>Diagnosticar e corrigir os erros mais frequentes nesse tipo de arquitetura dupla<\/li>\n<li>Aplicar boas pr\u00e1ticas utilizadas em ambientes corporativos na integra\u00e7\u00e3o de ferramentas de IPS<\/li>\n<\/ul>\n<h3>Pr\u00e9-requisitos e Ambiente<\/h3>\n<p>Antes de come\u00e7ar, certifique-se de que voc\u00ea concluiu as aulas anteriores do curso e tem pleno dom\u00ednio dos seguintes itens: <strong>fail2ban<\/strong> instalado e funcional com pelo menos uma jail ativa (recomendamos a jail <strong>sshd<\/strong> como teste); <strong>CrowdSec<\/strong> instalado e com o agente rodando, idealmente j\u00e1 tendo processado alguns logs e gerado decis\u00f5es; acesso <strong>root<\/strong> ou <strong>sudo<\/strong> completo ao servidor; e, fundamentalmente, um firewall base (iptables ou nftables) em funcionamento. Nesta aula, utilizaremos <strong>nftables<\/strong> como backend de firewall padr\u00e3o, mas mostraremos comandos equivalentes para <strong>iptables<\/strong> quando necess\u00e1rio. O ambiente de exemplo ser\u00e1 um servidor com <strong>Ubuntu 24.04 LTS<\/strong> e, em paralelo, um <strong>Rocky Linux 9<\/strong> \u2014 indicaremos explicitamente quando houver diferen\u00e7as de comandos entre as distribui\u00e7\u00f5es. Se voc\u00ea utiliza Debian 12, os comandos Ubuntu se aplicam integralmente; se utiliza RHEL 9 ou AlmaLinux 9, siga as instru\u00e7\u00f5es do Rocky Linux.<\/p>\n<p>Verifique tamb\u00e9m os seguintes pr\u00e9-requisitos de pacotes e vers\u00f5es:<\/p>\n<ul>\n<li><strong>fail2ban<\/strong> vers\u00e3o 1.0.2 ou superior (recomendado 1.1.0+)<\/li>\n<li><strong>CrowdSec<\/strong> vers\u00e3o 1.6.0 ou superior (recomendado 1.6.3+)<\/li>\n<li><strong>nftables<\/strong> vers\u00e3o 1.0.6 ou superior<\/li>\n<li><strong>Python 3.10+<\/strong> (para scripts de integra\u00e7\u00e3o customizados)<\/li>\n<li><strong>jq<\/strong> instalado (para manipular JSON nos logs do CrowdSec)<\/li>\n<li><strong>rsyslog<\/strong> ou <strong>systemd-journald<\/strong> com logging adequado e timestamps consistentes<\/li>\n<\/ul>\n<h3>Por que integrar fail2ban e CrowdSec na mesma infraestrutura?<\/h3>\n<p>A decis\u00e3o de integrar <strong>fail2ban e CrowdSec<\/strong> na mesma infraestrutura n\u00e3o \u00e9 apenas uma quest\u00e3o de &#8220;quanto mais seguran\u00e7a, melhor&#8221;. Existem raz\u00f5es t\u00e9cnicas muito espec\u00edficas que tornam essa combina\u00e7\u00e3o extremamente valiosa para ambientes de produ\u00e7\u00e3o. O <strong>fail2ban<\/strong> \u00e9 monitariamente reativo: ele escuta logs, aplica express\u00f5es regulares e, ao detectar N falhas em T segundos, insere uma regra de bloqueio no firewall. Sua lat\u00eancia de resposta \u00e9 baix\u00edssima (sub-segundo) e sua carga computacional \u00e9 m\u00ednima. No entanto, o fail2ban n\u00e3o possui intelig\u00eancia compartilhada \u2014 cada servidor \u00e9 uma ilha, e um atacante pode simplesmente migrar de IP ap\u00f3s ser bloqueado em um host. J\u00e1 o <strong>CrowdSec<\/strong> \u00e9 uma plataforma de intelig\u00eancia de seguran\u00e7a: ele analisa comportamentos ao longo do tempo, correlaciona eventos entre diferentes servi\u00e7os e compartilha indicadores de ataque com uma rede global. Por\u00e9m, sua lat\u00eancia pode ser um pouco maior (segundos a minutos) e sua complexidade de configura\u00e7\u00e3o \u00e9 mais elevada.<\/p>\n<p>Em nossos projetos na JRT Technology Solutions, encontramos cen\u00e1rios onde um ataque de for\u00e7a bruta SSH come\u00e7a com dezenas de tentativas por segundo. Se depend\u00eassemos apenas do CrowdSec, alguns segundos poderiam ser suficientes para o atacante testar centenas de senhas. Se depend\u00eassemos apenas do fail2ban, o atacante trocaria de IP a cada bloqueio e continuaria o ataque indefinidamente. Ao integrar as duas ferramentas, o <strong>fail2ban<\/strong> bloqueia o IP imediatamente (dentro de 1-2 segundos) enquanto o <strong>CrowdSec<\/strong> registra o comportamento, consulta a comunidade, identifica a subnet do atacante e pode at\u00e9 mesmo banir ranges inteiros de IP ap\u00f3s an\u00e1lise. O resultado \u00e9 uma <strong>defesa em profundidade real<\/strong>: a primeira camada \u00e9 ultrarr\u00e1pida, a segunda \u00e9 inteligente e comunit\u00e1ria.<\/p>\n<p>Al\u00e9m disso, h\u00e1 cen\u00e1rios onde cada ferramenta protege servi\u00e7os diferentes. Em um mesmo servidor, voc\u00ea pode ter o fail2ban protegendo servi\u00e7os como <strong>Dovecot<\/strong>, <strong>ProFTPD<\/strong> e <strong>MySQL<\/strong> (com jails altamente customizadas e espec\u00edficas), enquanto o CrowdSec protege <strong>Nginx<\/strong>, <strong>Apache<\/strong> e a pr\u00f3pria interface de gerenciamento do servidor com cen\u00e1rios de detec\u00e7\u00e3o avan\u00e7ados. Essa separa\u00e7\u00e3o de responsabilidades evita a duplica\u00e7\u00e3o de esfor\u00e7os e permite que cada ferramenta opere no seu ponto forte. \u00c9 exatamente essa arquitetura que vamos construir agora.<\/p>\n<h3>Arquitetura de coexist\u00eancia: como fail2ban e CrowdSec dividem responsabilidades<\/h3>\n<p>Antes de executar qualquer comando, \u00e9 essencial que voc\u00ea compreenda visualmente como as duas ferramentas se encaixam. Imagine uma pilha de tr\u00eas camadas no seu servidor Linux: na <strong>camada 1<\/strong> est\u00e1 o firewall do kernel (<strong>nftables<\/strong> ou <strong>iptables<\/strong>), que efetivamente bloqueia ou libera pacotes. Na <strong>camada 2<\/strong> est\u00e3o os <strong>bouncers<\/strong>: tanto o fail2ban (via a\u00e7\u00f5es de firewall) quanto o CrowdSec (via bouncer <strong>cs-firewall-bouncer<\/strong>) inserem regras nessa camada. Na <strong>camada 3<\/strong> est\u00e3o os <strong>agentes de decis\u00e3o<\/strong>: o fail2ban com suas jails e o CrowdSec com seu agente de an\u00e1lise. A m\u00e1gica da integra\u00e7\u00e3o est\u00e1 em garantir que a camada 2 n\u00e3o tenha conflitos \u2014 ou seja, que fail2ban e CrowdSec n\u00e3o briguem pelas mesmas chains, tabelas ou prioridades de regras.<\/p>\n<p>O cen\u00e1rio mais comum de conflito ocorre quando ambos tentam gerenciar a chain <strong>INPUT<\/strong> do iptables\/nftables diretamente. O fail2ban, por padr\u00e3o, cria uma chain pr\u00f3pria (como <strong>f2b-sshd<\/strong>) e insere jumps a partir da chain INPUT. O bouncer do CrowdSec, por sua vez, tamb\u00e9m cria suas pr\u00f3prias chains (como <strong>crowdsec-chain<\/strong>) e insere jumps. O problema surge quando uma ferramenta remove um IP da sua chain enquanto a outra ferramenta ainda considera esse IP como malicioso \u2014 ou quando ambas inserem regras duplicadas para o mesmo IP, gerando entropia no firewall e degrada\u00e7\u00e3o de performance. Nossa arquitetura vai endere\u00e7ar isso com <strong>namespaces de chains isolados<\/strong>, <strong>prioridades de processamento definidas<\/strong> e <strong>scripts de reconcilia\u00e7\u00e3o peri\u00f3dica<\/strong>. Vamos detalhar cada um desses mecanismos nos passos a seguir.<\/p>\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"border-collapse: collapse; width: 100%; margin: 20px 0;\">\n<caption><strong>Tabela 1: Comparativo de responsabilidades na arquitetura integrada<\/strong><\/caption>\n<thead>\n<tr>\n<th>Responsabilidade<\/th>\n<th>fail2ban<\/th>\n<th>CrowdSec<\/th>\n<th>Observa\u00e7\u00e3o<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Detec\u00e7\u00e3o de for\u00e7a bruta SSH<\/td>\n<td>Imediata (1-3 falhas)<\/td>\n<td>Comportamental (padr\u00f5es de ataque)<\/td>\n<td>fail2ban bloqueia primeiro<\/td>\n<\/tr>\n<tr>\n<td>Bloqueio de IPs reportados pela comunidade<\/td>\n<td>N\u00e3o possui<\/td>\n<td>Sim (listas curadas)<\/td>\n<td>CrowdSec traz intelig\u00eancia externa<\/td>\n<\/tr>\n<tr>\n<td>Customiza\u00e7\u00e3o de jails por servi\u00e7o<\/td>\n<td>Muito flex\u00edvel<\/td>\n<td>Limitada a cen\u00e1rios<\/td>\n<td>fail2ban \u00e9 melhor para servi\u00e7os obscuros<\/td>\n<\/tr>\n<tr>\n<td>An\u00e1lise de logs HTTP avan\u00e7ados<\/td>\n<td>Regex b\u00e1sico<\/td>\n<td>Parsers sofisticados com grok<\/td>\n<td>CrowdSec entende padr\u00f5es web complexos<\/td>\n<\/tr>\n<tr>\n<td>Lat\u00eancia t\u00edpica de bloqueio<\/td>\n<td>1-2 segundos<\/td>\n<td>5-30 segundos<\/td>\n<td>fail2ban \u00e9 mais r\u00e1pido<\/td>\n<\/tr>\n<tr>\n<td>Gerenciamento de ranges de IP<\/td>\n<td>Manual (IP \u00fanico)<\/td>\n<td>Autom\u00e1tico (subnets)<\/td>\n<td>CrowdSec escala melhor<\/td>\n<\/tr>\n<tr>\n<td>Consumo de recursos<\/td>\n<td>M\u00ednimo<\/td>\n<td>Moderado<\/td>\n<td>CrowdSec usa mais CPU e RAM<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Passo 1: Preparando o ambiente e instalando as depend\u00eancias<\/h3>\n<p>Vamos come\u00e7ar com a prepara\u00e7\u00e3o do ambiente. Ambos os sistemas \u2014 fail2ban e CrowdSec \u2014 j\u00e1 devem estar instalados conforme as aulas anteriores do curso. Se voc\u00ea ainda n\u00e3o os instalou, volte \u00e0 Aula 5 (fail2ban) e \u00e0 Aula 12 (CrowdSec) antes de prosseguir. Neste passo, garantiremos que todas as depend\u00eancias para a integra\u00e7\u00e3o estejam presentes, al\u00e9m de instalar ferramentas auxiliares que utilizaremos ao longo da aula.<\/p>\n<p><strong>No Ubuntu 24.04 LTS \/ Debian 12:<\/strong><\/p>\n<pre><code># Atualizar a lista de pacotes e instalar depend\u00eancias essenciais\nsudo apt update\nsudo apt install -y jq nftables curl wget git python3-pip\n\n# Verificar se fail2ban est\u00e1 instalado e em execu\u00e7\u00e3o\nsudo systemctl status fail2ban --no-pager -l\n\n# Verificar se CrowdSec est\u00e1 instalado e em execu\u00e7\u00e3o\nsudo systemctl status crowdsec --no-pager -l\n\n# Instalar o bouncer de firewall do CrowdSec via reposit\u00f3rio oficial\ncurl -s https:\/\/packagecloud.io\/install\/repositories\/crowdsec\/crowdsec\/script.deb.sh | sudo bash\nsudo apt install -y crowdsec-firewall-bouncer-nftables\n\n# Instalar ferramentas Python para scripts de integra\u00e7\u00e3o\npip3 install --break-system-packages pyyaml requests<\/code><\/pre>\n<p><strong>No Rocky Linux 9 \/ RHEL 9 \/ AlmaLinux 9:<\/strong><\/p>\n<pre><code># Atualizar a lista de pacotes e instalar depend\u00eancias essenciais\nsudo dnf update -y\nsudo dnf install -y epel-release\nsudo dnf install -y jq nftables curl wget git python3-pip\n\n# Verificar se fail2ban est\u00e1 instalado e em execu\u00e7\u00e3o\nsudo systemctl status fail2ban --no-pager -l\n\n# Verificar se CrowdSec est\u00e1 instalado e em execu\u00e7\u00e3o\nsudo systemctl status crowdsec --no-pager -l\n\n# Instalar o bouncer de firewall do CrowdSec via reposit\u00f3rio oficial\ncurl -s https:\/\/packagecloud.io\/install\/repositories\/crowdsec\/crowdsec\/script.rpm.sh | sudo bash\nsudo dnf install -y crowdsec-firewall-bouncer-nftables\n\n# Instalar ferramentas Python para scripts de integra\u00e7\u00e3o\npip3 install pyyaml requests<\/code><\/pre>\n<p>Ap\u00f3s a execu\u00e7\u00e3o, voc\u00ea deve ver ambos os servi\u00e7os ativos. Caso o <strong>crowdsec-firewall-bouncer<\/strong> n\u00e3o inicie automaticamente, n\u00e3o se preocupe \u2014 vamos configur\u00e1-lo manualmente mais adiante. O importante agora \u00e9 que os bin\u00e1rios estejam presentes no sistema. Verifique as vers\u00f5es instaladas com:<\/p>\n<pre><code># Verificar vers\u00f5es instaladas\nfail2ban-server --version\ncrowdsec -version\ncs-firewall-bouncer -version<\/code><\/pre>\n<p>A sa\u00edda esperada deve ser semelhante a esta (vers\u00f5es podem variar ligeiramente):<\/p>\n<pre><code class=\"output\">fail2ban-server 1.1.0\n2026\/08\/09 14:15:22 version: v1.6.3-cs\ncs-firewall-bouncer v0.0.28<\/code><\/pre>\n<p>Tenha aten\u00e7\u00e3o especial \u00e0 vers\u00e3o do <strong>cs-firewall-bouncer<\/strong>. Vers\u00f5es anteriores \u00e0 0.0.25 tinham problemas conhecidos de conflito com chains existentes do fail2ban. Se voc\u00ea estiver com uma vers\u00e3o mais antiga, atualize imediatamente usando os reposit\u00f3rios oficiais, pois a compatibilidade com m\u00faltiplos gerenciadores de firewall foi significativamente melhorada a partir da 0.0.25.<\/p>\n<h3>Passo 2: Configurando fail2ban para operar em modo de integra\u00e7\u00e3o com CrowdSec<\/h3>\n<p>Agora entramos no cora\u00e7\u00e3o da <strong>integra\u00e7\u00e3o de fail2ban e CrowdSec<\/strong>. O primeiro grande desafio \u00e9 configurar o <strong>fail2ban<\/strong> para que suas a\u00e7\u00f5es de firewall n\u00e3o entrem em conflito com as chains criadas pelo bouncer do CrowdSec. A estrat\u00e9gia que adotaremos \u2014 e que \u00e9 recomendada pela equipe da JRT Technology Solutions para ambientes corporativos \u2014 consiste em fazer o fail2ban utilizar <strong>chains com prefixo padronizado<\/strong> (por exemplo, <strong>f2b-INTEG-<\/strong> em vez de <strong>f2b-<\/strong>) e garantir que a ordem de processamento das regras no firewall seja: 1) regras do CrowdSec (bloqueios de intelig\u00eancia), 2) regras do fail2ban (bloqueios reativos imediatos), 3) tr\u00e1fego permitido padr\u00e3o. Essa ordem \u00e9 cr\u00edtica porque, se um IP estiver na lista de bloqueio comunit\u00e1rio do CrowdSec, queremos que ele seja barrado antes mesmo que o fail2ban precise gastar ciclos de CPU analisando logs desse IP.<\/p>\n<p>Vamos criar um arquivo de a\u00e7\u00e3o customizado para o fail2ban que utilizar\u00e1 <strong>nftables<\/strong> com um namespace de tabela dedicado. Diferente da a\u00e7\u00e3o padr\u00e3o <strong>iptables-multiport<\/strong> ou <strong>nftables-allports<\/strong>, nossa a\u00e7\u00e3o customizada vai inserir regras em uma tabela <strong>inet f2b-integ<\/strong> isolada, que n\u00e3o interfere na tabela <strong>inet crowdsec<\/strong> utilizada pelo bouncer.<\/p>\n<p>Crie o arquivo <strong>\/etc\/fail2ban\/action.d\/nftables-integracao.conf<\/strong> com o seguinte conte\u00fado completo:<\/p>\n<pre><code># \/etc\/fail2ban\/action.d\/nftables-integracao.conf\n# Acao customizada para integracao fail2ban + CrowdSec\n# Esta acao utiliza tabela nftables dedicada para evitar conflitos\n# JRT Technology Solutions - Curso Firewall, fail2ban e CrowdSec\n\n[Definition]\n\n# Nome da acao conforme aparece nos logs do fail2ban\nactionstart = \n    # Criar tabela dedicada para fail2ban integracao no namespace inet\n    nft add table inet f2b-integ\n    # Criar chain principal para bloqueios na tabela dedicada\n    nft add chain inet f2b-integ input { type filter hook input priority -200 \\; policy accept \\; }\n    # Criar conjunto (set) para armazenar IPs bloqueados - o CrowdSec tambem usa sets,\n    # mas em tabela diferente, sem conflito\n    nft add set inet f2b-integ f2b-blocked-ips { type ipv4_addr \\; }\n    # Criar conjunto para IPv6 bloqueados\n    nft add set inet f2b-integ f2b-blocked-ips6 { type ipv6_addr \\; }\n    # Regra que bloqueia IPs presentes no conjunto IPv4\n    nft add rule inet f2b-integ input ip saddr @f2b-blocked-ips drop\n    # Regra que bloqueia IPs presentes no conjunto IPv6\n    nft add rule inet f2b-integ input ip6 saddr @f2b-blocked-ips6 drop\n\nactionstop = \n    # Durante a parada da jail, remover apenas os IPs desta jail do conjunto\n    # Nao removemos a tabela inteira para nao afetar outras jails\n    nft flush set inet f2b-integ f2b-blocked-ips\n    nft flush set inet f2b-integ f2b-blocked-ips6\n\nactioncheck = \n    # Verificar se a tabela e conjuntos existem antes de tentar inserir regras\n    nft list table inet f2b-integ > \/dev\/null 2>&1\n\nactionban = \n    # Adicionar IP ao conjunto de bloqueio IPv4 (ou IPv6 automaticamente)\n    nft add element inet f2b-integ f2b-blocked-ips { <ip> }\n    # Registrar bloqueio em log dedicado para auditoria e possivel sincronizacao\n    echo \"[$(date '+%Y-%m-%d %H:%M:%S')] fail2ban bloqueou <ip> na jail <name>\" >> \/var\/log\/fail2ban-integracao.log\n\nactionunban = \n    # Remover IP do conjunto de bloqueio\n    nft delete element inet f2b-integ f2b-blocked-ips { <ip> }\n    # Registrar desbloqueio\n    echo \"[$(date '+%Y-%m-%d %H:%M:%S')] fail2ban desbloqueou <ip> da jail <name>\" >> \/var\/log\/fail2ban-integracao.log\n\n[Init]\n\n# Nome padronizado usado nos logs e na identificacao da jail\nname = f2b-integ\n# Prioridade da chain nftables: -200 garante que processa DEPOIS do CrowdSec (prioridade -210)\n# e ANTES da chain INPUT nativa (prioridade 0)\nchain = input\n# Protocolo padrao (todos)\nprotocol = tcp\n# Portas nao sao necessarias pois bloqueamos o IP inteiro via sets nftables\n# mas mantemos para compatibilidade com a sintaxe do fail2ban\nport = 0:65535<\/code><\/pre>\n<p>Este arquivo de a\u00e7\u00e3o \u00e9 o cora\u00e7\u00e3o da nossa integra\u00e7\u00e3o. Vamos entender cada se\u00e7\u00e3o em detalhes: o bloco <strong>actionstart<\/strong> cria uma tabela nftables completamente isolada chamada <strong>inet f2b-integ<\/strong> com prioridade <strong>-200<\/strong>. Por que -200? Porque o bouncer do CrowdSec, por padr\u00e3o, utiliza prioridade <strong>-210<\/strong> em sua chain. No nftables, quanto menor o n\u00famero de prioridade, mais cedo a regra \u00e9 processada. Portanto, as regras do CrowdSec (prioridade -210) s\u00e3o avaliadas <strong>antes<\/strong> das regras do fail2ban (prioridade -200), que por sua vez s\u00e3o avaliadas antes da chain INPUT padr\u00e3o do sistema (prioridade 0). Essa ordena\u00e7\u00e3o garante que o CrowdSec tenha preced\u00eancia \u2014 um IP banido pela comunidade global ser\u00e1 descartado imediatamente, sem que o fail2ban precise sequer processar logs relacionados a ele.<\/p>\n<p>Agora, precisamos alterar a configura\u00e7\u00e3o das jails do fail2ban para utilizar essa nova a\u00e7\u00e3o. O arquivo principal de configura\u00e7\u00e3o de jails, normalmente em <strong>\/etc\/fail2ban\/jail.local<\/strong>, deve ser editado para referenciar a a\u00e7\u00e3o customizada. Para a jail <strong>sshd<\/strong>, por exemplo, a configura\u00e7\u00e3o ficar\u00e1 assim:<\/p>\n<pre><code># \/etc\/fail2ban\/jail.local (trecho da jail sshd customizada para integracao)\n[sshd]\nenabled = true\nport = ssh\nlogpath = %(sshd_log)s\nbackend = %(sshd_backend)s\nmaxretry = 3\nfindtime = 600\nbantime = 3600\n# Acao customizada para integracao com CrowdSec\naction = nftables-integracao\n         %(action_)s<\/code><\/pre>\n<p>Reinicie o fail2ban para aplicar as altera\u00e7\u00f5es e verifique se a tabela nftables foi criada:<\/p>\n<pre><code># Reiniciar o fail2ban com a nova configuracao\nsudo systemctl restart fail2ban\n\n# Verificar se a tabela dedicada foi criada corretamente\nsudo nft list table inet f2b-integ<\/code><\/pre>\n<p>A sa\u00edda deve mostrar a tabela com as chains e conjuntos que definimos:<\/p>\n<pre><code class=\"output\">table inet f2b-integ {\n    set f2b-blocked-ips {\n        type ipv4_addr\n    }\n    set f2b-blocked-ips6 {\n        type ipv6_addr\n    }\n    chain input {\n        type filter hook input priority -200; policy accept;\n        ip saddr @f2b-blocked-ips drop\n        ip6 saddr @f2b-blocked-ips6 drop\n    }\n}<\/code><\/pre>\n<p>Se a sa\u00edda do comando n\u00e3o exibir a tabela ou mostrar erros, revise o arquivo de a\u00e7\u00e3o \u2014 provavelmente h\u00e1 um caractere de escape ou aspas incorretas. Lembre-se de que os caracteres <strong>;<\/strong> e as quebras de linha s\u00e3o cr\u00edticos na sintaxe nftables dentro do arquivo de a\u00e7\u00e3o do fail2ban.<\/p>\n<h3>Passo 3: Configurando o CrowdSec e seu bouncer de firewall para coexist\u00eancia<\/h3>\n<p>Com o fail2ban devidamente isolado em sua pr\u00f3pria tabela nftables, chegou a vez de configurar o <strong>CrowdSec<\/strong> e seu bouncer para integra\u00e7\u00e3o consciente. O objetivo aqui \u00e9 garantir que o bouncer do CrowdSec utilize sua tabela padr\u00e3o (<strong>inet crowdsec<\/strong>) sem interferir na tabela <strong>inet f2b-integ<\/strong> que acabamos de criar, e tamb\u00e9m que o agente do CrowdSec seja capaz de <strong>ler os logs de bloqueio do fail2ban<\/strong> para enriquecer suas pr\u00f3prias decis\u00f5es. Essa \u00e9 a cereja do bolo da integra\u00e7\u00e3o: quando o fail2ban bloqueia um IP, o CrowdSec toma conhecimento desse evento e pode, por exemplo, escalar o bloqueio para um range maior ou reportar o IP para a comunidade.<\/p>\n<p>Primeiro, vamos configurar o bouncer de firewall. O arquivo de configura\u00e7\u00e3o padr\u00e3o est\u00e1 em <strong>\/etc\/crowdsec\/bouncers\/crowdsec-firewall-bouncer.yaml<\/strong>. Edite-o com os seguintes par\u00e2metros cr\u00edticos (mostramos apenas as linhas que precisam ser alteradas; o restante do arquivo permanece como instalado):<\/p>\n<pre><code># \/etc\/crowdsec\/bouncers\/crowdsec-firewall-bouncer.yaml\n# Configuracao ajustada para coexistencia com fail2ban\n# JRT Technology Solutions\n\n# Nome da tabela nftables que o bouncer vai gerenciar\nnftables:\n  table: crowdsec\n  chain: crowdsec-chain\n  set_ipv4: crowdsec-blv4\n  set_ipv6: crowdsec-blv6\n  # Prioridade DEVE ser menor (mais prioritaria) que a do fail2ban (-200)\n  # para garantir que CrowdSec processe primeiro\n  priority: -210\n\n# API do agente CrowdSec local\napi_url: http:\/\/localhost:8080\napi_key: ${API_KEY}\n\n# Modo de operacao: \"ban\" apenas bloqueia, \"unban\" desbloqueia\n# \"reconcile\" periodico sincroniza estado com a API\nmode: reconcile\nreconcile_interval: 60s\n\n# Intervalo maximo entre sincronizacoes completas\nmax_interval: 120s\n\n# Nao utilizar iptables legado, apenas nftables\niptables_mode: disabled<\/code><\/pre>\n<p>A chave <strong>api_key<\/strong> deve ser preenchida com a chave gerada durante a instala\u00e7\u00e3o do bouncer. Se voc\u00ea n\u00e3o a tem, gere uma nova com:<\/p>\n<pre><code># Listar bouncers registrados no agente CrowdSec\nsudo cscli bouncers list\n\n# Se o bouncer de firewall nao estiver listado, adicione-o\nsudo cscli bouncers add cs-firewall-bouncer\n\n# A saida exibira a API key; copie-a e insira no arquivo YAML acima<\/code><\/pre>\n<p>A sa\u00edda do comando <strong>cscli bouncers list<\/strong> deve mostrar pelo menos uma entrada para o bouncer de firewall:<\/p>\n<pre><code class=\"output\">NAME                           IP ADDRESS  API KEY                                  LAST PULL          VERSION  AUTH TYPE\ncs-firewall-bouncer            127.0.0.1   x9k3m2j7h5n1p8q4r6s2t9v1w3y5a7b9c0d1e3f5 2026-08-09T14:22:10  v0.0.28  api-key<\/code><\/pre>\n<p>Agora, vamos configurar o <strong>agente do CrowdSec<\/strong> para ler os logs de bloqueio do fail2ban. Isso \u00e9 feito atrav\u00e9s de um <strong>acquisition file<\/strong> customizado que aponta para o arquivo de log que criamos em <strong>\/var\/log\/fail2ban-integracao.log<\/strong>. Crie o arquivo <strong>\/etc\/crowdsec\/acquis.d\/fail2ban.yaml<\/strong>:<\/p>\n<pre><code># \/etc\/crowdsec\/acquis.d\/fail2ban.yaml\n# Arquivo de aquisicao para logs de integracao fail2ban\n# Permite que o CrowdSec tome decisoes baseadas nos bloqueios do fail2ban\n---\nsource: file\nfilename: \/var\/log\/fail2ban-integracao.log\nlabels:\n  type: fail2ban_integration\n  service: fail2ban\n  integration: fail2ban-crowdsec<\/code><\/pre>\n<p>Agora, precisamos criar um <strong>parser<\/strong> e um <strong>cen\u00e1rio<\/strong> no CrowdSec para processar esses logs. O parser vai extrair o IP bloqueado pelo fail2ban, e o cen\u00e1rio vai decidir se o CrowdSec deve tomar alguma a\u00e7\u00e3o adicional (como banir por mais tempo ou reportar).<\/p>\n<p>Crie o parser em <strong>\/etc\/crowdsec\/parsers\/s01-parse\/fail2ban-integration-parser.yaml<\/strong>:<\/p>\n<pre><code># \/etc\/crowdsec\/parsers\/s01-parse\/fail2ban-integration-parser.yaml\n# Parser para logs de bloqueio do fail2ban na integracao\n# JRT Technology Solutions - Curso Firewall, fail2ban e CrowdSec\nname: crowdsecurity\/fail2ban-integration\ndescription: \"Parse fail2ban integration logs\"\nfilter: \"evt.Parsed.program == 'fail2ban_integration'\"\nonsuccess: next_stage\nnodes:\n  - grok:\n      pattern: '\\[%{TIMESTAMP_ISO8601:timestamp}\\] fail2ban bloqueou %{IP:source_ip} na jail %{DATA:jail_name}'\n      apply_on: message\n    statics:\n      - meta: log_type\n        value: fail2ban_block\n      - meta: source_ip\n        expression: evt.Parsed.source_ip\n      - meta: jail_name\n        expression: evt.Parsed.jail_name<\/code><\/pre>\n<p>Agora, crie o cen\u00e1rio em <strong>\/etc\/crowdsec\/scenarios\/fail2ban-escalation.yaml<\/strong>:<\/p>\n<pre><code># \/etc\/crowdsec\/scenarios\/fail2ban-escalation.yaml\n# Cenario: quando fail2ban bloqueia o mesmo IP mais de 3 vezes em 24h,\n# o CrowdSec aplica um banao prolongado de 72h e reporta para a comunidade\ntype: trigger\nname: crowdsecurity\/fail2ban-escalation\ndescription: \"Escalate fail2ban blocks to long-term CrowdSec bans\"\nfilter: \"evt.Meta.log_type == 'fail2ban_block'\"\ngroupby: evt.Meta.source_ip\ncapacity: 3\nleakspeed: \"24h\"\nblackhole: 72h\nlabels:\n  remediation: true\n  service: fail2ban\n  type: fail2ban_escalation<\/code><\/pre>\n<p>Reinicie o agente do CrowdSec para carregar os novos parsers e cen\u00e1rios:<\/p>\n<pre><code># Recarregar a configuracao do agente CrowdSec\nsudo systemctl restart crowdsec\n\n# Verificar se o parser foi carregado sem erros\nsudo cscli parsers list | grep fail2ban\n\n# Verificar se o cenario foi carregado\nsudo cscli scenarios list | grep fail2ban<\/code><\/pre>\n<p>A sa\u00edda esperada deve mostrar ambos os componentes carregados:<\/p>\n<pre><code class=\"output\">crowdsecurity\/fail2ban-integration  \u2705  enabled  \/etc\/crowdsec\/parsers\/s01-parse\/fail2ban-integration-parser.yaml\ncrowdsecurity\/fail2ban-escalation   \u2705  enabled  \/etc\/crowdsec\/scenarios\/fail2ban-escalation.yaml<\/code><\/pre>\n<h3>Passo 4: Criando o script de reconcilia\u00e7\u00e3o e sincroniza\u00e7\u00e3o bidirecional<\/h3>\n<p>Mesmo com as tabelas nftables isoladas e o parser de logs configurado, ainda existe um caso de borda que precisamos tratar: o que acontece quando um IP \u00e9 desbloqueado pelo fail2ban (ap\u00f3s o bantime expirar) mas o CrowdSec ainda o considera malicioso? E o cen\u00e1rio inverso, quando o CrowdSec remove um IP de sua lista, mas o fail2ban ainda mant\u00e9m o bloqueio ativo? Para resolver isso de forma robusta, vamos criar um <strong>script de reconcilia\u00e7\u00e3o peri\u00f3dica<\/strong> que ser\u00e1 executado via cron a cada 5 minutos. Este script consulta o estado atual de ambas as ferramentas e garante consist\u00eancia.<\/p>\n<p>Crie o arquivo <strong>\/usr\/local\/bin\/reconcile-f2b-crowdsec.sh<\/strong> com o conte\u00fado abaixo. Este script \u00e9 utilizado diariamente em projetos da JRT Technology Solutions para ambientes com m\u00faltiplos servidores integrados:<\/p>\n<pre><code>#!\/bin\/bash\n# \/usr\/local\/bin\/reconcile-f2b-crowdsec.sh\n# Script de reconciliacao entre fail2ban e CrowdSec\n# Garante que IPs bloqueados pelo CrowdSec tambem estejam bloqueados\n# no fail2ban (para redundancia) e evita duplicacoes no nftables\n# JRT Technology Solutions - Implementacao e Suporte\n\nset -e\n\nLOGFILE=\"\/var\/log\/reconcile-f2b-crowdsec.log\"\nF2B_SET=\"inet f2b-integ f2b-blocked-ips\"\nCS_SET=\"inet crowdsec crowdsec-blv4\"\n\necho \"[$(date '+%Y-%m-%d %H:%M:%S')] Iniciando reconciliacao...\" >> \"$LOGFILE\"\n\n# 1. Obter lista de IPs bloqueados pelo CrowdSec\nmapfile -t CS_IPS < <(sudo nft list set \"$CS_SET\" 2>\/dev\/null | grep -oP 'elements = \\{ \\K[^}]+' | tr ',' '\\n' | tr -d ' ' | grep -v '^$')\n\n# 2. Obter lista de IPs bloqueados pelo fail2ban\nmapfile -t F2B_IPS < <(sudo nft list set \"$F2B_SET\" 2>\/dev\/null | grep -oP 'elements = \\{ \\K[^}]+' | tr ',' '\\n' | tr -d ' ' | grep -v '^$')\n\n# 3. Garantir que IPs do CrowdSec estejam tambem no fail2ban (redundancia)\nfor ip in \"${CS_IPS[@]}\"; do\n    if [[ ! \" ${F2B_IPS[*]} \" =~ \" ${ip} \" ]]; then\n        echo \"[$(date '+%Y-%m-%d %H:%M:%S')] Sincronizando IP $ip do CrowdSec para fail2ban...\" >> \"$LOGFILE\"\n        sudo nft add element \"$F2B_SET\" { \"$ip\" } 2>> \"$LOGFILE\" || true\n    fi\ndone\n\n# 4. Remover IPs expirados do fail2ban que ja nao estao no CrowdSec\n#    (apenas se o CrowdSec tiver removido explicitamente)\nfor ip in \"${F2B_IPS[@]}\"; do\n    # Verificar se o IP ainda esta nas decisoes ativas do CrowdSec\n    if ! sudo cscli decisions list -o json 2>\/dev\/null | jq -e --arg ip \"$ip\" '.[] | select(.value == $ip)' > \/dev\/null 2>&1; then\n        # Verificar se o IP nao tem bantime ativo no fail2ban\n        if ! sudo fail2ban-client status sshd 2>\/dev\/null | grep -q \"$ip\"; then\n            echo \"[$(date '+%Y-%m-%d %H:%M:%S')] Removendo IP $ip expirado do fail2ban...\" >> \"$LOGFILE\"\n            sudo nft delete element \"$F2B_SET\" { \"$ip\" } 2>> \"$LOGFILE\" || true\n        fi\n    fi\ndone\n\necho \"[$(date '+%Y-%m-%d %H:%M:%S')] Reconciliacao concluida. IPs CrowdSec: ${#CS_IPS[@]}, fail2ban: ${#F2B_IPS[@]}\" >> \"$LOGFILE\"\n<\/code><\/pre>\n<p>Torne o script execut\u00e1vel e agende no cron:<\/p>\n<pre><code># Tornar o script executavel\nsudo chmod +x \/usr\/local\/bin\/reconcile-f2b-crowdsec.sh\n\n# Agendar execucao a cada 5 minutos no crontab do root\n(sudo crontab -l 2>\/dev\/null; echo \"*\/5 * * * * \/usr\/local\/bin\/reconcile-f2b-crowdsec.sh\") | sudo crontab -<\/code><\/pre>\n<p>Execute o script manualmente uma vez para garantir que funciona sem erros e verifique o log gerado:<\/p>\n<pre><code># Executar manualmente o script de reconciliacao\nsudo \/usr\/local\/bin\/reconcile-f2b-crowdsec.sh\n\n# Verificar o log de saida\nsudo cat \/var\/log\/reconcile-f2b-crowdsec.log<\/code><\/pre>\n<p>A sa\u00edda deve indicar que a reconcilia\u00e7\u00e3o foi conclu\u00edda sem erros (possivelmente com 0 IPs em cada lista se o servidor estiver limpo):<\/p>\n<pre><code class=\"output\">[2026-08-09 14:35:01] Iniciando reconciliacao...\n[2026-08-09 14:35:01] Reconciliacao concluida. IPs CrowdSec: 0, fail2ban: 0<\/code><\/pre>\n<h3>Verificando a Instala\u00e7\u00e3o \/ Testando a Configura\u00e7\u00e3o<\/h3>\n<p>Chegou o momento mais importante da aula: <strong>validar que toda a integra\u00e7\u00e3o funciona na pr\u00e1tica<\/strong>. N\u00e3o basta configurar \u2014 \u00e9 necess\u00e1rio simular ataques reais e observar o comportamento das duas ferramentas em conjunto. Vamos executar uma sequ\u00eancia de testes que cobre: bloqueio por fail2ban, propaga\u00e7\u00e3o para CrowdSec, bloqueio direto via CrowdSec e reconcilia\u00e7\u00e3o peri\u00f3dica. Em ambientes corporativos da JRT Technology Solutions, esse mesmo roteiro de testes \u00e9 executado ap\u00f3s cada implanta\u00e7\u00e3o de integra\u00e7\u00e3o.<\/p>\n<p><strong>Teste 1 \u2014 Bloqueio via fail2ban e propaga\u00e7\u00e3o:<\/strong> simule falhas de autentica\u00e7\u00e3o SSH a partir de um IP de teste (use uma m\u00e1quina externa ou um container Docker com IP diferente do servidor). Se voc\u00ea n\u00e3o tiver outro host dispon\u00edvel, use o netcat para simular conex\u00f5es a partir de um IP de loopback secund\u00e1rio configurado temporariamente:<\/p>\n<pre><code># Adicionar um IP secundario na interface loopback para testes\nsudo ip addr add 10.99.99.99\/32 dev lo\n\n# Simular falhas de SSH (3 tentativas para atingir o maxretry)\nfor i in {1..3}; do\n    ssh -o StrictHostKeyChecking=no -o ConnectTimeout=2 root@10.99.99.99 -p 22 2>&1 | grep -i \"permission denied\\|connection refused\" || true\ndone\n\n# Aguardar 2 segundos e verificar se o fail2ban bloqueou\nsleep 2\nsudo nft list set inet f2b-integ f2b-blocked-ips<\/code><\/pre>\n<p>Se o fail2ban estiver corretamente configurado com a jail sshd usando a a\u00e7\u00e3o <strong>nftables-integracao<\/strong>, voc\u00ea ver\u00e1 o IP 10.99.99.99 listado no conjunto:<\/p>\n<pre><code class=\"output\">table inet f2b-integ {\n    set f2b-blocked-ips {\n        type ipv4_addr\n        elements = { 10.99.99.99 }\n    }\n}<\/code><\/pre>\n<p><strong>Teste 2 \u2014 Verificar se o CrowdSec registrou o bloqueio:<\/strong> alguns segundos ap\u00f3s o bloqueio, o CrowdSec deve ter processado o arquivo de log e registrado o evento:<\/p>\n<pre><code># Verificar eventos recentes no CrowdSec relacionados ao fail2ban\nsudo cscli events list -o json 2>\/dev\/null | jq '.[] | select(.meta.log_type==\"fail2ban_block\")'\n\n# Verificar o log de integracao gerado pelo fail2ban\nsudo tail -5 \/var\/log\/fail2ban-integracao.log<\/code><\/pre>\n<p>A sa\u00edda deve conter o registro do bloqueio com timestamp, IP e jail:<\/p>\n<pre><code class=\"output\">[2026-08-09 14:45:33] fail2ban bloqueou 10.99.99.99 na jail sshd<\/code><\/pre>\n<p><strong>Teste 3 \u2014 Bloqueio direto via CrowdSec:<\/strong> adicione manualmente uma decis\u00e3o de bloqueio no CrowdSec e verifique se ela aparece no nftables sem interferir na tabela do fail2ban:<\/p>\n<pre><code># Adicionar uma decisao manual de bloqueio de 1 hora no CrowdSec\nsudo cscli decisions add --ip 192.0.2.99 --duration 1h --reason \"teste_integracao\"\n\n# Verificar se o bouncer aplicou a regra no nftables\nsudo nft list set inet crowdsec crowdsec-blv4\n\n# Verificar que a tabela do fail2ban permanece inalterada\nsudo nft list set inet f2b-integ f2b-blocked-ips<\/code><\/pre>\n<p>Na sa\u00edda, o conjunto do CrowdSec deve conter o IP 192.0.2.99, enquanto o conjunto do fail2ban deve conter apenas o IP 10.99.99.99 (do teste 1). Isso prova que as tabelas est\u00e3o isoladas e n\u00e3o h\u00e1 conflito:<\/p>\n<pre><code class=\"output\">table inet crowdsec {\n    set crowdsec-blv4 {\n        type ipv4_addr\n        elements = { 192.0.2.99 }\n    }\n}\ntable inet f2b-integ {\n    set f2b-blocked-ips {\n        type ipv4_addr\n        elements = { 10.99.99.99 }\n    }\n}<\/code><\/pre>\n<p><strong>Teste 4 \u2014 Reconcilia\u00e7\u00e3o peri\u00f3dica:<\/strong> execute manualmente o script de reconcilia\u00e7\u00e3o e verifique se o IP 192.0.2.99 (bloqueado pelo CrowdSec) \u00e9 copiado para o conjunto do fail2ban (redund\u00e2ncia):<\/p>\n<pre><code># Executar reconciliacao manual\nsudo \/usr\/local\/bin\/reconcile-f2b-crowdsec.sh\n\n# Verificar novamente o conjunto do fail2ban\nsudo nft list set inet f2b-integ f2b-blocked-ips<\/code><\/pre>\n<p>O conjunto agora deve conter ambos os IPs, confirmando que a sincroniza\u00e7\u00e3o bidirecional est\u00e1 operante:<\/p>\n<pre><code class=\"output\">table inet f2b-integ {\n    set f2b-blocked-ips {\n        type ipv4_addr\n        elements = { 10.99.99.99, 192.0.2.99 }\n    }\n}<\/code><\/pre>\n<h3>Erros Comuns e Como Resolver<\/h3>\n<p>Em toda implementa\u00e7\u00e3o de <strong>integra\u00e7\u00e3o de fail2ban e CrowdSec<\/strong>, alguns erros s\u00e3o recorrentes. Listamos aqui os quatro mais frequentes que encontramos nos projetos da JRT Technology Solutions, com sintomas, causas e solu\u00e7\u00f5es completas:<\/p>\n<ul>\n<li><strong>Erro 1 \u2014 &#8220;Error: Could not process rule: File exists&#8221; no nftables:<\/strong> Este erro ocorre quando o fail2ban tenta criar uma chain ou tabela que j\u00e1 existe. Sintoma: o fail2ban n\u00e3o inicia e exibe mensagens de erro no <strong>journalctl -u fail2ban<\/strong>. Causa t\u00edpica: a tabela <strong>inet f2b-integ<\/strong> j\u00e1 foi criada manualmente ou por uma execu\u00e7\u00e3o anterior mal-finalizada. Solu\u00e7\u00e3o: remova a tabela manualmente com <strong>sudo nft delete table inet f2b-integ<\/strong> e rein<\/ul>\n<div style=\"margin:52px 0 40px;padding:36px 28px;background:linear-gradient(135deg,#0f172a 0%,#1a2744 100%);border:2px solid #25D366;border-radius:18px;text-align:center;box-shadow:0 4px 28px rgba(37,211,102,0.18)\">\n<p style=\"margin:0 0 10px;font-size:18px;color:#ffffff;font-weight:700;line-height:1.4\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 28px;font-size:15px;color:#94a3b8;font-weight:400;line-height:1.6\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de Firewall, fail2ban e CrowdSec para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1!%20Tenho%20interesse%20no%20treinamento%20de%20Firewall%2C%20fail2ban%20e%20CrowdSec.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:700;padding:15px 32px;border-radius:100px;text-decoration:none;box-shadow:0 4px 16px rgba(37,211,102,0.45);letter-spacing:0.01em\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/><\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Chegamos \u00e0 Aula 20 do nosso curso Firewall, fail2ban e CrowdSec \u2014 Do Zero ao Avan\u00e7ado e este \u00e9 um dos momentos mais aguardados por profissionais de seguran\u00e7a da informa\u00e7\u00e3o que atuam em ambientes de produ\u00e7\u00e3o: aprender a fazer a integra\u00e7\u00e3o de fail2ban e CrowdSec na mesma infraestrutura. Muitos administradores de sistemas se perguntam se &#8230; <a title=\"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura\" class=\"read-more\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/\" aria-label=\"Read more about Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":2145,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"iawp_total_views":1,"footnotes":""},"categories":[50],"tags":[3276],"class_list":["post-2146","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-firewall","tag-firewall-fail2ban-e-crowdsec-do-zero-ao-avancado-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutura"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Chegamos \u00e0 Aula 20 do nosso curso Firewall, fail2ban e CrowdSec \u2014 Do Zero ao Avan\u00e7ado e este \u00e9 um dos momentos mais aguardados por profissionais de seguran\u00e7a da informa\u00e7\u00e3o que atuam em ambientes de produ\u00e7\u00e3o: aprender a fazer a integra\u00e7\u00e3o de fail2ban e CrowdSec na mesma infraestrutura. Muitos administradores de sistemas se perguntam se\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Thiago Paes Rodrigues\"\/>\n\t<meta name=\"google-site-verification\" content=\"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta property=\"og:description\" content=\"Chegamos \u00e0 Aula 20 do nosso curso Firewall, fail2ban e CrowdSec \u2014 Do Zero ao Avan\u00e7ado e este \u00e9 um dos momentos mais aguardados por profissionais de seguran\u00e7a da informa\u00e7\u00e3o que atuam em ambientes de produ\u00e7\u00e3o: aprender a fazer a integra\u00e7\u00e3o de fail2ban e CrowdSec na mesma infraestrutura. Muitos administradores de sistemas se perguntam se\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"100\" \/>\n\t\t<meta property=\"og:image:height\" content=\"75\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-09T21:07:16+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-09T21:07:16+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61590814880509\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Chegamos \u00e0 Aula 20 do nosso curso Firewall, fail2ban e CrowdSec \u2014 Do Zero ao Avan\u00e7ado e este \u00e9 um dos momentos mais aguardados por profissionais de seguran\u00e7a da informa\u00e7\u00e3o que atuam em ambientes de produ\u00e7\u00e3o: aprender a fazer a integra\u00e7\u00e3o de fail2ban e CrowdSec na mesma infraestrutura. Muitos administradores de sistemas se perguntam se\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#blogposting\",\"name\":\"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura - BLOG - JRT Technology Solutions\",\"headline\":\"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura\",\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ai-image-1786309624225.jpg\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura\"},\"datePublished\":\"2026-08-09T18:07:16-03:00\",\"dateModified\":\"2026-08-09T18:07:16-03:00\",\"inLanguage\":\"pt-BR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#webpage\"},\"articleSection\":\"FIREWALL, Firewall, fail2ban e CrowdSec \\u2014 Do Zero ao Avan\\u00e7ado: Integrando fail2ban e CrowdSec na mesma infraestrutura\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/firewall\\\/#listItem\",\"name\":\"FIREWALL\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/firewall\\\/#listItem\",\"position\":2,\"name\":\"FIREWALL\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/firewall\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#listItem\",\"name\":\"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#listItem\",\"position\":3,\"name\":\"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/firewall\\\/#listItem\",\"name\":\"FIREWALL\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"telephone\":\"+552138277513\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-logo-mini.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#organizationLogo\",\"width\":100,\"height\":75},\"image\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61590814880509\",\"https:\\\/\\\/www.instagram.com\\\/jrtx.tech\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/\",\"name\":\"Thiago Paes Rodrigues\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#authorImage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-foto-rascunho3-96x96.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Thiago Paes Rodrigues\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#webpage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/\",\"name\":\"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura - BLOG - JRT Technology Solutions\",\"description\":\"Chegamos \\u00e0 Aula 20 do nosso curso Firewall, fail2ban e CrowdSec \\u2014 Do Zero ao Avan\\u00e7ado e este \\u00e9 um dos momentos mais aguardados por profissionais de seguran\\u00e7a da informa\\u00e7\\u00e3o que atuam em ambientes de produ\\u00e7\\u00e3o: aprender a fazer a integra\\u00e7\\u00e3o de fail2ban e CrowdSec na mesma infraestrutura. Muitos administradores de sistemas se perguntam se\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ai-image-1786309624225.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#mainImage\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/09\\\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\\\/#mainImage\"},\"datePublished\":\"2026-08-09T18:07:16-03:00\",\"dateModified\":\"2026-08-09T18:07:16-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"alternateName\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura - BLOG - JRT Technology Solutions","description":"Chegamos \u00e0 Aula 20 do nosso curso Firewall, fail2ban e CrowdSec \u2014 Do Zero ao Avan\u00e7ado e este \u00e9 um dos momentos mais aguardados por profissionais de seguran\u00e7a da informa\u00e7\u00e3o que atuam em ambientes de produ\u00e7\u00e3o: aprender a fazer a integra\u00e7\u00e3o de fail2ban e CrowdSec na mesma infraestrutura. Muitos administradores de sistemas se perguntam se","canonical_url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#blogposting","name":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura - BLOG - JRT Technology Solutions","headline":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura","author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/08\/ai-image-1786309624225.jpg","width":1440,"height":1024,"caption":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura"},"datePublished":"2026-08-09T18:07:16-03:00","dateModified":"2026-08-09T18:07:16-03:00","inLanguage":"pt-BR","mainEntityOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#webpage"},"isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#webpage"},"articleSection":"FIREWALL, Firewall, fail2ban e CrowdSec \u2014 Do Zero ao Avan\u00e7ado: Integrando fail2ban e CrowdSec na mesma infraestrutura"},{"@type":"BreadcrumbList","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","position":1,"name":"Home","item":"https:\/\/jrtx.com.br\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/firewall\/#listItem","name":"FIREWALL"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/firewall\/#listItem","position":2,"name":"FIREWALL","item":"https:\/\/jrtx.com.br\/blog\/category\/firewall\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#listItem","name":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura"},"previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#listItem","position":3,"name":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura","previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/firewall\/#listItem","name":"FIREWALL"}}]},{"@type":"Organization","@id":"https:\/\/jrtx.com.br\/blog\/#organization","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","url":"https:\/\/jrtx.com.br\/blog\/","telephone":"+552138277513","logo":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#organizationLogo","width":100,"height":75},"image":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61590814880509","https:\/\/www.instagram.com\/jrtx.tech\/"]},{"@type":"Person","@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author","url":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/","name":"Thiago Paes Rodrigues","image":{"@type":"ImageObject","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#authorImage","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/cropped-foto-rascunho3-96x96.jpeg","width":96,"height":96,"caption":"Thiago Paes Rodrigues"}},{"@type":"WebPage","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#webpage","url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/","name":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura - BLOG - JRT Technology Solutions","description":"Chegamos \u00e0 Aula 20 do nosso curso Firewall, fail2ban e CrowdSec \u2014 Do Zero ao Avan\u00e7ado e este \u00e9 um dos momentos mais aguardados por profissionais de seguran\u00e7a da informa\u00e7\u00e3o que atuam em ambientes de produ\u00e7\u00e3o: aprender a fazer a integra\u00e7\u00e3o de fail2ban e CrowdSec na mesma infraestrutura. Muitos administradores de sistemas se perguntam se","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#breadcrumblist"},"author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"creator":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/08\/ai-image-1786309624225.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#mainImage","width":1440,"height":1024,"caption":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura"},"primaryImageOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/#mainImage"},"datePublished":"2026-08-09T18:07:16-03:00","dateModified":"2026-08-09T18:07:16-03:00"},{"@type":"WebSite","@id":"https:\/\/jrtx.com.br\/blog\/#website","url":"https:\/\/jrtx.com.br\/blog\/","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","alternateName":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","og:type":"article","og:title":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura - BLOG - JRT Technology Solutions","og:description":"Chegamos \u00e0 Aula 20 do nosso curso Firewall, fail2ban e CrowdSec \u2014 Do Zero ao Avan\u00e7ado e este \u00e9 um dos momentos mais aguardados por profissionais de seguran\u00e7a da informa\u00e7\u00e3o que atuam em ambientes de produ\u00e7\u00e3o: aprender a fazer a integra\u00e7\u00e3o de fail2ban e CrowdSec na mesma infraestrutura. Muitos administradores de sistemas se perguntam se","og:url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/","og:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:secure_url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:width":100,"og:image:height":75,"article:published_time":"2026-08-09T21:07:16+00:00","article:modified_time":"2026-08-09T21:07:16+00:00","article:publisher":"https:\/\/www.facebook.com\/profile.php?id=61590814880509","twitter:card":"summary_large_image","twitter:title":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura - BLOG - JRT Technology Solutions","twitter:description":"Chegamos \u00e0 Aula 20 do nosso curso Firewall, fail2ban e CrowdSec \u2014 Do Zero ao Avan\u00e7ado e este \u00e9 um dos momentos mais aguardados por profissionais de seguran\u00e7a da informa\u00e7\u00e3o que atuam em ambientes de produ\u00e7\u00e3o: aprender a fazer a integra\u00e7\u00e3o de fail2ban e CrowdSec na mesma infraestrutura. Muitos administradores de sistemas se perguntam se","twitter:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg"},"aioseo_meta_data":{"post_id":"2146","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-08-09 21:10:17","updated":"2026-08-09 21:10:17","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\/category\/firewall\/\" title=\"FIREWALL\">FIREWALL<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/jrtx.com.br\/blog"},{"label":"FIREWALL","link":"https:\/\/jrtx.com.br\/blog\/category\/firewall\/"},{"label":"Aula 20: Integrando fail2ban e CrowdSec na mesma infraestrutura","link":"https:\/\/jrtx.com.br\/blog\/2026\/08\/09\/aula-20-integrando-fail2ban-e-crowdsec-na-mesma-infraestrutu\/"}],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=2146"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2146\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/2145"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}