50% di sconto tutti i piani, offerta a tempo limitato. A partire da $2.48/mo
14 min rimasti
Sicurezza e Networking

Visualizzazione e Eliminazione delle Regole Linux Iptables – Un Foglio di Aiuto per Principianti

Lily Carnell By Lily Carnell 14 minuti di lettura Aggiornato 18 set 2023
Guida alla Visualizzazione e Eliminazione delle Regole Iptables

L'accesso non autorizzato e gli attacchi ai server sono minacce serie, per questo è importante implementare un firewall come parte della tua strategia di sicurezza di rete. Saper gestire le regole Iptables è uno degli strumenti fondamentali per ridurre questi rischi sui tuoi sistemi Linux. Questa guida ti aiuterà a familiarizzare con i concetti base del firewall, come visualizzare e rimuovere le regole iptables in Ubuntu, permettendoti di eseguire semplici comandi per raggiungerlo. Prima di spiegare come elencare o eliminare le regole iptables, vediamo prima cosa sono le regole iptables e perché le usiamo.

Che cos'è Iptables?

iptables è un'utilità firewall a riga di comando che consente o blocca il traffico tramite catene di policy. Quando si tenta di effettuare una connessione sul tuo sistema, iptables cerca una regola nell'elenco che corrisponda, fornendoti un valido strumento di sicurezza di rete. Se non ne trova una per la connessione, applica l'azione predefinita.

iptables di solito è preinstallato su qualsiasi Distribuzione Linux. Puoi usare il seguente comando per aggiornarlo o installarlo:

sudo apt-get install iptables

Perché usiamo Iptables?

Come firewall a riga di comando di Linux, iptables consente agli amministratori di sistema di gestire il traffico in ingresso e in uscita tramite regole di tabelle configurabili. Iptables utilizza una serie di tabelle con catene contenenti regole integrate o definite dall'utente.

Come accennato nella sezione precedente, iptables svolge un ruolo essenziale nella sicurezza di rete per la maggior parte dei sistemi Linux. Il resto di questo articolo si concentra principalmente sulla descrizione di come elencare tutte le regole iptables, compresi i concetti su come visualizzare e rimuovere le regole iptables.

Più nello specifico, questo articolo illustra alcuni dei compiti essenziali di iptables per mostrarti come elencare le regole, eliminare i contatori di pacchetti e byte, rimuovere una regola iptables, svuotare le catene e eliminare tutte le catene e accettare tutto il traffico.

Guida completa a Iptables in Ubuntu

Prima di procedere con la visualizzazione delle regole iptables, ricorda che devi utilizzare un server Linux con iptables installato. Oltre a questi requisiti, è essenziale disporre dei privilegi sudo. Quando si lavora con i firewall, fai attenzione a non bloccarti l'accesso al server bloccando il traffico SSH (porta: 22, per impostazione predefinita). Se perdi l'accesso a causa delle impostazioni del firewall, potrebbe essere necessario connettersi ad esso tramite una console out-of-band per correggerlo.

Leggi anche: Come Cambiare la Porta SSH in Linux | Guida Pratica Step-by-Step alla Porta SSH

Elencare regole per specifica

Puoi visualizzare le regole iptables attive in una tabella o come un elenco delle specifiche delle regole. Entrambi i metodi forniscono pressoché le stesse informazioni in formati diversi. Per elencare tutte le regole di iptables attivo per specifica, devi eseguire il comando iptables con l'opzione opzione -S:

sudo iptables -S

Dopo aver eseguito questo comando per visualizzare le regole iptables, vedrai un output come questo:

output dell'esecuzione del comando per elencare le regole
output dell'esecuzione del comando per elencare le regole

Elencare una catena specifica

Se desideri limitare l'output di iptables a una catena specifica come INPUT, OUTPUT, o TCP, puoi specificare il nome della catena direttamente dopo l'opzione -S. Ad esempio, il seguente comando iptables per visualizzare le regole ti aiuta a specificare la catena TCP:

sudo iptables -S TCP

output della lista della catena TCP
output della lista della catena TCP

Come accennato in precedenza, esiste un altro modo per visualizzare le regole di iptables: vederle come una tabella. Vediamo come funziona.

Elencare regole come tabelle

Usare un comando per mostrare le regole di iptables in formato tabella ti aiuta a confrontare varie regole. Devi eseguire il seguente comando con l'opzione opzione -L per visualizzare tutte queste regole attive in formato tabella:

sudo iptables -L

Questo comando mostra tutte le regole attuali ordinate per catena. Puoi limitare l'output a una catena specifica come INPUT, OUTPUT, TCP, e così via. Per farlo, specifica il nome della catena subito dopo l'opzione -L. Ecco un esempio che limita il risultato alla catena INPUT:

sudo iptables -L INPUT

output delle regole di iptables limitate alla catena INPUT
output delle regole di iptables limitate alla catena INPUT

La prima riga dell'output mostra il nome della catena (in questo caso INPUT) e la sua policy predefinita (DROP). La riga successiva contiene le intestazioni di ogni colonna e le regole della catena. Vediamole insieme:

  • Target: se un pacchetto corrisponde a una regola, il target determina cosa farne. Un pacchetto può essere accettato, scartato, registrato o inviato a un'altra catena per ulteriori verifiche.
  • prot: il protocollo (come TCP, udp, ICMP, o all)
  • opt: indica le opzioni IP (raramente usate)
  • source: mostra l'indirizzo IP o la subnet di origine del traffico 
  • destination: mostra l'indirizzo IP o la subnet di destinazione del traffico

La colonna senza etichetta rappresenta le opzioni della regola e contiene qualsiasi elemento non indicato nelle colonne precedenti. Può trattarsi di porte di origine e destinazione o dello stato della connessione del pacchetto.

Leggi anche: Installa OpenVPN su VPS – Configurazione Client OpenVPN 🔑

Come visualizzare il conteggio dei pacchetti e la dimensione aggregata?

Quando elenchi le regole di iptables, puoi visualizzare il numero di pacchetti e la dimensione totale in byte dei pacchetti che corrispondono a ogni regola. Questo è utile per capire quali regole ricevono traffico. Devi usare l'opzione -L e insieme per ottenere il risultato questo.

Ecco un esempio usando la catena INPUT con l'opzione -v:

sudo iptables -L INPUT -v

Visualizzazione del numero di pacchetti e della dimensione totale
output della visualizzazione del numero di pacchetti e della dimensione totale

Nota che l'elenco ora ha due colonne aggiuntive chiamate pkts e bytes. Abbiamo visto vari modi per visualizzare tutte le regole di iptables. Ora è il momento di imparare come azzerare i contatori di pacchetti e dimensione totale.

Come ripristinare il conteggio dei pacchetti e la dimensione aggregata?

Usa l'opzione -Z se vuoi azzerare i contatori di pacchetti e byte delle tue regole. Vengono azzerati anche al riavvio del sistema, il che è utile se vuoi verificare se il server riceve nuovo traffico che corrisponde alle tue regole esistenti.

Puoi azzerare i contatori di tutte le catene e regole usando l'opzione opzione -Z da solo:

sudo iptables -Z

Per azzerare i contatori di tutte le regole in una catena specifica, usa l'opzione -Z e specifica la catena. Ad esempio, il seguente comando azzera i contatori della catena INPUT:

sudo iptables -Z INPUT

Se vuoi azzerare i contatori di una regola specifica, devi indicare il nome della catena e il numero della regola con precisione. Ad esempio, puoi eseguire il seguente comando per azzerare i contatori della prima regola nella catena INPUT:

sudo iptables -Z INPUT 1

Oltre a conoscere i comandi per visualizzare tutte le regole di iptables e come azzerare i contatori di pacchetti e byte, è utile sapere come rimuovere una regola di iptables.

Leggi anche: Come installare il server PPTP VPN su VPS

Come rimuovere le regole iptables?

Puoi utilizzare più comandi per rimuovere le regole di Iptables o addirittura eliminare tutte le regole in una catena. Qui discuteremo questi metodi.

Rimuovere regole per specifica

Uno dei modi per rimuovere le regole di iptables consiste nel farlo tramite la specifica della regola. Ti permette di eseguire il comando iptables con opzione -D e la specifica della regola. Se vuoi rimuovere le regole utilizzando questa tecnica, puoi utilizzare l'output dell'elenco delle regole, iptables -S, come riferimento.

Ad esempio, per eliminare la regola che scarta i pacchetti in ingresso non validi (-A INPUT -m conntrack –ctstate INVALID -j DROP), puoi eseguire il seguente comando:

sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP

Tieni presente che l'opzione -A è destinata a indicare la posizione della regola al momento della creazione e deve essere esclusa qui.

Rimuovere regole per catena e numero

L'altro metodo che puoi utilizzare per rimuovere le regole di iptables consiste nell'utilizzare la sua catena e il numero di riga. Digita il seguente comando per scegliere il numero di riga di una regola, elencare le regole nel formato tabella e aggiungere l'opzione –line-numbers:

sudo iptables -L --line-numbers

Rimuovere regole per catena e numero
output di Rimozione delle regole per catena e numero

Dopo aver eseguito questo comando, tutte le regole di iptables hanno il loro numero di riga, indicato dall'intestazione num.

Quando sai quale regola desideri eliminare, tieni a mente la sua catena e il numero di riga. Devi utilizzare il comando iptables -D con la catena e il numero della regola. Ad esempio, se vuoi eliminare la regola di input che scarta i pacchetti non validi, puoi vedere che è la regola 3 della catena INPUT. Quindi esegui questo comando:

sudo iptables -D INPUT 3

Come svuotare le catene?

Esiste un modo per rimuovere tutte le regole di Iptables in una catena, che chiamiamo svuotamento della catena. Qui tratteremo i vari metodi per farlo. Prima di procedere oltre, tieni presente di non rimanere bloccato fuori dal server tramite SSH quando svuoti una catena con una policy predefinita di drop o deny. Perché se lo fai, potrebbe essere necessario connettersi tramite la console per ripristinare l'accesso.

Svuota una singola catena

Per svuotare una catena specifica, o in altre parole, eliminare tutte le regole nella catena, puoi utilizzare -F oppure l'equivalente –opzione flush e il nome della catena selezionata. Diciamo che vuoi rimuovere tutte le regole nella catena INPUT; cosa fare? Bene, è facile, esegui il seguente comando:

sudo iptables -F INPUT

Svuota tutte le catene

Per rimuovere tutte le catene o svuotarle, puoi utilizzare l'opzione -F o l'equivalente –flush da sola:

sudo iptables -F

Come svuotare tutte le regole, eliminare tutte le catene e accettare tutto?

A questo punto, descriveremo come svuotare tutte le regole del firewall, le tabelle e le catene e consentire tutto il traffico di rete. Tieni presente che questo processo disabiliterà effettivamente il firewall. Pertanto, dovresti seguire questa sezione solo se desideri ricominciare da capo con la configurazione del firewall.

Per prima cosa devi impostare le policy predefinite per ciascuna delle catene incorporate su ACCEPT. Il motivo principale per cui lo facciamo è assicurarci che non rimanga bloccato fuori dal server tramite SSH:

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

Quindi devi svuotare le tabelle nat e mangle, svuotare tutte le catene (-F)e eliminare tutte le catene non predefinite (-X) così:

sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X

Dopo aver eseguito i comandi precedenti, il firewall consente tutto il traffico di rete. Se vuoi elencare le tue regole ora, vedrai che non ce ne sono; rimangono solo le tre catene predefinite come le catene INPUT, FORWARD e OUTPUT.

Come configurare iptables in Ubuntu?

Come con qualsiasi comportamento firewall di base, le regole di iptables possono essere lette nell'ordine elencato in ciascuna catena, il che significa che dovrai impostare le regole nell'ordine corretto. Dopo aver aggiunto nuove regole, le avrai aggiunte alla fine dell'elenco delle regole. Puoi aggiungere nuove regole a una posizione particolare dell'elenco inserendole utilizzando iptables -I <index> -command. Il <index> è il numero di ordine in cui desideri inserire la regola in questo comando. Puoi utilizzare il seguente comando per capire quale numero di indice inserire:

sudo iptables -L --line-numbers

Il numero all'inizio di ogni riga di regola indica la posizione nella catena. Per aggiungere una nuova regola sopra una regola esistente, devi usare il numero di indice di quella regola. Ad esempio, per aggiungere una nuova regola all'inizio della catena, esegui il comando seguente con l'indice 1:

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

Quali sono le differenze tra iptables e firewalld?

Sia iptables che firewalld sono strumenti pratici per gestire i firewall su vari sistemi Linux progettati specificamente per il filtraggio dei pacchetti (filtraggio statico). Il filtraggio dei pacchetti è una strategia firewall che consente agli utenti di controllare l'accesso a una rete specifica gestendo i pacchetti di informazioni in ingresso e in uscita. Li permettono di passare o li bloccano in base a regole firewall predefinite relative ai loro indirizzi IP, protocolli e porte di origine e destinazione. Queste regole forniscono meccanismi di sicurezza molto efficienti, rendendo il filtraggio dei pacchetti di informazioni un'ottima difesa contro i dispositivi instradati al di fuori della LAN di sistema (Local Area Network).

Tieni presente che firewalld è stato inizialmente introdotto come software per gestire iptables e semplificare la navigazione. Ora che abbiamo introdotto firewalld e iptables, confrontiamoli in dettaglio.

iptables vs firewalld: configurazione del sistema

Firewalld e iptables utilizzano configurazioni diverse e impostazioni di archiviazione predefinite diverse. Con iptables, ogni modifica richiede di eliminare tutte le vecchie regole e caricare le nuove, quindi il sistema deve essere riavviato. Con firewalld, invece, le regole non vengono ricreate, bensì le differenze e le modifiche apportate vengono applicate alle regole esistenti in modo che tu possa vederle funzionare in tempo reale.

iptables vs firewalld: interfaccia utente

Firewalld utilizza un'interfaccia grafica (GUI). Iptables, invece, utilizza un'interfaccia a riga di comando (CLI), che potrebbe essere complicata per chi accede alle regole firewall del kernel Linux usando iptables, rendendo firewalld un'opzione più semplice. Vale la pena considerare che iptables ha un tempo di risposta più breve poiché usi solo comandi brevi. A parte questo, entrambi hanno i loro casi d'uso, quindi scegli quello con cui ti trovi più a tuo agio.

Considerazioni finali: visualizzare le regole iptables

Iptables è un'utility firewall altamente flessibile creata specificatamente per i sistemi operativi Linux. Non importa se sei nuovo a Linux o un amministratore di sistema professionista, ci sono modi in cui le regole di iptables possono esserti utili. Questo articolo presenta principalmente comandi di base per questa utility firewall, inclusa la visualizzazione delle regole di iptables e la rimozione delle regole di iptables, con l'obiettivo di rivedere brevemente le capacità di Linux. Inoltre, puoi utilizzare i nostri piani di hosting Linux VPS per sfruttare il vero potenziale di questo fantastico sistema operativo. Su Cloudzy offriamo vari piani Linux VPS basati su KVM adatti a molteplici casi d'uso, come hosting web, distribuzione di applicazioni web o persino configurazione di un ambiente per sviluppare, testare e automatizzare il codice.

Domande frequenti

Come elencare tutte le regole iptables di Linux per specifica?

Se vuoi elencare tutte le regole di iptables attive per specifica o funzionalità, puoi farlo con il comando iptables seguito da opzione -S. Assicurati di utilizzare sudo in questo caso:

sudo iptables -S

Come rimuovere le regole iptables?

Per rimuovere una catena specifica, eliminando tutte le regole nella catena, devi usare l'opzione -F o –flush e il nome della catena. Diciamo che vogliamo eliminare tutte le regole nella catena OUTPUT. Come fare? Devi eseguire questo comando:

 sudo iptables -F OUTPUT

Come funziona iptables in Ubuntu?

Il firewall iptables confronta il traffico di rete rispetto a un insieme di regole. Le regole di iptables specificano le caratteristiche di un pacchetto per corrispondere alla regola e quale azione intraprendere se i pacchetti corrispondono. Ovviamente, ci sono molte opzioni per definire quali pacchetti corrispondono a una regola specifica.

Le regole iptables hanno effetto immediato? Perché?

Sì, le regole di iptables hanno effetto istantaneo perché il tuo script aggiunge alle catene INPUT e OUTPUT, e le tue regole vengono aggiunte alla fine di quelle catene.

Condividi

Altro dal blog

Continua a leggere.

Un'immagine di titolo Cloudzy per una guida MikroTik L2TP VPN, che mostra un laptop che si connette a un rack di server tramite un tunnel digitale blu e oro luminoso con icone di scudo.
Sicurezza e Networking

Configurazione MikroTik L2TP VPN (con IPsec): Guida RouterOS (2026)

In questa configurazione MikroTik L2TP VPN, L2TP gestisce il tunneling mentre IPsec si occupa della cifratura e dell'integrità; combinarli ti dà compatibilità nativa con i client senza dipendenze da software di terze parti

Rexa CyrusRexa Cyrus 9 min di lettura
Finestra di terminale che mostra il messaggio di avviso SSH relativo alla modifica dell'identificazione dell'host remoto, con il titolo Fix Guide e il brand Cloudzy su sfondo verde acqua scuro.
Sicurezza e Networking

Avviso: l'identificazione dell'host remoto è cambiata e come risolverlo

SSH è un protocollo di rete sicuro che crea un tunnel crittografato tra i sistemi. Rimane popolare tra gli sviluppatori che hanno bisogno di accesso remoto ai computer senza richiedere un'interfaccia grafica.

Rexa CyrusRexa Cyrus lettura di 10 minuti
Illustrazione della guida alla risoluzione dei problemi del server DNS con simboli di avviso e server blu su sfondo scuro per errori di risoluzione dei nomi Linux
Sicurezza e Networking

Errore temporaneo nella risoluzione dei nomi: cosa significa e come risolverlo

Durante l'utilizzo di Linux, potresti incontrare un errore di risoluzione temporanea dei nomi quando tenti di accedere a siti web, aggiornare pacchetti o eseguire operazioni che richiedono una connessione a internet

Rexa CyrusRexa Cyrus 12 min di lettura

Pronto per il deployment? A partire da $2,48/mese.

Cloud indipendente, dal 2008. AMD EPYC, NVMe, 40 Gbps. Rimborso entro 14 giorni.