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
- Tabelle: Ogni tabella definisce un insieme di catene ed è associata a un tipo specifico di gestione dei pacchetti.
- 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
-
Elenco delle regole attuali
sudo iptables -L -v -n
Questo comando visualizza tutte le regole correnti del firewall `iptables`.
-
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
-
Consentire un traffico specifico
– Per consentire il traffico SSH in entrata sulla porta 22:
sudo iptables -A INPUT -p tcp –dport 22 -j ACCEPT
-
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
-
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
-
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
- Accedi aFirewall → Regole → LAN (o l’interfaccia per la quale si desidera impostare una regola).
- Clicca sul segno + per aggiungere una nuova regola.
- Compila i dettagli, come la sorgente, la destinazione, le porte e l’azione (Consenti/Nega).
- Clicca su Salva e quindi Applica le modifiche.
NAT / port forwarding
- Naviga a Firewall → NAT → Port Forward.
- Clicca sul segno + per aggiungere una nuova regola.
- Compila i campi richiesti, quali interfaccia, protocollo, IP di origine/destinazione e porte.
- Clicca su Salva e quindi Applica le modifiche.
Blocca un indirizzo IP
- Accedi a Firewall → Alias e aggiungi un nuovo alias per l’IP o l’intervallo di IP che si desidera bloccare.
- Una volta creato l’alias, naviga a Firewall → Regole → LAN (o l’interfaccia pertinente).
- 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.