[SICUREZZA] - Cos'è e come funziona il Firewall Cinese (Great Firewall)
Sommario:
- Prerequisiti
- Concetti di base di Firewalld
- Zone Firewalld
- Servizi firewall
- Firewalld Runtime e impostazioni permanenti
- Abilitazione di FirewallD
- Zone Firewalld
- Modifica del target di zona
- Assegnare un'interfaccia a una zona diversa
- Modifica della zona predefinita
- Creazione di nuove zone
- Servizi Firewalld
- Creazione di un nuovo servizio FirewallD
- Apertura di porte e IP di origine
- Apertura di un IP di origine
- Apertura di una porta di origine
- Porte di inoltro
- Inoltra il traffico da una porta all'altra sull'indirizzo IP
- Inoltra il traffico a un altro indirizzo IP
- Inoltra il traffico a un altro server su una porta diversa
- Conclusione
Un firewall è un metodo per monitorare e filtrare il traffico di rete in entrata e in uscita. Funziona definendo un insieme di regole di sicurezza che determinano se consentire o bloccare il traffico specifico. Un firewall correttamente configurato è uno degli aspetti più importanti della sicurezza generale del sistema.
CentOS 8 viene fornito con un demone firewall denominato firewalld. È una soluzione completa con un'interfaccia D-Bus che consente di gestire dinamicamente il firewall del sistema.
In questo tutorial, parleremo di come configurare e gestire il firewall su CentOS 8. Spiegheremo anche i concetti di base di FirewallD.
Prerequisiti
Per configurare il servizio firewall, è necessario essere registrati come root o utente con privilegi sudo.
Concetti di base di Firewalld
firewalld utilizza i concetti di zone e servizi. In base alle zone e ai servizi che configurerai, puoi controllare quale traffico è consentito o bloccato da e verso il sistema.
Firewalld può essere configurato e gestito utilizzando l'utilità della riga di comando
firewall-cmd
.
In CentOS 8, iptables è sostituito da nftables come backend predefinito del firewall per il demone firewalld.
Zone Firewalld
Le zone sono insiemi di regole predefiniti che specificano il livello di affidabilità delle reti a cui è collegato il computer. È possibile assegnare interfacce e fonti di rete a una zona.
Di seguito sono elencate le zone fornite da FirewallD ordinate in base al livello di attendibilità della zona da non attendibile a attendibile:
- drop: tutte le connessioni in entrata vengono eliminate senza alcuna notifica. Sono consentite solo connessioni in uscita. blocco: tutte le connessioni in entrata vengono rifiutate con un messaggio
icmp-host-prohibited
daicmp-host-prohibited
perIPv4
eicmp6-adm-prohibited
per IPv6n. Sono consentite solo connessioni in uscita. pubblico: per l'uso in aree pubbliche non attendibili. Non ti fidi di altri computer sulla rete, ma puoi consentire connessioni in entrata selezionate. esterno: per l'uso su reti esterne con mascheramento NAT abilitato quando il sistema funge da gateway o router. Sono consentite solo le connessioni in entrata selezionate. interno: da utilizzare su reti interne quando il sistema funge da gateway o router. Altri sistemi sulla rete sono generalmente affidabili. Sono consentite solo le connessioni in entrata selezionate. dmz: utilizzato per computer situati nella zona smilitarizzata che hanno accesso limitato al resto della rete. Sono consentite solo le connessioni in entrata selezionate. lavoro: usato per macchine da lavoro. Altri computer sulla rete sono generalmente affidabili. Sono consentite solo le connessioni in entrata selezionate. home: utilizzato per macchine domestiche. Altri computer sulla rete sono generalmente affidabili. Sono consentite solo le connessioni in entrata selezionate. trusted: sono accettate tutte le connessioni di rete. Fidati di tutti i computer della rete.
Servizi firewall
I servizi Firewall sono regole predefinite che si applicano all'interno di una zona e definiscono le impostazioni necessarie per consentire il traffico in entrata per un servizio specifico. I servizi ti consentono di eseguire facilmente diverse attività in un solo passaggio.
Ad esempio, il servizio può contenere definizioni sull'apertura delle porte, l'inoltro del traffico e altro.
Firewalld Runtime e impostazioni permanenti
Firewalld utilizza due set di configurazione separati, runtime e configurazione permanente.
La configurazione di runtime è l'effettiva configurazione in esecuzione e non persiste al riavvio. All'avvio del daemon firewalld, carica la configurazione permanente, che diventa la configurazione di runtime.
Per impostazione predefinita, quando si apportano modifiche alla configurazione di Firewalld utilizzando l'utilità
firewall-cmd
, le modifiche vengono applicate alla configurazione di runtime. Per rendere permanenti le modifiche aggiungi l'opzione
--permanent
al comando.
Per applicare le modifiche in entrambi i set di configurazione, è possibile utilizzare uno dei due metodi seguenti:
-
Cambia la configurazione di runtime e rendila permanente:
sudo firewall-cmd
sudo firewall-cmd --runtime-to-permanent
Cambia la configurazione permanente e ricarica il demone firewalld:
sudo firewall-cmd --permanent
sudo firewall-cmd --reload
Abilitazione di FirewallD
Su CentOS 8, firewalld è installato e abilitato per impostazione predefinita. Se per qualche motivo non è installato sul tuo sistema, puoi installare e avviare il demone digitando:
sudo dnf install firewalld
sudo systemctl enable firewalld --now
Puoi controllare lo stato del servizio firewall con:
sudo firewall-cmd --state
Se il firewall è abilitato, il comando dovrebbe stampare in
running
. Altrimenti, vedrai
not running
.
Zone Firewalld
La zona predefinita è quella utilizzata per tutto ciò che non è esplicitamente assegnato a un'altra zona.
È possibile visualizzare la zona predefinita digitando:
sudo firewall-cmd --get-default-zone
public
Per ottenere un elenco di tutte le zone disponibili, digitare:
sudo firewall-cmd --get-zones
block dmz drop external home internal public trusted work
Per vedere le zone attive e le interfacce di rete loro assegnate:
sudo firewall-cmd --get-active-zones
L'output seguente mostra che le interfacce
eth0
ed
eth1
sono assegnate alla zona
public
:
public interfaces: eth0 eth1
È possibile stampare le impostazioni di configurazione della zona con:
sudo firewall-cmd --zone=public --list-all
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Dall'output sopra, possiamo vedere che la zona pubblica è attiva e utilizza la destinazione predefinita, che è
REJECT
. L'output mostra inoltre che la zona viene utilizzata dalle interfacce
eth0
ed
eth1
e consente il traffico client DHCP e SSH.
sudo firewall-cmd --list-all-zones
Il comando stampa un enorme elenco con le impostazioni di tutte le zone disponibili.
Modifica del target di zona
La destinazione definisce il comportamento predefinito della zona per il traffico in entrata non specificato. Può essere impostato su una delle seguenti opzioni:
default
,
ACCEPT
,
REJECT
e
DROP
.
Per impostare il target della zona, specificare la zona con l'opzione
--zone
e il target con l'opzione
--set-target
.
Ad esempio, per modificare la destinazione della zona
public
in
DROP
, eseguire:
sudo firewall-cmd --zone=public --set-target=DROP
Assegnare un'interfaccia a una zona diversa
È possibile creare serie specifiche di regole per zone diverse e assegnare loro interfacce diverse. Ciò è particolarmente utile quando si hanno più interfacce sul proprio computer.
Per assegnare un'interfaccia a una zona diversa, specificare la zona con l'opzione
--zone
e l'interfaccia con l'opzione
--change-interface
.
Ad esempio, il comando seguente assegna l'interfaccia
eth1
alla zona di
work
:
sudo firewall-cmd --zone=work --change-interface=eth1
Verifica le modifiche digitando:
sudo firewall-cmd --get-active-zones
work interfaces: eth1 public interfaces: eth0
Modifica della zona predefinita
Per cambiare la zona predefinita, usa l'opzione
--set-default-zone
seguita dal nome della zona che vuoi rendere predefinita.
Ad esempio, per cambiare la zona predefinita in
home
dovresti eseguire il seguente comando:
sudo firewall-cmd --set-default-zone=home
Verifica le modifiche con:
sudo firewall-cmd --get-default-zone
Creazione di nuove zone
Firewalld ti consente anche di creare le tue zone. Questo è utile quando si desidera creare regole per applicazione.
Nel seguente esempio creeremo una nuova zona chiamata
memcached
, apriremo la porta
11211
e consentiremo l'accesso solo dall'indirizzo IP
192.168.100.30
:
-
Crea la zona:
sudo firewall-cmd --new-zone=memcached --permanent
Aggiungi le regole alla zona:
sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent
sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent
Ricarica il demone firewalld per attivare le modifiche:
sudo firewall-cmd --reload
Servizi Firewalld
Con firewalld è possibile consentire il traffico per porte e / o origini specifiche in base a regole predefinite chiamate servizi.
Per ottenere un elenco di tutti i servizi disponibili predefiniti digitare:
sudo firewall-cmd --get-services
Puoi trovare maggiori informazioni su ciascun servizio aprendo il file.xml associato nella
/usr/lib/firewalld/services
. Ad esempio, il servizio HTTP è definito in questo modo:
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
Per consentire il traffico HTTP in entrata (porta 80) per le interfacce nell'area pubblica, solo per la sessione corrente (configurazione runtime) digitare:
sudo firewall-cmd --zone=public --add-service=http
Se si sta modificando la zona predefinita, è possibile escludere l'opzione
--zone
.
Per verificare che il servizio sia stato aggiunto correttamente utilizzare l'opzione
--list-services
:
sudo firewall-cmd --zone=public --list-services
ssh dhcpv6-client
Per mantenere aperta la porta 80 dopo un riavvio, eseguire nuovamente lo stesso comando con l'opzione
--permanent
, oppure eseguire:
sudo firewall-cmd --runtime-to-permanent
Usa
--list-services
insieme all'opzione
--permanent
per verificare le tue modifiche:
sudo firewall-cmd --permanent --zone=public --list-services
ssh dhcpv6-client
La sintassi per la rimozione del servizio è la stessa di quando si aggiunge uno. Basta usare
--remove-service
invece del flag
--add-service
:
sudo firewall-cmd --zone=public --remove-service=http --permanent
Il comando sopra rimuove il servizio
http
dalla configurazione permanente della zona pubblica.
Creazione di un nuovo servizio FirewallD
Come abbiamo già detto, i servizi predefiniti sono memorizzati nella
/usr/lib/firewalld/services
. Il modo più semplice per creare un nuovo servizio è copiare un file di servizio esistente nella directory
/etc/firewalld/services
, che è la posizione per i servizi creati dall'utente e modificare le impostazioni del file.
Ad esempio, per creare una definizione di servizio per Plex Media Server, è possibile utilizzare il file di servizio SSH:
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml
Aprire il file
plexmediaserver.xml
appena creato e modificare il nome breve e la descrizione per il servizio all'interno di
port
, che definisce il numero di porta e il protocollo che si desidera aprire.
Nel seguente esempio, stiamo aprendo le porte
1900
UDP e
32400
TCP.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
Salvare il file e ricaricare il servizio FirewallD:
sudo firewall-cmd --reload
Ora puoi utilizzare il servizio
plexmediaserver
nelle tue zone come qualsiasi altro servizio.
Apertura di porte e IP di origine
Firewalld consente inoltre di abilitare rapidamente tutto il traffico da un indirizzo IP affidabile o su una porta specifica senza creare una definizione di servizio.
Apertura di un IP di origine
Per consentire tutto il traffico in entrata da un indirizzo IP (o intervallo) specifico, specificare la zona con l'opzione
--zone
e l'IP di origine con l'opzione
--add-source
.
Ad esempio, per consentire tutto il traffico in entrata da 192.168.1.10 nell'area
public
, eseguire:
sudo firewall-cmd --zone=public --add-source=192.168.1.10
Rendi persistente la nuova regola:
sudo firewall-cmd --runtime-to-permanent
Verificare le modifiche utilizzando il seguente comando:
sudo firewall-cmd --zone=public --list-sources
192.168.1.10
La sintassi per la rimozione di un IP di origine è la stessa di quando si aggiunge uno. Basta usare
--remove-source
invece
--add-source
:
sudo firewall-cmd --zone=public --remove-source=192.168.1.10
Apertura di una porta di origine
Per consentire tutto il traffico in entrata su una determinata porta, specificare la zona con l'opzione
--zone
e la porta e il protocollo con l'opzione
--add-port
.
Ad esempio, per aprire la porta
8080
nella zona pubblica per la sessione corrente che hai eseguito:
sudo firewall-cmd --zone=public --add-port=8080/tcp
Il protocollo può essere
tcp
,
udp
,
sctp
o
dccp
.
Verifica le modifiche:
sudo firewall-cmd --zone=public --list-ports
8080
Per mantenere la porta aperta dopo il riavvio, aggiungi la regola alle impostazioni permanenti eseguendo lo stesso comando usando il flag
--permanent
o eseguendo:
sudo firewall-cmd --runtime-to-permanent
La sintassi per la rimozione di una porta è la stessa di quando si aggiunge una porta. Basta usare
--remove-port
invece
--add-port
.
sudo firewall-cmd --zone=public --remove-port=8080/tcp
Porte di inoltro
Per inoltrare il traffico da una porta a un'altra porta, abilitare prima il mascheramento per la zona desiderata usando l'opzione
--add-masquerade
. Ad esempio, per abilitare il mascheramento per la zona
external
, digitare:
sudo firewall-cmd --zone=external --add-masquerade
Inoltra il traffico da una porta all'altra sull'indirizzo IP
Nel seguente esempio stiamo inoltrando il traffico dalla porta
80
alla porta
8080
sullo stesso server:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
Inoltra il traffico a un altro indirizzo IP
Nel seguente esempio stiamo inoltrando il traffico dalla porta
80
alla porta
80
su un server con IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2
Inoltra il traffico a un altro server su una porta diversa
Nel seguente esempio stiamo inoltrando il traffico dalla porta
80
alla porta
8080
su un server con IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2
Per rendere persistente la regola di inoltro, utilizzare:
sudo firewall-cmd --runtime-to-permanent
Conclusione
Hai imparato a configurare e gestire il servizio firewalld sul tuo sistema CentOS 8.
Assicurarsi di consentire tutte le connessioni in entrata necessarie per il corretto funzionamento del sistema, limitando al contempo tutte le connessioni non necessarie.
firewalld firewall centos securityCome distribuire, configurare e gestire System Center Essentials 2010
Guida alla distribuzione di System Center Essentials 2010 illustra le best practice per l`uso quotidiano e la manutenzione di System Center Essentials 2010.
Come configurare e configurare le impostazioni del router firewall
Scopri come configurare il firewall del router, accedere alla pagina del router hardware, configurare le impostazioni del firewall del router. Scopri quali porte sono necessarie sul computer.
Come configurare e gestire la sincronizzazione della posta elettronica su Windows Phone 8
Tutto quello che volevi sapere sulla sincronizzazione e-mail e le opzioni di configurazione disponibili su Windows Phone 8.