Skip to content

Cadush/Fail2ban-Monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

🛡️ fail2ban-guardian

Painel de monitoramento em tempo real para o Fail2Ban — exibe IPs banidos, detecta padrões de ataque e permite gerenciar bans diretamente pelo terminal.

Desenvolvido por Carlos Eduardo


Demonstração

  ███████╗ █████╗ ██╗██╗     ██████╗ ██████╗  █████╗ ███╗   ██╗
  ██╔════╝██╔══██╗██║██║     ╚════██╗██╔══██╗██╔══██╗████╗  ██║
  █████╗  ███████║██║██║      █████╔╝██████╔╝███████║██╔██╗ ██║
  ██╔══╝  ██╔══██║██║██║     ██╔═══╝ ██╔══██╗██╔══██║██║╚██╗██║
  ██║     ██║  ██║██║███████╗███████╗██████╔╝██║  ██║██║ ╚████║
  ╚═╝     ╚═╝  ╚═╝╚═╝╚══════╝╚══════╝╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═══╝

┌─────────────────────────────────────────────────────────────────────────────────────┐
│  🕐 10/04/2025  17:33:13  ┃  JAILS 3  ┃  IPs BANIDOS 32  ┃  HIGH 2  ┃  MEDIUM 1  ┃  ↻ 28:45  │
└─────────────────────────────────────────────────────────────────────────────────────┘

  🔒 BANS ATIVOS  ·  1/3  ·  15 IPs          ⚠  AMEAÇAS  ·  1/4  ·  16 registros
  ══════════════════════════════════          ══════════════════════════════════════
    JAIL   IP               DURAÇÃO  ...        IP               BANS  NÍVEL
    sshd   192.168.100.1    24h      ...        192.168.100.1    2     🔴 HIGH
           192.168.100.2    1h       ...        10.0.0.1         1     🟠 MEDIUM

Funcionalidades

  • Statusbar com hora, totais e countdown para próxima atualização
  • Tabelas com paginação — 5 IPs por página, navegação com N / P
  • Classificação de ameaças HIGH / MEDIUM / INFO com zebra visual
  • Busca detalhada de IP — status, jail, histórico e tentativas
  • Gerenciamento: banir, desbanir e editar registros
  • Duração configurável: 1h, 24h ou permanente
  • Registro persistente de motivo, duração e data do ban
  • Atualização automática a cada 30 minutos

Requisitos

  • Python 3.8+
  • Fail2Ban instalado e em execução
  • Acesso root (necessário para fail2ban-client e /var/log/fail2ban.log)

Instalação

git clone https://github.com/seu-usuario/fail2ban-guardian.git
cd fail2ban-guardian
chmod +x run.sh
./run.sh

O run.sh cria o ambiente virtual e instala as dependências automaticamente na primeira execução.


Instalação em servidor remoto

git clone https://github.com/seu-usuario/fail2ban-guardian.git /opt/fail2ban-guardian
cd /opt/fail2ban-guardian
chmod +x run.sh
./run.sh

Manter ativo após fechar SSH

# tmux (recomendado)
tmux new -s guardian
./run.sh
# Desanexar: Ctrl+B, D  |  Reanexar: tmux attach -t guardian

# screen
screen -S guardian
./run.sh
# Desanexar: Ctrl+A, D  |  Reanexar: screen -r guardian

Estrutura

fail2ban-guardian/
├── panel/
│   └── panel.py                # Interface principal (Rich)
├── parser/
│   ├── parser.py               # Leitura de logs e classificação de ameaças
│   └── notes.json.example      # Exemplo de registro de bans
├── .gitignore
├── requirements.txt
├── run.sh
└── README.md

Atalhos do painel

Tecla Ação
N Próxima página de IPs
P Página anterior de IPs
V Ver todos os IPs banidos em uma única tela
F Buscar informações detalhadas de um IP
R Recarregar o painel e resetar o countdown
M Abrir menu de gerenciamento
H Exibir ajuda
Ctrl+C Sair

Menu de gerenciamento (M)

Opção Descrição Campos
ban Bane um IP em uma jail IP, jail, duração, motivo
unban Remove o ban e apaga o registro IP, jail
editar Edita motivo e duração de um ban existente IP, jail, motivo, duração
voltar Retorna ao painel

Durações disponíveis

Opção Tempo
1h 1 hora
24h 24 horas
permanente Sem expiração

Classificação de ameaças

Nível Critério
🔴 HIGH ≥ 10 tentativas de acesso
🟠 MEDIUM Banido ≥ 3 vezes (reincidente)
🔵 INFO Ban único sem histórico agressivo

Configurando jails no Fail2Ban

sudo nano /etc/fail2ban/jail.d/sshd-custom.conf
[sshd]
enabled  = true
port     = ssh
logpath  = /var/log/auth.log
maxretry = 5
bantime  = 3600
findtime = 600
sudo fail2ban-client reload

Testando com IPs fictícios

sudo fail2ban-client set sshd banip 192.168.1.100
sudo fail2ban-client set sshd banip 10.0.0.55
sudo fail2ban-client status sshd

# Remover após o teste
sudo fail2ban-client set sshd unbanip 192.168.1.100

Tecnologias

  • Python 3.8+ — parser de logs e classificação de ameaças
  • Rich — interface de terminal com tabelas, painéis e cores
  • Fail2Ban — engine de banimento via fail2ban-client

Licença

© 2025 Carlos Eduardo — Todos os direitos reservados

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors