Cos’è un firewall e come funziona?

Introduzione

A firewall is a system that provides network security by filtering incoming and outgoing network traffic based on a set of user-defined rules. In general, the purpose of a firewall is to reduce or eliminate the occurrence of unwanted network communications while allowing all legitimate communication to flow freely. In most server infrastructures, firewalls provide an essential layer of security that, combined with other measures, prevent attackers from accessing your servers in malicious ways.

Questa guida discuterà di come funzionano i firewall, con un focus sui firewall software stateful, come iptables e FirewallD, in relazione ai server cloud. Inizieremo con una breve spiegazione dei pacchetti TCP e dei diversi tipi di firewall. Successivamente discuteremo una varietà di argomenti rilevanti per i firewall stateful. Infine, forniremo dei link ad altri tutorial che ti aiuteranno a configurare un firewall sul tuo server.

Pacchetti di Rete TCP

Prima di discutere i diversi tipi di firewall, diamo un’occhiata rapida a come appare il traffico di rete del Protocollo di Controllo della Trasmissione (TCP).

Il traffico di rete TCP si sposta intorno alla rete in pacchetti, che sono contenitori composti da un’intestazione del pacchetto — questa contiene informazioni di controllo come gli indirizzi di origine e destinazione, e informazioni sulla sequenza del pacchetto — e i dati (noti anche come payload). Mentre le informazioni di controllo in ogni pacchetto aiutano a garantire che i dati associati vengano consegnati correttamente, gli elementi che contiene forniscono anche ai firewall una varietà di modi per abbinare i pacchetti alle regole del firewall.

È importante notare che per ricevere con successo pacchetti TCP in ingresso, il destinatario deve inviare pacchetti di conferma in uscita al mittente. La combinazione delle informazioni di controllo nei pacchetti in ingresso e in uscita può essere utilizzata per determinare lo stato della connessione (ad esempio, nuova, stabilita, correlata) tra il mittente e il destinatario.

Tipi di firewall

Discutiamo brevemente i tre tipi di base di firewall di rete: filtraggio dei pacchetti (senza stato), stateful e a livello di applicazione.

Il filtraggio dei pacchetti, o senza stato, i firewall funzionano ispezionando singoli pacchetti in modo isolato. Pertanto, non sono a conoscenza dello stato della connessione e possono solo consentire o negare i pacchetti in base agli header dei singoli pacchetti.

I firewall stateful sono in grado di determinare lo stato della connessione dei pacchetti, il che li rende molto più flessibili rispetto ai firewall senza stato. Funzionano raccogliendo pacchetti correlati fino a quando lo stato della connessione può essere determinato prima che vengano applicate regole del firewall al traffico.

I firewall a livello di applicazione vanno un passo oltre analizzando i dati trasmessi, il che consente al traffico di rete di essere confrontato con regole del firewall specifiche per singoli servizi o applicazioni. Questi sono anche noti come firewall basati su proxy.

Oltre al software firewall, disponibile su tutti i moderni sistemi operativi, la funzionalità del firewall può essere fornita anche da dispositivi hardware, come router o appliance firewall. Ancora una volta, la nostra discussione sarà focalizzata sui firewall software stateful che girano sui server che sono destinati a proteggere.

Regole del firewall

Come accennato in precedenza, il traffico di rete che attraversa un firewall viene confrontato con le regole per determinare se deve essere consentito o meno. Un modo semplice per spiegare come sono fatte le regole del firewall è mostrare alcuni esempi, quindi lo faremo ora.

Supponiamo di avere un server con questa lista di regole del firewall che si applicano al traffico in ingresso:

  1. Accetta il traffico in ingresso nuovo e già stabilito sull’interfaccia di rete pubblica sulla porta 80 e 443 (traffico web HTTP e HTTPS)
  2. Scarta il traffico in ingresso dagli indirizzi IP dei dipendenti non tecnici nel tuo ufficio sulla porta 22 (SSH)
  3. Accetta il traffico in ingresso nuovo e già stabilito dall’intervallo di indirizzi IP del tuo ufficio sull’interfaccia di rete privata sulla porta 22 (SSH)

Nota che la prima parola in ciascuno di questi esempi è “accetta”, “rifiuta” o “elimina”. Questo specifica l’azione che il firewall dovrebbe fare nel caso in cui un pezzo di traffico di rete corrisponda a una regola. Accetta significa permettere il passaggio del traffico, rifiuta significa bloccare il traffico ma rispondere con un errore “non raggiungibile”, e elimina significa bloccare il traffico e non inviare alcuna risposta. Il resto di ogni regola consiste nella condizione contro cui viene confrontato ciascun pacchetto.

Come si scopre, il traffico di rete viene confrontato con un elenco di regole del firewall in una sequenza, o catena, dalla prima all’ultima. Più specificamente, una volta che una regola viene confrontata, l’azione associata viene applicata al traffico di rete in questione. Nel nostro esempio, se un dipendente del reparto contabilità cercasse di stabilire una connessione SSH al server, verrebbe rifiutato sulla base della regola 2, prima che venga controllata la regola 3. Un amministratore di sistema, tuttavia, verrebbe accettato perché corrisponderebbe solo alla regola 3.

Politica predefinita

È tipico che una catena di regole del firewall non copra esplicitamente ogni possibile condizione. Per questo motivo, le catene del firewall devono sempre avere una politica predefinita specificata, che consiste solo in un’azione (accetta, rifiuta o elimina).

Supponiamo che la politica predefinita per la catena di esempio sopra fosse impostata su drop. Se un computer al di fuori del tuo ufficio tentasse di stabilire una connessione SSH al server, il traffico verrebbe bloccato perché non corrisponde alle condizioni di nessuna regola.

Se la politica predefinita fosse impostata su accetta, chiunque, tranne i tuoi dipendenti non tecnici, sarebbe in grado di stabilire una connessione a qualsiasi servizio aperto sul tuo server. Questo sarebbe un esempio di un firewall configurato molto male perché tiene fuori solo una parte dei tuoi dipendenti.

Traffico in Entrata e in Uscita

Essendo il traffico di rete, dal punto di vista di un server, può essere sia in entrata che in uscita, un firewall mantiene un insieme distintivo di regole per ciascun caso. Il traffico che ha origine altrove, il traffico in entrata, viene trattato in modo diverso rispetto al traffico in uscita che il server invia. È tipico per un server consentire la maggior parte del traffico in uscita perché di solito il server si considera affidabile. Tuttavia, l’insieme di regole in uscita può essere utilizzato per impedire comunicazioni indesiderate nel caso in cui un server sia compromesso da un attaccante o da un eseguibile maligno.

Per massimizzare i benefici in termini di sicurezza di un firewall, è necessario identificare tutti i modi in cui si desidera che altri sistemi interagiscano con il proprio server, creare regole che li consentano esplicitamente, quindi scartare tutto il traffico non autorizzato. Tenete presente che le regole appropriate per l’invio devono essere in vigore in modo che un server consenta l’invio di riconoscimenti ai collegamenti in ingresso appropriati. Inoltre, poiché un server di solito deve avviare il proprio traffico in uscita per vari motivi, ad esempio per scaricare aggiornamenti o connettersi a un database, è importante includere tali casi nel set di regole in uscita.

Scrittura delle Regole in Uscita

Supponiamo che il nostro esempio di firewall sia impostato per scartare il traffico in uscita per impostazione predefinita. Ciò significa che le nostre regole in ingresso accettate sarebbero inutili senza regole in uscita complementari.

Per completare le regole del firewall in ingresso dell’esempio (1 e 3), dalla sezione Regole del Firewall, e consentire la comunicazione corretta su quegli indirizzi e porte, potremmo utilizzare queste regole del firewall in uscita:

  1. Accetta il traffico in uscita stabilito verso l’interfaccia di rete pubblica sulla porta 80 e 443 (HTTP e HTTPS)
  2. Accetta il traffico in uscita stabilito verso l’interfaccia di rete privata sulla porta 22 (SSH)

Si noti che non è necessario scrivere esplicitamente una regola per il traffico in ingresso che viene eliminato (regola in ingresso 2) perché il server non ha bisogno di stabilire o riconoscere tale connessione.

Software e Strumenti Firewall

Ora che abbiamo esaminato come funzionano i firewall, diamo un’occhiata ai pacchetti software comuni che possono aiutarci a configurare un firewall efficace. Anche se ci sono molti altri pacchetti correlati ai firewall, questi sono efficaci e sono quelli che incontrerai più frequentemente.

Iptables

Iptables è un firewall standard incluso nella maggior parte delle distribuzioni Linux per impostazione predefinita (una variante moderna chiamata nftables inizierà a sostituirlo). È in realtà un’interfaccia front-end per i hook netfilter a livello di kernel che possono manipolare lo stack di rete Linux. Funziona abbinando ogni pacchetto che attraversa l’interfaccia di rete a un insieme di regole per decidere cosa fare.

Per imparare come implementare un firewall con iptables, controlla questi link:

UFW

UFW, che sta per Uncomplicated Firewall, è un’interfaccia per iptables che mira a semplificare il processo di configurazione di un firewall.

Per saperne di più su come utilizzare UFW, consulta questo tutorial: Come configurare un firewall con UFW su un server cloud Ubuntu e Debian.

FirewallD

FirewallD è una soluzione completa per il firewall disponibile di default su server CentOS 7. Incidentalmente, FirewallD utilizza iptables per configurare netfilter.

Per saperne di più su come utilizzare FirewallD, consulta questo tutorial: Come configurare FirewallD per proteggere il tuo server CentOS 7.

Se stai utilizzando CentOS 7 ma preferisci usare iptables, segui questo tutorial: Come migrare da FirewallD a Iptables su CentOS 7.

Fail2ban

Fail2ban è un software di prevenzione delle intrusioni che può configurare automaticamente il tuo firewall per bloccare tentativi di accesso forzato e attacchi DDOS.

Per saperne di più su Fail2ban, consulta questi link:

Conclusione

Ora che hai compreso come funzionano i firewall, dovresti considerare l’implementazione di un firewall che migliorerà la sicurezza della tua configurazione del server utilizzando i tutorial sopra.

Se vuoi saperne di più su come funzionano i firewall, dai un’occhiata a questi link:

Source:
https://www.digitalocean.com/community/tutorials/what-is-a-firewall-and-how-does-it-work