- 1. Come installare e gestire Firewalld su Linux
- 2. Come gestire le zone in Firewalld CentOS e Ubuntu
- 3. Come bloccare o aprire le porte in Firewalld Linux CentOS e Ubuntu
- 4. Come bloccare o aprire i servizi in Firewalld CentOS e Ubuntu
- 5. Come abilitare e disabilitare il mascheramento IP tramite Firewalld Linux
- 6. Come abilitare e disabilitare il messaggio IMCP in Firewalld Linux
- 7. Come abilitare o meno la modalità panico in Firewalld Linux CentOS e Ubuntu
- 8. Come bloccare Firewalld su Linux CentOS e Ubuntu
La sicurezza è una delle azioni che devono essere sempre presenti non solo nelle organizzazioni ma anche a livello personale quando lavoriamo con un sistema operativo, e cioè, sebbene ci siano vari strumenti per aumentare la sicurezza e la privacy durante l'utilizzo di un sistema, il funzionamento il sistema stesso include una funzione extra come il firewall.
La funzione essenziale di un firewall è creare e gestire regole in entrata e in uscita per proteggere l'intero processo di connessione alla rete. In questo modo si impedisce che pacchetti sospetti o inaffidabili entrino nel nostro computer e causino qualsiasi tipo di danno come l'inserimento di malware o il dirottamento di informazioni.
Quando lavoriamo con i sistemi Linux, uno dei più sicuri, abbiamo utilità open source che ci aiutano a rendere questo processo di protezione molto più completo e una di queste utilità è Firewalld. Solvetic spiegherà cos'è Firewalld e come possiamo installarlo e utilizzarlo in due delle distribuzioni più utilizzate attualmente come CentOS e Ubuntu.
NotaIl processo di configurazione è identico per entrambi i sistemi
Cos'è Firewalld?Firewalld (firewall daemon), è un'utilità il cui scopo è fornire un firewall gestito dinamicamente che supporti le zone di rete in cui è definito il livello di fiducia delle connessioni di rete o delle interfacce da utilizzare, Firewalld è compatibile con gli indirizzi IPv4, Impostazioni firewall IPv6, bridge Ethernet e pool di indirizzi IP.
Firewalld ci offre un'interfaccia per servizi o applicazioni per aggiungere direttamente le regole del firewall, facilitando così le attività di controllo. Uno dei principali vantaggi dell'utilizzo di Firewalld è che tutte le modifiche da apportare possono essere eseguite in tempo reale sull'ambiente di esecuzione senza dover riavviare il servizio o il Daemon come accade con molte utility.
Firewalld integra un'interfaccia D-Bus adatta alla gestione dei servizi, delle applicazioni e all'amministrazione della configurazione del firewall, questa interfaccia può essere integrata con gli strumenti di configurazione come firewall-cmd, firewall-config e firewall-applet.
Funzionalità firewallAlcune delle funzionalità che troviamo durante l'utilizzo di Firewalld sono:
- Supporto per IPv4, IPv6, bridging e ipset.
- Supporto NAT IPv4 e IPv6.
- Firewall o zone firewall.
- API D-Bus completa.
- Servizio semplice, porta, protocollo, porta di origine, mascheramento, inoltro della porta, filtro icmp, regola ricca, interfaccia e controllo dell'indirizzo di origine nelle zone utilizzate.
- Interfaccia diretta per la gestione.
- Funzione di blocco che crea una lista bianca di applicazioni che possono modificare il firewall.
- Caricamento automatico dei moduli del kernel Linux.
- Integrazione con Burattino.
- Regole firewall temporizzate nelle zone.
- Registrazione semplice dei pacchetti negati.
- Strumento di configurazione grafica utilizzando gtk3.
- Applet usando Qt4.
distribuzioniLe distribuzioni di base in cui Firewalld può essere implementato sono:
- RHEL 7, CentOS 7
- Fedora 18 e superiori
ApplicazioniLe applicazioni e le librerie che supportano firewalld come strumento di gestione del firewall includono:
- Responsabile del network
- libvirt
- docker
- fail2ban
È importante che prima di entrare nei dettagli su come installare e utilizzare Firewalld ne sappiamo un po' di più, Firewalld è composto da tre livelli che sono:
- Livello principale (core layer) che è responsabile della gestione della configurazione e dei servizi come iptables, ip6tables, ebtables, ipset e il caricatore di moduli.
- Interfaccia D-Bus: che è il mezzo principale per modificare e creare le impostazioni del firewall.
- I backend che consentono l'interazione con netfilter (il modulo kernel nativo utilizzato per il firewall) e alcuni sono contati come iptables, ip6tables, ebtables, ipset, nft, linnftables, ecc.
L'interfaccia firewalld D-Bus è il modo più vitale per creare e modificare le impostazioni del firewall. Questa interfaccia è utilizzata da tutti gli strumenti online integrati in firewalld come firewall-cmd, firewall-config e firewall-applet, la linea firewall-offline-cmd non comunica direttamente con firewalld, ma modifica e crea i file di configurazione di firewalld direttamente attraverso il kernel firewalld con i driver IO.
Il file di configurazione globale per firewalld si trova in /etc/firewalld/firewalld.conf e le funzioni del firewall sono configurate in formato XML.
Firewalld utilizza zone che sono quelle che definiscono il livello di fiducia che la connessione di rete da utilizzare, l'interfaccia o il collegamento dell'indirizzo di origine avrà e la stessa zona può essere utilizzata per molte connessioni di rete, interfacce e origini.
Le zone disponibili in Firewalld sono:
Far cadereQuesta è la zona con il livello di confidenza più basso perché tutti i pacchetti in entrata vengono automaticamente rifiutati e consentono l'abilitazione solo dei pacchetti in uscita.
BloccareQuando si utilizza questa zona, il livello di attendibilità è simile a Drop ma differisce solo per il fatto che i pacchetti in arrivo vengono rifiutati utilizzando icmp-host-prohibited per IPv4 e icmp6-adm-prohibited per i messaggi IPv6.
PubblicoCon questa zona, il livello di attendibilità si riferisce a reti pubbliche non attendibili, quindi accetta solo connessioni attendibili.
EsternoÈ il livello definito quando utilizziamo il Firewall come gateway e il suo mascheramento è abilitato dai router.
DMZÈ una zona in cui il livello di fiducia si applica alle apparecchiature situate in una zona DMZ (demilitarizzata), ciò significa che l'accesso pubblico è limitato alla rete interna. Accetta solo connessioni accettate.
LavoroCome indica il nome, questo livello viene utilizzato nelle aree di lavoro consentendo ai computer di rete di accedervi.
casaUtilizzando questo livello stiamo parlando di un ambiente domestico e la maggior parte dei computer in rete sono accettati
InternoQuesto tipo di livello si applica alle reti interne in modo che vengano accettati tutti i computer della rete locale.
FidatoSta per Trust, il che implica che è il livello più alto e si fida di tutte le connessioni in entrata.
Per configurare o aggiungere zone, possiamo utilizzare una delle seguenti interfacce di configurazione firewalld disponibili:
- Strumento di configurazione grafica firewall-config.
- Strumento da riga di comando Firewall-cmd.
- Interfaccia programmatica D-BUS.
- Crea, copia o modifica un file di zona in una qualsiasi delle directory di configurazione come: /etc/firewalld/zones per file di configurazione personalizzati e creati dall'utente o /usr/lib/firewalld/zones per configurazioni predefinite e di fallback.
1. Come installare e gestire Firewalld su Linux
Passo 1
In caso di utilizzo di CentOS 7, il pacchetto firewalld è preinstallato e può essere verificato con il seguente comando:
rpm -qa firewalldNel caso di Ubuntu dobbiamo installarlo con il seguente comando:
sudo apt install firewalld
INGRANDIRE
Inseriamo la lettera S per confermare il download e l'installazione di Firewalld.
Passo 2
Firewalld è un normale servizio systemd che può essere gestito tramite il comando systemctl come segue:
sudo systemctl start firewalld (permette di avviare il servizio) sudo systemctl enable firewalld (abilita il servizio all'avvio del sistema) sudo systemctl status firewalld (permette di vedere lo stato del servizio)
INGRANDIRE
Passaggio 3
Dopo aver avviato il servizio firewalld, possiamo verificare se il demone è in esecuzione o meno in Linux, per questo dobbiamo usare lo strumento firewall-cmd, eseguiamo quanto segue:
sudo firewall-cmd -state
INGRANDIRE
2. Come gestire le zone in Firewalld CentOS e Ubuntu
Passo 1
Per ottenere un elenco di tutti i servizi e le zone firewall disponibili, dobbiamo eseguire i seguenti comandi:
Per vedere le zone:
sudo firewall-cmd --get-zones
INGRANDIRE
Passo 2
Per vedere i servizi eseguiremo:
sudo firewall-cmd --get-services
INGRANDIRE
Passaggio 3
La zona predefinita è la zona implementata per ogni funzionalità firewalld che non è collegata ad un'altra zona, è possibile ottenere la zona predefinita impostata per le connessioni e le interfacce di rete eseguendo quanto segue:
sudo firewall-cmd --get-default-zone
INGRANDIRE
Passaggio 4
Se vogliamo stabilire un'altra zona predefinita, dobbiamo utilizzare il seguente comando, va notato che se aggiungiamo l'opzione --permanent, la configurazione viene stabilita in modo permanente, possiamo eseguire una delle seguenti opzioni:
sudo firewall-cmd --set-default-zone = externalo
sudo firewall-cmd --set-default-zone = external -permanentPassaggio 4
Quindi applichiamo le modifiche eseguendo:
sudo firewall-cmd -reload
INGRANDIRE
Passaggio 5
Se l'obiettivo è aggiungere un'interfaccia a una zona, ad esempio, possiamo eseguire quanto segue:
sudo firewall-cmd --zone = home --add-interface = enp0s3In questo caso abbiamo aggiunto l'interfaccia enp0s3 (LAN) alla zona home.
INGRANDIRE
Passaggio 6
Va notato che un'interfaccia può essere aggiunta solo a una singola zona, invece può essere spostata in un'altra zona, per questo utilizzeremo l'opzione --change-interface o rimuoverla dalla zona precedente con l'opzione -remove-interface e quindi aggiungilo alla nuova zona, ad esempio:
sudo firewall-cmd --zone = public --add-interface = enp0s3 sudo firewall-cmd --zone = public --change-interface = enp0s3Con Firewalld è possibile utilizzare più zone contemporaneamente, se vogliamo ottenere un elenco di tutte le zone attive con le funzioni abilitate, come interfacce, servizi, porte, protocolli, eseguiamo quanto segue:
sudo firewall-cmd --get-active-zones
INGRANDIRE
Passaggio 7
Per ottenere maggiori informazioni sulle zone, come ad esempio cosa è stato abilitato o eliminato, possiamo utilizzare uno di questi comandi:
sudo firewall-cmd --zone = home --list-allO
sudo firewall-cmd --info-zone public
INGRANDIRE
Passaggio 8
Un'altra opzione utile da usare con Firewalld è --get-target, questo mostra il target di una zona permanente, i target possono essere predefiniti, ACCEPT, DROP, REJECT, per controllare il target di più zone possiamo usare uno dei seguenti comandi :
sudo firewall-cmd --permanent --zone = public --get-target sudo firewall-cmd --permanent --zone = block --get-target sudo firewall-cmd --permanent --zone = dmz --get- target sudo firewall-cmd --permanent --zone = esterno --get-target sudo firewall-cmd --permanent --zone = drop --get-target
3. Come bloccare o aprire le porte in Firewalld Linux CentOS e Ubuntu
Per aprire una porta tramite firewalld basta aggiungerla nella zona con l'opzione --add-port, se la zona non è specificata esplicitamente verrà abilitata nella zona di default.
Passo 1
Ad esempio, per aggiungere le porte 80 e 443 che consentono il traffico web in entrata attraverso i protocolli HTTP e HTTPS, eseguiremo quanto segue:
sudo firewall-cmd --zone = public --permanent --add-port = 80 / tcp --add-port = 443 / tcp
INGRANDIRE
Passo 2
Ora ricarichiamo il firewalld e verifichiamo le funzioni abilitate nella zona pubblica:
sudo firewall-cmd --reload sudo firewall-cmd --info-zone public
INGRANDIRE
Passaggio 3
Se vogliamo bloccare una porta in firewalld, dobbiamo usare l'opzione --remove-port, in questo esempio così:
sudo firewall-cmd --zone = public --permanent --remove-port = 80 / tcp --remove-port = 443 / tcp
4. Come bloccare o aprire i servizi in Firewalld CentOS e Ubuntu
Per il processo di abilitazione di un servizio in Firewalld dobbiamo abilitarlo utilizzando l'opzione --add-service, ricorda che, se omettiamo la zona, verrà utilizzata la zona predefinita.
Passo 1
Ad esempio, per abilitare il servizio http in una zona pubblica eseguiamo:
sudo firewall-cmd --zone = public --permanent --add-service = http sudo firewall-cmd -reload
INGRANDIRE
Passo 2
Con il parametro -remove-service possiamo rimuovere il servizio dalla zona assegnata:
sudo firewall-cmd --zone = public --permanent --remove-service = http sudo firewall-cmd -reload
INGRANDIRE
5. Come abilitare e disabilitare il mascheramento IP tramite Firewalld Linux
Il mascheramento IP, o IPMASQ / MASQ) è un meccanismo NAT che consente agli host su una rete con indirizzi IP privati di comunicare con Internet tramite l'indirizzo IP pubblico assegnato al server Linux utilizzando il gateway IPMASQ.
Con questo mascheramento, il traffico dagli host invisibili apparirà su altri computer su Internet come se provenisse direttamente dal server Linux.
Per verificare se il mascheramento è attivo o meno eseguiamo:
sudo firewall-cmd --zone = public --query-masqueradeQuindi possiamo aggiungere una zona come questa:
sudo firewall-cmd --zone = public --add-masqueradePer rimuovere una zona da questo tipo di funzione, dobbiamo eseguire quanto segue:
sudo firewall-cmd --zone = public --remove-masquerade
6. Come abilitare e disabilitare il messaggio IMCP in Firewalld Linux
Il protocollo ICMP (Internet Control Message Protocol) è un protocollo che è stato sviluppato per generare richieste di informazioni o risposte a tali richieste di informazioni o in condizioni di errore durante tutto il processo di comunicazione in rete.
Passo 1
In Firewalld è possibile abilitare o disabilitare i messaggi ICMP, ma si consiglia di convalidare tutti i tipi ICMP compatibili, per questo eseguiamo:
sudo firewall-cmd --get-icmptypes
INGRANDIRE
Passo 2
Possiamo aggiungere o bloccare un ICMP come segue:
sudo firewall-cmd --zone = home --add-icmp-block = echo-reply sudo firewall-cmd --zone = home --remove-icmp-block = echo-reply
INGRANDIRE
Passaggio 3
Possiamo vedere tutti i tipi ICMP aggiunti in una zona usando l'opzione --list-icmp-blocks:
sudo firewall-cmd --zone = home --list-icmp-blocks
7. Come abilitare o meno la modalità panico in Firewalld Linux CentOS e Ubuntu
La modalità panico è una modalità speciale integrata in Firewalld in cui vengono eliminati tutti i pacchetti in entrata e in uscita e le connessioni attive scadono una volta attivata, possiamo abilitare questa modalità in situazioni di emergenza in cui c'è una minaccia per il sistema e quindi eviteremo qualsiasi connessione.
Passo 1
Per controllare la modalità panico, useremo l'opzione --query-panic e possiamo attivarla con l'opzione sudo firewall-cmd --panic-on:
INGRANDIRE
Passo 2
Per capire come funziona questa modalità, quando è disabilitata possiamo eseguire il ping di un sito Web e riceveremo tutte le richieste inviate, ma quando è attivata vedremo un messaggio che indica un errore di connessione temporaneo:
INGRANDIRE
Passaggio 3
Per disabilitare questa modalità eseguiamo:
sudo firewall-cmd --panic-off
8. Come bloccare Firewalld su Linux CentOS e Ubuntu
Passo 1
In Firewalld, le applicazioni oi servizi locali sono in grado di alterare la configurazione del firewall se eseguiti con privilegi di root, possiamo controllare quali applicazioni possono richiedere modifiche al firewall, aggiungendolo alla whitelist di blocco. Questa funzione è disabilitata per impostazione predefinita e possiamo abilitarla o disabilitarla con l'opzione --lockdown-on o -lockdown-off:
sudo firewall-cmd --lockdown-onO
sudo firewall-cmd --lockdown-offPasso 2
Un metodo più sicuro è abilitare o disabilitare questa funzione direttamente nell'edizione del file di configurazione principale, poiché a volte firewall-cmd non esiste nella whitelist di blocco, per questo accediamo al file di configurazione:
sudo nano /etc/firewalld/firewalld.conf
INGRANDIRE
Lì individuiamo la riga Lockdown = no e impostiamo il suo stato su Lockdown = yes, salviamo le modifiche usando i tasti Ctrl + O ed esci dall'editor usando Ctrl + X.
Firewalld è una soluzione completa per aggiungere varie regole e zone alle nostre distribuzioni Linux e quindi aggiungere migliori opzioni di sicurezza generale al sistema.