Pular para o conteúdo
Skillpedia
Agentes35 mil · #5696

detecting-port-scanning-with-fail2ban

Faz seu agente detectar varreduras de porta e tentativas de força bruta SSH com Fail2ban. Bloqueia IPs ofensivos e alerta sobre sondagens de rede suspeitas.

O que ela faz

Este sistema ajuda a proteger seu servidor contra ataques de varredura de portas e tentativas de login forçado. Ele detecta atividades suspeitas e bloqueia automaticamente os endereços IP que as realizam, além de alertar sua equipe de segurança.

Quando usar

  • ✓Quando você quer bloquear IPs que escaneiam suas portas abertas.
  • ✓Para se defender de tentativas de adivinhar senhas de SSH, FTP, etc.
  • ✓Para criar regras personalizadas de detecção de ataques em seus logs.

Exemplo do que pedir para a IA

“Configure o Fail2ban para bloquear IPs que tentam acessar muitas portas rapidamente.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/detecting-port-scanning-with-fail2ban/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/detecting-port-scanning-with-fail2ban/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O Fail2ban monitora os arquivos de log do seu servidor em busca de padrões de ataque. Quando um padrão é detectado, ele usa regras de firewall para bloquear o endereço IP do atacante por um tempo.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill detecting-port-scanning-with-fail2ban

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/detecting-port-scanning-with-fail2ban/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Detectando Varreduras de Porta com Fail2ban

Quando Usar

  • Bloquear automaticamente endereços IP que realizam varreduras de porta em servidores expostos à internet
  • Defender SSH, HTTP, FTP e outros serviços contra ataques de força bruta com banimento automatizado de IP
  • Criar filtros de detecção personalizados para padrões de ataque específicos da organização em arquivos de log
  • Reduzir o ruído de bots de varredura automatizados antes que o tráfego chegue ao IDS/IPS para análise mais profunda
  • Implementar defesa em profundidade adicionando resposta automatizada baseada em host ao monitoramento de rede

Não use como o único controle de segurança de rede, para proteção contra ataques distribuídos de muitos IPs de origem, ou como substituto para regras de firewall adequadas e segmentação de rede.

Pré-requisitos

  • Fail2ban 0.11+ instalado (fail2ban-client --version)
  • Acesso root/sudo para manipulação de iptables/nftables
  • Serviços registrando tentativas de conexão em arquivos de log que podem ser analisados (syslog, auth.log, access.log)
  • iptables ou nftables instalados e operacionais como firewall do host
  • Opcional: Servidor SMTP para notificações por e-mail em eventos de banimento

Fluxo de Trabalho

Passo 1: Instalar e Configurar o Fail2ban

# Install Fail2ban
sudo apt install -y fail2ban

# Create local configuration (never edit jail.conf directly)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# Configure global defaults
sudo tee /etc/fail2ban/jail.local << 'EOF'
[DEFAULT]
# Ban duration (1 hour default, escalates for repeat offenders)
bantime = 3600
# Detection window
findtime = 600
# Max failures before ban
maxretry = 5
# Ban action using iptables
banaction = iptables-multiport
banaction_allports = iptables-allports
# Email notifications
destemail = security@example.com
sender = fail2ban@example.com
mta = sendmail
action = %(action_mwl)s

# Ignore internal networks
ignoreip = 127.0.0.1/8 ::1 10.10.0.0/16

# Use systemd journal backend where available
backend = systemd

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 7200
findtime = 300

[sshd-ddos]
enabled = true
port = ssh
filter = sshd-ddos
logpath = /var/log/auth.log
maxretry = 6
bantime = 3600
EOF

Passo 2: Criar Filtro Personalizado de Detecção de Varredura de Porta

# Create iptables logging rule for dropped connections
sudo iptables -N PORTSCAN
sudo iptables -A PORTSCAN -j LOG --log-prefix "PORTSCAN_DETECTED: " --log-level 4
sudo iptables -A PORTSCAN -j DROP

# Log SYN packets to closed ports (indicates scanning)
sudo iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m state --state NEW \
  -m recent --name portscan --set
sudo iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m state --state NEW \
  -m recent --name portscan --rcheck --seconds 10 --hitcount 20 -j PORTSCAN

# Create Fail2ban filter for port scanning
sudo tee /etc/fail2ban/filter.d/portscan.conf << 'EOF'
[Definition]
# Match iptables port scan log entries
failregex = PORTSCAN_DETECTED: .* SRC=<HOST> DST=\S+ .* DPT=\d+
ignoreregex =
datepattern = {^LN-BEG}
EOF

# Create Fail2ban filter for Nmap detection via kernel logs
sudo tee /etc/fail2ban/filter.d/nmap-scan.conf << 'EOF'
[Definition]
# Detect rapid connection attempts to multiple ports from same source
failregex = kernel: \[.*\] PORTSCAN_DETECTED: .* SRC=<HOST>
            iptables: .* PORTSCAN .* SRC=<HOST>
ignoreregex =
datepattern = {^LN-BEG}
EOF

# Create filter for HTTP scanning/probing
sudo tee /etc/fail2ban/filter.d/http-scan.conf << 'EOF'
[Definition]
# Detect scanners probing for common vulnerabilities
failregex = ^<HOST> .* "(GET|POST|HEAD) /(wp-login|wp-admin|phpmyadmin|admin|.env|xmlrpc|wp-content/uploads).*" (403|404|444)
            ^<HOST> .* "(GET|POST) /.*\.(php|asp|aspx|jsp|cgi)\?.*" (403|404)
            ^<HOST> .* "() .*" 400
            ^<HOST> .* "(GET|POST) /.*" 400
ignoreregex =
datepattern = {^LN-BEG}
EOF

Passo 3: Configurar Jail para Varredura de Porta

# Adicionar jails de varredura de porta em jail.local
sudo tee -a /etc/fail2ban/jail.local << 'EOF'

[portscan]
enabled = true
filter = portscan
logpath = /var/log/kern.log
maxretry = 10
findtime = 60
bantime = 86400
banaction = iptables-allports
action = %(action_mwl)s

[nmap-scan]
enabled = true
filter = nmap-scan
logpath = /var/log/kern.log
maxretry = 5
findtime = 30
bantime = 86400
banaction = iptables-allports
action = %(action_mwl)s

[http-scan]
enabled = true
filter = http-scan
logpath = /var/log/nginx/access.log
maxretry = 10
findtime = 300
bantime = 3600
banaction = iptables-multiport
port = http,https


…
Perguntas frequentes

O que é Fail2ban?

Fail2ban é um programa que protege seu servidor contra ataques de força bruta e varredura de portas, bloqueando automaticamente os IPs maliciosos.

O que é uma varredura de porta?

É quando um atacante tenta se conectar a muitas portas diferentes em seu servidor para encontrar serviços vulneráveis.

O que é um ataque de força bruta?

É quando um atacante tenta adivinhar senhas repetidamente, por exemplo, para acessar o SSH.

Detalhes

Descrição original do autor

Configures Fail2ban with custom filters and actions to detect port scanning activity, SSH brute force attempts, and network reconnaissance, automatically banning offending IP addresses and alerting security teams to suspicious network probing. '

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5696
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas