Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/seriocomic/fencepost
Sicurezza dei ContenitoriAnalisi delle VulnerabilitàAudit di ConfigurazioneSicurezza di ReteSicurezza CloudDevSecOpsThreat IntelligenceRisposta agli IncidentiAnalisi dei Log
GitHubseriocomic/fencepost

FencePost

Multi-host UFW firewall dashboard — spiega le regole in linguaggio semplice, rileva lacune di sicurezza e fornisce diagnostica delle connessioni

24 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

FencePost

Dashboard multi-host per il firewall UFW. Si connette a host Linux tramite SSH, analizza le regole del firewall e le porte in ascolto, spiega tutto in italiano semplice e segnala le lacune di sicurezza.

Python FastAPI License

Caratteristiche

  • Panoramica multi-host — visualizza a colpo d'occhio lo stato UFW, le policy predefinite e i servizi attivi su tutti gli host
  • Spiegazioni in italiano semplice — ogni regola del firewall viene tradotta in descrizioni leggibili con nomi di VLAN e servizi
  • Rilevamento lacune — trova le porte in ascolto senza una regola UFW di consenso corrispondente, suddivise per esposizione esterna vs locale
  • Diagnostica connessione — traccia un IP sorgente + porta di destinazione attraverso la catena di regole per vedere se il traffico sarebbe consentito, bloccato o rifiutato
  • Rilevamento modifiche — confronta lo stato attuale con l'ultimo snapshot e pubblica eventi (regole aggiunte/rimosse, UFW attivato/disattivato, host non raggiungibili) su un webhook
  • Consapevole di Docker — segnala gli host Docker in cui iptables può bypassare UFW

Screenshot

Home Elenco regole Dettaglio regola

Pagine

RouteDescrizione
/Dashboard panoramica con schede host, pillole dei servizi, conteggi lacune

Architettura

root@kitploit:~
Browser --> Cloudflare Tunnel --> Proxy inverso --> FencePost (:8890)
  Contenitore FastAPI
    |-- SSH --> Host 1 (ufw status, ss -tlnp)
    |-- SSH --> Host 2
    |-- SSH --> Host N
    '-- POST --> Webhook di notifica

FencePost è sola lettura — non modifica mai le regole del firewall, si limita a riferire su di esse.

Avvio rapido

Prerequisiti

  • Python 3.12+ (sviluppo locale) o Docker (produzione)
  • Coppia di chiavi SSH (ed25519) con chiave pubblica distribuita sugli host di destinazione
  • Voce sudoers su ogni host per l'utente SSH:
    root@kitploit:~
    <utente> ALL=(ALL) NOPASSWD: /usr/sbin/ufw status verbose, /usr/sbin/ufw status numbered, /usr/bin/ss -tlnp
    

1. Clonare e configurare

root@kitploit:~
git clone <url-repo> && cd fencepost

# Aggiungi la tua chiave SSH
cp ~/.ssh/your_key ssh/id_ed25519
chmod 600 ssh/id_ed25519

# Crea il tuo file ambiente dal template
cp .env.example .env
# Modifica .env con le credenziali reali

2. Modificare config.yaml

root@kitploit:~
timezone: Australia/Melbourne

hosts:
  - name: Mio Server
    hostname: 192.168.1.10
    ssh_user: deploy
    ssh_port: 22
    is_docker_host: false

networks:
  "192.168.1.0/24": "LAN"

3. Eseguire

Sviluppo locale

root@kitploit:~
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# Carica le variabili d'ambiente (bash/zsh)
export $(grep -v '^#' .env | xargs)

uvicorn app.main:app --reload --port 8890

Apri http://localhost:8890.

Nota: la modalità locale utilizza la chiave SSH al percorso specificato in config.yaml (ssh.key_path). Per lo sviluppo locale potresti voler sovrascrivere questo valore per puntare alla tua ssh/id_ed25519 locale:

root@kitploit:~
ssh:
  key_path: ssh/id_ed25519
  timeout: 10

Docker (produzione)

root@kitploit:~
docker compose up -d --build

Apri http://localhost:8890. Il contenitore legge le credenziali da .env automaticamente tramite compose.yaml.

Configurazione

config.yaml

Variabili d'ambiente (.env)

Le credenziali sono memorizzate in .env (ignorato da git) e referenziate da compose.yaml. Non commettere mai segreti nel repository.

Stack

  • Backend: Python 3.12 / FastAPI / Uvicorn
  • SSH: Paramiko con autenticazione a chiave ed25519
  • Template: Jinja2 (render lato server, nessun framework JS)
  • Client HTTP: httpx (notifiche webhook)
  • Stile: CSS personalizzato, tema scuro, nessun framework
  • Font: DM Mono (dati), Anybody (titoli)

Struttura del progetto

root@kitploit:~
app/
  main.py           # Rotta FastAPI e autenticazione
  models.py         # Dataclass HostFirewallState, UFWRule, ListeningPort
  parser.py         # Analizza output ufw status e ss
  explainer.py      # Traduce le regole in italiano semplice
  diagnose.py       # Motore diagnostico connessione
  gap_detector.py   # Trova le porte in ascolto scoperte
  ssh_client.py     # Wrapper Paramiko, recupero parallelo host
  eventfeed.py      # Rilevamento modifiche e pubblicazione webhook
  templates/
    base.html       # Layout, CSS, navigazione
    overview.html   # Griglia dashboard host
    host_detail.html # Vista dettaglio host a schede
    diagnose.html   # Modulo diagnostico connessione e risultati
    login.html      # Pagina di autenticazione
config.yaml         # Definizioni host, VLAN, dispositivi, fuso orario
compose.yaml        # Definizione servizio Docker Compose
Dockerfile          # Immagine Python 3.12 slim
.env.example        # Template per le variabili d'ambiente
ssh/                # Directory delle chiavi SSH (chiave non commessa)
data/               # Stato runtime (last_state.json, non commesso)

Aggiungere un host

  1. Aggiungi una voce in config.yaml sotto hosts:
  2. Copia la chiave pubblica SSH sull'host: ssh-copy-id -i ssh/id_ed25519.pub utente@host
  3. Crea /etc/sudoers.d/fencepost sull'host con le regole NOPASSWD richieste
  4. Ricostruisci: docker compose up -d --build

Notifiche

Quando configurato in config.yaml con una variabile d'ambiente NOTIFICATIONS_API_KEY, FencePost pubblica eventi di modifica a ogni aggiornamento della dashboard:

  • UFW attivato / disattivato
  • Regole aggiunte / rimosse (con dettagli della regola)
  • Nuove porte esterne scoperte
  • Host diventato irraggiungibile / recuperato

Gli eventi includono chiavi di idempotenza per prevenire duplicati.

Licenza

MIT

Scarica lo strumento
/host/{nome}Dettaglio host con vista a schede: regole spiegate, porte scoperte, porte in ascolto, output grezzo
/diagnoseStrumento diagnostico connessione con visualizzazione della traccia regola per regola
/loginAutenticazione basata su sessione
SezioneScopo
timezoneFuso orario IANA per i timestamp visualizzati (es. Australia/Melbourne, UTC)
hostsArray di destinazioni SSH: name, hostname, ssh_user, ssh_port, is_docker_host
sshkey_path (percorso della chiave privata) e timeout in secondi
networksMappatura CIDR-nome per le VLAN — usata nelle spiegazioni delle regole e nella diagnostica
devicesIP nominati per i pulsanti di selezione rapida nella pagina di diagnostica
notificationsWebhook opzionale: url, channel (la chiave API è impostata tramite variabile d'ambiente)
VariabileDefaultDescrizione
FENCEPOST_USERNAMEadminNome utente per il login
FENCEPOST_PASSWORDfencepostPassword per il login
FENCEPOST_SECRET_KEYchange-meChiave per la firma del cookie di sessione
FENCEPOST_CONFIGconfig.yamlPercorso del file di configurazione
NOTIFICATIONS_API_KEYToken Bearer per il webhook di notifica