Cosa fa questo modulo #
Il firewall è la porta del server: decide quali connessioni entrano e quali vengono respinte. Su queste macchine quel lavoro lo fa ufw (il firewall di Ubuntu), e il modulo firewall ti dà un comando pratico per gestirlo senza memorizzare la sintassi di ufw.
Con esso puoi vedere a colpo d'occhio lo stato del firewall (attivo, policy predefinita e regole), bloccare manualmente un IP o un intervallo che ti sta dando fastidio, liberare quel blocco quando non serve più, e aprire o chiudere porte mantenendo la configurazione in sincronia con ciò che ufw applica.
I ban automatici per tentativi di intrusione (forza bruta di SSH, ecc.) li gestisce fail2ban per conto suo. Questo modulo lavora con i tuoi blocchi manuali: block, unblock e flush toccano solo ciò che aggiungi manualmente e non interferiscono mai con i ban di fail2ban.
Attività comuni #
Scegli cosa vuoi fare. Ogni ricetta porta il comando già scritto — basta cambiare l'IP o la porta con i tuoi e premere Copia.
1
Vedere lo stato del firewall
Verifica se è attivo, la sua policy predefinita e quante regole ha.
Connettiti via SSH al tuo server e richiedi il riepilogo:
$ sudo imaxe firewall statusLo vuoi per uno script? Aggiungi --json e avrai la stessa informazione leggibile dalla macchina:
$ sudo imaxe firewall status --json2
Bloccare un IP abusivo
Taglia l'accesso a un IP o intervallo che ti sta infastidendo.
Blocca un IP specifico, annotando il motivo per ricordartene poi:
$ sudo imaxe firewall block 203.0.113.10 --reason "abuso"Vuoi solo un blocco temporaneo? Assegnagli una durata con --ttl e si toglierà da solo. Puoi anche bloccare un intero intervallo in notazione CIDR:
$ sudo imaxe firewall block 203.0.113.10 --reason "abuso" --ttl 24h
$ sudo imaxe firewall block 203.0.113.0/24 --reason "scansione"--ttl, il blocco scade da solo allo scadere del termine.3
Vedere quali IP ho bloccato
Ripassa l'elenco dei blocchi manuali che hai attivi.
Elenca gli IP e gli intervalli che hai bloccato manualmente (ricorda: i ban di fail2ban non compaiono qui):
$ sudo imaxe firewall blocked4
Sbloccare un IP
Libera un blocco manuale che non serve più.
Libera l'IP o l'intervallo esatto che hai bloccato (così come compare in blocked):
$ sudo imaxe firewall unblock 203.0.113.105
Aprire o chiudere una porta
Lascia passare un nuovo servizio o chiudi uno che non offri più.
Apri una porta (con un commento per sapere a cosa serve). Puoi limitare chi entra con --from:
$ sudo imaxe firewall allow 443/tcp --comment "https"
$ sudo imaxe firewall allow 5432/tcp --from 203.0.113.0/24 --comment "postgres interno"Chiudi una porta che non usi più:
$ sudo imaxe firewall deny 8080/tcpfirewall.yml. Verificalo con imaxe firewall rules list.Non chiudere la porta 22 (SSH) se sei connesso via SSH: perderesti l'accesso al server. Il modulo mantiene 22/tcp consentita per impostazione predefinita proprio per evitare quello spavento. E ricorda che flush cancella tutti i tuoi blocchi manuali in una volta.
Sinossi #
imaxe firewall <subcomando> [<ip>|<puerto>] [flags]Tutti i sottocomandi richiedono privilegi di root (usa sudo) perché operano su ufw e scrivono in /etc/imaxe/. Aggiungi --json a status, blocked o rules list per ottenere un output leggibile dalla macchina, adatto allo scripting.
Sottocomandi #
| Sottocomando | Cosa fa | Flag rilevanti |
|---|---|---|
| status | Stato del firewall: attivo, policy predefinita, n° di regole e blocchi manuali. | --json |
| blocked | Elenca gli IP/intervalli bloccati manualmente (non include i ban di fail2ban). | --json |
| block | Blocca un IP o intervallo manualmente, con motivo e durata opzionali. | --reason, --ttl |
| unblock | Libera un blocco manuale. Non tocca i ban di fail2ban. | — |
| flush | Cancella tutti i blocchi manuali (distruttivo). Non tocca i ban di fail2ban. | --yes |
| rules list | Elenca le regole delle porte (porte consentite, origini). | --json |
| allow | Apre una porta e la riflette nella config. | --from, --comment |
| deny | Chiude una porta e la riflette nella config. | --from |
| reload | Ricarica ufw (riapplica le sue regole attive). | — |
rules raggruppa la gestione delle regole delle porte; per ora il suo unico sottocomando è rules list.
Argomenti e flag #
| Argomento / Flag | Tipo | Predefinito | Descrizione |
|---|---|---|---|
| <ip>[/cidr] obbl. | string | — | IP o intervallo CIDR su cui operare in block e unblock (per es. 203.0.113.10 o 203.0.113.0/24). |
| <port>[/proto] obbl. | string | — | Porta su cui operare in allow e deny (per es. 443 o 443/tcp). |
| --reason | string | — | In block: motivo del blocco (informativo). |
| --ttl | durata | permanente | In block: durata del blocco (per es. 24h). Per impostazione predefinita, permanente. |
| --from | cidr | qualsiasi | In allow/deny: limita l'origine a un CIDR specifico. |
| --comment | string | — | In allow: commento descrittivo della regola. |
| --yes | bool | false | In flush: conferma senza chiedere (operazione distruttiva). |
| --json | bool | false | In status/blocked/rules list: emette il risultato come JSON su stdout. |
File e percorsi #
| Percorso | Contenuto |
|---|---|
| /etc/imaxe/firewall.yml | Configurazione del modulo: porte consentite che allow/deny mantengono in sincronia con ufw. |
Esempio di firewall.yml:
allow:
- { port: 22, proto: tcp, comment: "ssh" }
- { port: 443, proto: tcp, comment: "https" }Codici di uscita e log #
Ogni esecuzione restituisce un codice che puoi verificare con echo $? — utile per concatenare negli script:
Segui lo stato e le regole in tempo reale mentre esegui il debug:
$ sudo imaxe firewall status
$ sudo imaxe firewall rules listRisoluzione dei problemi #
| Sintomo | Causa probabile | Soluzione |
|---|---|---|
| Esce NOTFOUND (codice 3) allo sblocco | L'IP non coincide esattamente con il blocco impostato (manca il /cidr, per esempio). | Esegui imaxe firewall blocked e copia la voce così com'è per l'unblock. |
Ho bloccato un IP ma continua a risultare bannato dopo unblock | Il blocco l'ha messo fail2ban, non tu. | Questo modulo libera solo blocchi manuali; i ban automatici li gestisce fail2ban separatamente. |
| Ho aperto una porta ma non entra traffico | La regola è in ufw ma un firewall esterno (security group) è ancora chiuso. | Verifica con imaxe firewall rules list e apri la porta anche presso il tuo provider cloud. |
| Ho perso l'accesso SSH dopo aver toccato le regole | La porta 22 è stata chiusa o limitata. | Accedi dalla console del provider e torna a consentire 22/tcp con imaxe firewall allow 22/tcp. |
Bloccato con il modulo Firewall?
Scrivici allegando l'output di «imaxe <module> status --json» e ti rispondiamo in fretta.