Introduzione
La configurazione di un firewall è una fase significativa nella protezione della maggior parte dei moderni sistemi operativi. La maggior parte delle distribuzioni Linux sono dotate di diversi strumenti firewall che possiamo utilizzare per configurare il nostro firewall. In questa guida, discuteremo di come configurare il firewall Iptables su Ubuntu 14.04.
Nota: Questo tutorial copre la sicurezza IPv4. In Linux, la sicurezza IPv6 viene mantenuta separatamente da IPv4. Ad esempio, "iptables" mantiene solo le regole del firewall per gli indirizzi IPv4 ma ha una controparte IPv6 chiamata "ip6tables", che può essere utilizzata per mantenere le regole del firewall per gli indirizzi di rete IPv6.
Comandi di base
Prima di seguire questa guida, devi avere accesso a un account di superutente non root, con i privilegi sudo impostati sul tuo server. Per prima cosa devi sapere che i comandi di iptables devono essere eseguiti solo con i privilegi di root. Per implementare questa condizione, aggiungeremo “sudo” prima di tutti i comandi di questa guida. Possiamo anche accedere come utente root usando i comandi "su" o "sudo -i" ma continueremo con "sudo" per questa guida.
Inizialmente dobbiamo trovare le regole correnti che sono configurate per iptables. Ciò si ottiene utilizzando il seguente comando:
# sudo iptables -L
Chain INPUT (policy ACCEPT) target prot opt origine destinazione Chain FORWARD (policy ACCEPT) target prot opt origine destinazione Chain OUTPUT (policy ACCEPT) target destinazione prot opt origine >Possiamo anche vedere le regole attuali in un formato più semplice usando il flag -S invece del flag -L:
# sudo iptables -S-P INGRESSO ACCEPT-P AVANTI ACCEPT-P USCITA ACCEPTIn entrambi i risultati possiamo vedere tre catene visualizzate come INPUT, FORWARD e OUTPUT. Vediamo anche che la politica predefinita di ciascuna catena è impostata su ACCEPT , ma non ci sono regole effettive impostate nei risultati sopra. Questo perché Ubuntu non viene fornito con le regole predefinite impostate.
Se ci sono regole già configurate in Iptables, possiamo svuotarle completamente usando il flag -F come segue:
Nota:se stai cancellando le regole da remoto, le politiche delle catene INPUT e OUTPUT dovrebbero essere impostate su ACCEPT. Questo può essere fatto digitando
# sudo iptables -P INPUT ACCEPT# sudo iptables -P OUTPUT ACCEPT# sudo iptables -FRegole di impostazione per Iptables
Le regole per iptables possono essere impostate in due modi. Un modo è consentire alla regola predefinita di ACCETTARE e bloccare il traffico indesiderato impostando regole specifiche. L'altro metodo consiste nel configurare il traffico consentito e bloccare tutto il resto. Il secondo metodo è spesso quello preferito.
La prima regola da assegnare è accettare tutto il traffico in entrata digitando il seguente comando:
# sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTPossiamo vedere il risultato del comando precedente usando di nuovo il flag -L.
# sudo iptables -LInput catena (politica accetta) target prot Opt Opt Destination Accetta tutto -ovunque correlato CTSTATE relativo a CtState, in avanti (criterio Accetta) Target Opt Opt Opt Destination Output della catena (Politica Accetta) Destinata Opt Opt Opt Target.Qui possiamo vedere che la politica della catena INPUT è cambiata rispetto a prima dell'applicazione della regola.
Il passaggio successivo è consentire il traffico verso una porta specifica per abilitare le connessioni SSH . Questo può essere fatto seguendo:
# sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT"ssh" si traduce per impostazione predefinita nella porta numero 22. Qualsiasi numero di porta può essere utilizzato al posto di "ssh". Per consentire l'accesso al server Web HTTP, digitare il comando seguente:
# sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTC'è un'altra regola ACCEPT che deve essere assegnata al nostro Iptables in modo che il nostro server funzioni correttamente.
# sudo iptables -I INPUT 1 -i lo -j ACCEPTAggiunta di una regola di rilascio
Finora abbiamo aggiunto solo le regole ACCEPT ai nostri Iptables. Dobbiamo assegnare anche regole di blocco poiché tutti i pacchetti di rete verranno accettati secondo le regole assegnate ai nostri Iptables. Un modo è assegnare una regola DROP alla politica predefinita della nostra catena INPUT. Questo cattura tutti i pacchetti che cadono attraverso la nostra catena INPUT e li rilascia.
# sudo iptables -P INPUT DROPUna delle implicazioni di questo tipo di design è che ricorre all'eliminazione dei pacchetti se le regole vengono annullate.
L'approccio alternativo consiste nel mantenere il criterio predefinito per la catena come accettare e aggiungere una regola che rilasci ogni pacchetto rimanente in fondo alla catena stessa.
Se hai modificato la norma predefinita per la catena INPUT sopra, puoi reimpostarla in modo che segua digitando:
# sudo iptables -P ACCETTO INGRESSOOra puoi aggiungere una regola in fondo alla catena che rilascerà tutti i pacchetti rimanenti:
# sudo iptables -A INPUT -j DROPPrima di salvare gli Iptables, è meglio controllare una volta le regole assegnate. Le nostre regole attuali sono stabilite come segue:
-P INGRESSO ACCEPT-P AVANTI ACCEPT-P USCITA ACCEPT-A INGRESSO -i lo -j ACCEPT-A INGRESSO -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A INGRESSO -p tcp -m tcp -- dport 22 -j ACCEPT-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT-A INPUT -j DROPSalvataggio delle regole di Iptables
Per impostazione predefinita, le regole di Iptables verranno cancellate una volta riavviato il server. Per salvare le regole di Iptabels in modo permanente, le impostazioni possono essere salvate in diversi modi, ma il modo più semplice è con il pacchetto "iptables-persistent". Questo può essere scaricato dai repository predefiniti di Ubuntu:
# sudo apt-get update# sudo apt-get install iptables-persistentSalva le regole del firewall con questo comando:
# sudo invoke-rc.d iptables-persistent savePer sapere come configurare e salvare le regole del firewall utilizzando iptables-persistent su Ubuntu 10.04/Debian 6.0 fare clic sul collegamento seguente:
Come configurare e salvare Iptables-persistent per Ubuntu 10.04/ Debian 6.0