Come configurare un firewall Linux: la guida completa

Configurare un firewall Linux blog image

Un firewall è un guardiano digitale che verifica meticolosamente il traffico di rete e decide cosa può passare. Questo scudo protettivo, fondamentale per la sicurezza informatica, è parte integrante del mondo Linux. Lo stesso kernel Linux è di fatto un firewall a commutazione di pacchetto, realizzato secondo i principi del filtraggio dei pacchetti al livello più elementare del sistema operativo, esemplificando così il ruolo centrale dei firewall nella sicurezza del sistema. Per coloro che si occupano di IT e sicurezza Linux questa combinazione gioca un ruolo essenziale nella padronanza della difesa digitale.

Un’adeguata configurazione del firewall Linux garantisce che venga elaborato solo il traffico legittimo, riducendo l’esposizione del sistema a potenziali minacce. Definendo regole specifiche, i firewall possono proteggere efficacemente servizi e dati fondamentali. Un firewall Linux impostato in modo improprio può lasciare inavvertitamente aperte delle porte, esporre servizi sensibili o addirittura bloccare operazioni legittime. Tali configurazioni errate possono essere un invito aperto agli aggressori, con conseguenti violazioni dei dati o attacchi Denial-of-Service (DoS).

Dopo aver configurato un firewall Linux, esso funzionerà valutando i pacchetti di dati inviati da e verso il sistema. Controllando attributi come la porta di destinazione, l’IP di origine ed il protocollo, decide di consentire o negare il traffico in base a regole predefinite.

Le best practice di configurazione del firewall Linux

All’intersezione tra l’amministrazione del sistema Linux e la cybersecurity, le configurazioni dei firewall Linux emergono come una colonna portante dell’architettura di difesa. Navigare in questo labirinto non richiede solo conoscenze tecniche, ma anche un approccio strategico che si allinei con gli obiettivi di sicurezza più ampi. Ecco le pratiche fondamentali da adottare:

Comprendere la politica di sicurezza

Prima di dedicarsi alle configurazioni, è necessario iniziare con una politica di sicurezza ben articolata. Definisci quali dati e servizi devono essere protetti e da quali minacce, per garantire che il firewall Linux funga da prima linea di difesa efficace. Non si tratta solo di ciò che decidi di bloccare e da chi; anche le considerazioni sulla sicurezza delle informazioni, come i metodi di blocco, entrano in gioco. 

Impostazione dei criteri predefiniti

Per una sicurezza ottimale di Linux, adotta una posizione di minima esposizione. Una buona pratica consiste nel negare tutti per impostazione predefinita e aprire le vie di accesso solo quando necessario, il che è essenzialmente un’architettura zero-trust. In questo modo si minimizzano le superfici di attacco potenziali e si riduce l’esposizione involontaria. Un caso d’uso comune è la distinzione tra regole di “deny” e “drop” nel firewall Linux: le prime inviano attivamente una risposta di RICHIESTA RIFIUTATA al mittente dei pacchetti, mentre le seconde scartano silenziosamente i pacchetti di richiesta senza risposta. Chiunque abbia mai gestito un server di produzione su Internet aperto può dirti quanto sia saggio non pubblicizzare il tuo indirizzo IP a scansioni di porte casuali, ad esempio.

Gestione del traffico in entrata e in uscita

Sebbene l’attenzione sia rivolta a contrastare il traffico in entrata non richiesto, il monitoraggio ed il controllo del traffico in uscita sono altrettanto importanti. Ciò assicura che i sistemi potenzialmente compromessi all’interno della rete non diventino canali per l’esfiltrazione dei dati o altre attività dannose. Le infezioni degli endpoint sui laptop degli utenti possono contaminare altri computer all’interno della rete, come l’archiviazione di rete o i server aziendali, più facilmente di quanto possano fare i malintenzionati, in parte a causa del livello di fiducia esistente. Ecco perché la gestione del complesso di computer mobili dell’azienda con prodotti come il software di endpoint management di NinjaOne può contribuire a salvaguardare la rete principale proteggendo i dispositivi da virus, spyware e attacchi informatici come i sempre più comuni attacchi ransomware.

Configurazione di regole specifiche per i servizi

Servizi diversi presentano vulnerabilità diverse. Adatta le regole del firewall Linux per soddisfare queste sfumature, assicurando che ogni servizio, sia esso SSH, HTTP o FTP, abbia il suo scudo protettivo su misura. I servizi di watchdog come fail2ban possono anche osservare i log dei servizi alla ricerca di segnali di attacchi alla sicurezza, intervenendo generalmente in modo appropriato regolando le regole del firewall e le blacklist.

Verifica e aggiornamenti regolari del firewall Linux

Il panorama delle minacce è in continua evoluzione, e così anche le tue difese. La verifica e l’aggiornamento regolari delle configurazioni del firewall garantiscono che queste rimangano solide, pertinenti e rispondenti all’ambiente attuale delle minacce. In sostanza, la configurazione di un firewall Linux non consiste solo nell’impostare le regole, ma si tratta di costruire un sistema di protezione completo che sia in linea con gli standard di sicurezza dell’organizzazione.

Come configurare il firewall Linux

Introduzione a iptables e alla configurazione di iptables

iptables è una potente utilità user space utilizzata per configurare le regole di filtraggio dei pacchetti IPv4 nel kernel Linux. Fa parte del progetto netfilter e rappresenta lo strumento di fatto per l’interazione diretta con il framework di filtraggio dei pacchetti del kernel. Attraverso iptables, gli amministratori di sistema possono definire le regole per la gestione del traffico in entrata e in uscita, assicurando che il sistema sia protetto da comunicazioni di rete potenzialmente dannose.

I meccanismi di iptables ruotano attorno a tre componenti principali

  1. Tabelle: Ogni tabella definisce un insieme di catene ed è associata a un tipo specifico di gestione dei pacchetti.
  2. Catene: Si tratta di un insieme di regole che stabiliscono come devono essere elaborati i pacchetti. Le tre catene predefinite sono INPUT (per i pacchetti in entrata), OUTPUT (per i pacchetti in uscita) e FORWARD (per i pacchetti reindirizzati).

Regole: Le regole all’interno di una catena dettano il destino di un pacchetto, che si tratti di accettare, abbandonare, negare o intraprendere un’altra azione.

Alcuni comandi fondamentali di iptables e le loro configurazioni

  1. Elenco delle regole attuali

   sudo iptables -L -v -n 

   Questo comando visualizza tutte le regole correnti del firewall `iptables`.

  1. Impostazione dei criteri predefiniti

   – Per eliminare tutto il traffico in entrata per impostazione predefinita:

     sudo iptables -P INPUT DROP

   – Per consentire tutto il traffico in uscita per impostazione predefinita:

     sudo iptables -P OUTPUT ACCEPT

  1. Consentire un traffico specifico

   – Per consentire il traffico SSH in entrata sulla porta 22:

     sudo iptables -A INPUT -p tcp –dport 22 -j ACCEPT

  1. Blocco del traffico specifico

   – Per bloccare il traffico in entrata da un indirizzo IP specifico (ad esempio, `192.168.1.10`):

     sudo iptables -A INPUT -s 192.168.1.10 -j DROP

  1. Configurazione NAT (port forwarding)

   – Per inoltrare il traffico in ingresso sulla porta 8080 a un computer interno 192.168.1.10 sulla porta 80:

     sudo iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 8080 -j DNAT –to-destination 192.168.1.10:80

  1. Regole per salvare

Le regole in `iptables` sono volatili, cioè scompaiono al riavvio se non vengono salvate.  Il passaggio a systemd e firewalld su molte distribuzioni ha introdotto un nuovo paradigma per salvare e gestire le regole di iptables. Ecco come salvare le regole di iptables usando il metodo systemd, seguito da un altro metodo comunemente usato:

Utilizzo del metodo systemd

Molte distribuzioni Linux moderne utilizzano systemd per la gestione dei sistemi e dei servizi. Se utilizzi iptables con systemd, puoi adottare il metodo seguente:

Innanzitutto, assicurati che il servizio iptables sia abilitato all’avvio:

sudo systemctl enable iptables

Dopo aver configurato le regole di iptables, salva:

sudo sh -c ‘iptables-save > /etc/iptables/iptables.rules’

Quindi, per ripristinare le regole all’avvio, systemd utilizzerà il servizio iptables-restore, che legge dal file /etc/iptables/iptables.rules per impostazione predefinita.

Utilizzo del plugin netfilter-persistent

Un altro metodo, particolarmente diffuso nei sistemi basati su Debian non-systemd, è l’uso di netfilter-persistent:

Per prima cosa, è necessario installare i plugin necessari:

sudo apt-get install iptables-persistent

Durante l’installazione, di solito viene richiesto di salvare le regole iptables correnti. Se è necessario salvare le regole in un secondo momento, è possibile farlo con:

sudo netfilter-persistent save

Questo comando salva le regole di iptables attive, rendendole persistenti tra i vari riavvii.

Qualunque sia il metodo scelto, è fondamentale eseguire regolarmente il backup delle regole di iptables, soprattutto prima di apportare modifiche significative. In questo modo avrai una configurazione funzionante a cui tornare in caso di errori o problemi.

L’integrazione di `iptables` nella tua strategia di sicurezza Linux richiede una chiara comprensione della struttura e delle esigenze della tua rete. Testa sempre le nuove configurazioni in un ambiente controllato e conserva i backup dei set di regole precedenti. La potenza e la granularità di iptables lo rendono un’arma a doppio taglio: se maneggiato con cura, è una barriera formidabile; se usato in modo sconsiderato, può interrompere le funzioni di rete essenziali.

Altri strumenti frontend per iptables

Altri strumenti comuni per la configurazione di iptables sono ufw (Uncomplicated Firewall) originariamente basato su Ubuntu, firewalld basato su systemd, e ConfigServer Firewall (CSF).

UFW (Firewall non complicato)

UFW, o Uncomplicated Firewall, è stato progettato per rendere più semplice la configurazione del firewall iptables. Nato da Ubuntu, è stato adottato da molte altre distribuzioni per la sua semplicità e facilità d’uso.

Esempi

Abilitazione UFW

  • sudo ufw enable

Consentire il traffico SSH

  • sudo ufw allow ssh

Negare il traffico da un IP specifico

  • sudo ufw deny from 192.168.1.10

Controllare lo stato e le regole dell’UFW

  • sudo ufw status verbose

Firewalld (componente firewall di systemd)

Firewalld fornisce un gestore di firewall dinamico con il supporto di zone di rete/firewall per definire il livello di fiducia delle connessioni o delle interfacce di rete. Dispone di un client a riga di comando, firewall-cmd, e di un’interfaccia grafica, firewall-config, che lo rendono versatile per le diverse preferenze degli utenti.

Esempi

Avvia e abilita firewalld

  • sudo systemctl start firewalld
  • sudo systemctl enable firewalld

Consenti i servizi HTTP e HTTPS

  • sudo firewall-cmd –add-service=http –permanent
  • sudo firewall-cmd –add-service=https –permanent

Blocca un indirizzo IP

  • sudo firewall-cmd –permanent –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.10″ reject’

Ricarica la configurazione

  • sudo firewall-cmd –reload

CSF (ConfigServer Firewall)

CSF è una soluzione firewall ricca di funzionalità costruita per i server Linux. Sebbene offra la gestione di `iptables` come gli altri, fornisce anche funzioni avanzate come il rilevamento di accessi/intrusioni e il monitoraggio dei processi di sicurezza.

Esempi

Installa CSF (ad esempio su un server cPanel)

  • cd /usr/src
  • wget https://download.configserver.com/csf.tgz
  • tar -xzf csf.tgz
  • cd csf
  • sh install.cpanel.sh

Autorizza un indirizzo IP

  • sudo csf -a 192.168.1.20

Blocca un indirizzo IP

  • sudo csf -d 192.168.1.10

Ricarica le regole del CSF

  • sudo csf -r

Visualizza la configurazione

  • sudo nano /etc/csf/csf.conf

Questi strumenti offrono più funzionalità rispetto agli esempi forniti, ma quanto sopra dovrebbe fornire un punto di partenza fondamentale. Ciascuno dei gestori di firewall Linux dispone di una documentazione completa, utile per gli approfondimenti e le configurazioni avanzate.

ClearOS

ClearOS è una distribuzione Linux progettata per gestire funzioni di server, rete e gateway. È facile da usare e dispone di una console di gestione basata sul Web. Sebbene ClearOS possa essere utilizzato attraverso la sua interfaccia grafica, faremo alcuni esempi a riga di comando per avere un approccio alle sue capacità.

Esempi

Installa il modulo firewall

(Consideriamo ClearOS 7, eseguito tramite l’interfaccia web)

Naviga a ClearCenter Software Firewall e clicca su “Installa“.

Avvia e abilita il firewall

  • sudo systemctl start clearos-firewall
  • sudo systemctl enable clearos-firewall

Autorizza un servizio (ad esempio, SSH)

  • sudo firewall-cmd –zone=external –add-service=ssh –permanent
  • sudo firewall-cmd –reload

Blocca un indirizzo IP

  • sudo firewall-cmd –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.10″ reject’ –permanent
  • sudo firewall-cmd –reload

OPNsense

OPNsense è una piattaforma di firewall e routing gratuita e open-source basata su FreeBSD. Progettato per essere un sostituto di pfSense, è ricco di funzionalità e viene gestito prevalentemente tramite un’interfaccia web.

Fasi di configurazione (interfaccia web)

Accedi all’interfaccia web

In genere, dopo la configurazione iniziale, si può accedere a OPNsense tramite un browser web navigando all’indirizzo IP del dispositivo, di solito https://192.168.1.1 (predefinito).

Impostazione delle regole del firewall

  1. Accedi aFirewall → Regole → LAN (o l’interfaccia per la quale si desidera impostare una regola).
  2. Clicca sul segno + per aggiungere una nuova regola.
  3. Compila i dettagli, come la sorgente, la destinazione, le porte e l’azione (Consenti/Nega).
  4. Clicca su Salva e quindi Applica le modifiche.

NAT / port forwarding

  1. Naviga a Firewall → NAT → Port Forward.
  2. Clicca sul segno + per aggiungere una nuova regola.
  3. Compila i campi richiesti, quali interfaccia, protocollo, IP di origine/destinazione e porte.
  4. Clicca su Salva e quindi Applica le modifiche.

Blocca un indirizzo IP

  1. Accedi a Firewall → Alias e aggiungi un nuovo alias per l’IP o l’intervallo di IP che si desidera bloccare.
  2. Una volta creato l’alias, naviga a Firewall → Regole → LAN (o l’interfaccia pertinente).
  3. Crea una nuova regola con Azioneimpostata su “Blocca” e utilizza l’alias come origine o destinazione.

Aggiornamento e manutenzione

Gli aggiornamenti regolari sono essenziali per la sicurezza. Accedi a System → Firmware → Aggiornamenti per controllare e applicare gli aggiornamenti disponibili.

Sebbene sia ClearOS che OPNsense dispongano di funzionalità a riga di comando, il loro punto di forza e la loro progettazione risiedono nelle rispettive interfacce basate sul Web, che offrono configurazioni intuitive per utenti di qualsiasi livello di competenza. Ricorda sempre di testare le configurazioni in un ambiente controllato prima di applicarle a una configurazione di produzione reale. Inoltre, è importante ricordare sempre di eseguire dei backup prima di apportare qualsiasi modifica! La soluzione di backup di NinjaOne è compatibile con la maggior parte delle funzionalità di backup dei principali sistemi operativi senza compromettere la sicurezza.

Risoluzione dei problemi di configurazione del firewall Linux

Problemi comuni

  • Servizi bloccati: Servizi o applicazioni legittime bloccate involontariamente.
  • Vulnerabilità aperte: Porte o servizi esposti involontariamente.
  • Conflitti di regole: Regole sovrapposte o contraddittorie che causano un comportamento inaspettato.
  • Calo delle prestazioni: Regole eccessive che riducono le prestazioni del sistema e della rete.

Diagnosticare e risolvere

  • Registri e avvisi: Controlla regolarmente i registri del firewall per individuare eventuali anomalie o attività bloccate.
  • Configurazione del test: Dopo aver impostato le regole, testa in scenari controllati per garantire il comportamento desiderato.
  • Priorità delle regole: Assicurati che le regole più specifiche siano collocate più in alto di quelle generiche per evitare conflitti.
  • Utilizza gli strumenti di monitoraggio: Strumenti come nmap o netstat possono aiutare a visualizzare le porte aperte e i servizi attivi.

Manutenzione e prestazioni

  • Verifiche regolari: Rivedi periodicamente e elimina le regole obsolete o non necessarie.
  • Aggiornamenti: Tieni aggiornato il software o il firmware del firewall per eliminare le vulnerabilità.
  • Backup: Esegui sempre il backup delle configurazioni prima di apportare modifiche.
  • Segmentazione: Implementa la segmentazione della rete per ridurre il carico di lavoro del firewall e migliorare la sicurezza.

Una configurazione efficace del firewall Linux è fondamentale per la sicurezza.

Comprendendo i criteri di sicurezza, impostando regole predefinite, gestendo il flusso di traffico, configurando regole specifiche per i servizi e rivedendo regolarmente le impostazioni, gli utenti garantiscono una solida protezione del sistema contro le minacce esterne. Un firewall Linux meticolosamente configurato non è solo un guardiano, ma un sostegno essenziale nella strategia di sicurezza complessiva dei sistemi Linux. Al di là del semplice blocco del traffico indesiderato, è la dimostrazione di un approccio di difesa proattivo, che fortifica Linux e i dispositivi contro le sfide della cybersecurity in continua evoluzione. 

Oltre a configurare i firewall Linux e a seguire le best practice della cybersecurity, uno dei modi più efficaci per proteggere i tuoi dispositivi è quello di utilizzare una soluzione di endpoint management, come ad esempio il software di endpoint management di NinjaOne. Con NinjaOne è possibile monitorare, gestire e proteggere tutti i dispositivi Linux in remoto da un unico pannello centralizzato. Sfrutta le numerose funzioni di automazione di NinjaOne per risparmiare tempo e aumentare l’efficienza, garantendo al contempo la sicurezza del proprio ambiente IT. Iscriviti subito per richiedere una prova gratuita di NinjaOne per scoprire quanto possa essere facile ed efficiente la gestione dell’IT.

Passi successivi

Le basi della sicurezza dei dispositivi sono fondamentali per lo stato della tua sicurezza complessiva. NinjaOne semplifica l’applicazione di patch, l’hardening, la protezione e il backup di tutti i dispositivi in modo centralizzato, da remoto e su larga scala.

Ti potrebbe interessare anche

Vuoi diventare un Ninja dell’IT?

Scopri come NinjaOne può aiutarti a semplificare le operazioni IT.
×

Guarda NinjaOne in azione!

Inviando questo modulo, accetto La politica sulla privacy di NinjaOne.

Inizia una prova gratuita della piattaforma RMM numero 1 su G2

Non è richiesta alcuna carta di credito e si ha accesso completo a tutte le funzionalità.

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.