iptables – parte 1

Prima parte di un post relativo all’uso di Iptables in Linux. Come molto spesso succede lascio queste note come mio promemoria e per un eventuale uso da parte di altri che si trovano nella necessità di consulatre rapidamente indicazioni pratiche edirette per risolvere un problema o imparare qualcosa.
Iptables sono le tabelle che permettono di definire un semplice firewall, controllando il traffico in entrata e in uscita da/per altri computer di una rete. E’ generalmente preinstallato sulla gran parte delle distribuzioni, quindi non dovremmo avere problemi a configurarlo anche prima di conneterci ad internet.

iptables

Impostare un semplice firewall
Queste indicazioni si riferiscono all’impostazione di un firewall con Iptables su un singolo computer.
NB: i comandi devono essere utilizzati rispettando esattamente la sintassi riportata, ciò significa maiuscole, minuscole e spazi come da esempi.

Aprire un terminale e digitare

>> iptables -L

Con questo comando vengono visualizzate le regole impostate.
Anche se non c’è nessuna regola già operativa vengono mostrate le intestazioni. In pratica vediamo le catene:

INPUT si riferisce a ciò che è in ingresso nel computer

FORWARD è usato in rete e si riferisce a ciò che viene passato a/da altri computer

OUTPUT si riferisce a ciò che è in uscita dal computer

Per iniziare ad impostare delle regole possiamo digitare:

>> iptables -A INPUT -i lo -j ACCEPT

Questo comando dice a Iptables di aggiungere una regola alla catena di INPUT accettando il loopback.
Il loopback si riferisce a tutto ciò che parte dal tuo computer e finisce sul tuo computer, passando attraverso Iptables. Di fatto non ha nulla a che fare con ciò che succede fuori dal tuo computer.
“-A INPUT” ha il significato di Aggiungere (Append) una regola alla catena di input.
“-i lo” si riferisce all’interfaccia di loopback.
“-j” significa jump, ovvero salta, e indica cosa deve essere fatto quando si applica questa regola.

Usando ancora il precedente comando

>> iptables -L

possiamo vedere che ora le tabelle prevedono la regola appena inserita.

Si può usare anche il comando

>> iptables -L -v

che introduce la visualizzazione più dettagliata delle regole.

Con il comando

>> iptables -A INPUT -p tcp --sport 80 -j ACCEPT

Con questo comando diciamo a Iptables di aggiungere una regola alla catena di INPUT accettando qualunque pacchetto di protocollo tcp che provenga dalla porta 80.
Dato che la porta 80 è quella normalmente usata per il www, di fatto questa regola ci permette di accettare i dati del web.

Un’altra regola:

>> iptables -A INPUT -p udp --sport 53 -j ACCEPT

In questo modo aggiungiamo una regola alla catena di INPUT per accettare i pacchetti sul protocollo udp che provengono dalla porta 53, che è quella del DNS.

Con la regola:

>> iptables -A INPUT -j DROP

Questa dice di scaricare qualunque pacchetto sia in ingresso.
Quando arriva un pacchetto, Iptables lo analizza secondo l’ordine con cui sono state inserite le regole.
Se è loopback, viene accettata. Se è su tcp dalla porta 80, viene accettata. Se è su udp dalla porta 53, viene accettata.
Se non è nessuna di queste, viene scaricata. E ciò blocca qualunque altra cosa cerchi di entrare sul tuo computer.
Il che costituisce un firewall.

Il tutto può essere visualizzato di nuovo con il solito comando

>> iptables -L

Sebbene il firewall sia impostato e operativo per consultare il web, se il computer verrà spento si perderanno tutte le regole impostate.

2 comments

  • Matteo Scaglia

    iptables -A INPUT -p tcp –sport 80 -j ACCEPT
    Manca un – prima di sport, il comando dovrebbe essere
    iptables -A INPUT -p tcp –-sport 80 -j ACCEPT

    • Mikis

      Grazie Matteo per la segnalazione. In effetti si trattava di un problema di visualizzazione del carattere. Con la nuova formattazione si vede bene e non si rischiano errori.

Lascia il tuo commento