SI3.4 Configurare un firewall Fortinet Fortigate
Sommario:
- Prerequisiti
- Concetti di base di Firewalld
- Zone Firewalld
- Servizi firewall
- Firewalld Runtime e impostazioni permanenti
- Installazione e abilitazione di FirewallD
- Lavorare con le zone di Firewalld
- Modifica della zona di un'interfaccia
- Modifica della zona predefinita
- Apertura di un porto o servizio
- Creazione di un nuovo servizio FirewallD
- Porta di inoltro con Firewalld
- Creazione di un set di regole con FirewallD
- Conclusione
Un firewall correttamente configurato è uno degli aspetti più importanti della sicurezza generale del sistema.
FirewallD è una soluzione firewall completa che gestisce le regole iptables del sistema e fornisce un'interfaccia D-Bus per operare su di esse. A partire da CentOS 7, FirewallD sostituisce iptables come strumento di gestione firewall predefinito.
In questo tutorial, ti mostriamo come impostare un firewall con FirewallD sul tuo sistema CentOS 7 e ti spieghiamo i concetti di base di FirewallD.
Prerequisiti
Prima di iniziare con questa esercitazione, assicurarsi di aver effettuato l'accesso al server con un account utente con privilegi sudo o con l'utente root. La migliore pratica è eseguire comandi amministrativi come utente sudo anziché root. Se non hai un utente sudo sul tuo sistema CentOS, puoi crearne uno seguendo queste istruzioni.
Concetti di base di Firewalld
FirewallD utilizza i concetti di zone e servizi, anziché di catena e regole di iptables. In base alle zone e ai servizi che configurerai, puoi controllare quale traffico è consentito o non consentito da e verso il sistema.
FirewallD può essere configurato e gestito utilizzando l'utilità della riga di comando
firewall-cmd
.
Zone Firewalld
Le zone sono insiemi predefiniti di regole che specificano a quale traffico deve essere consentito in base al livello di attendibilità sulle reti a cui è connesso 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.
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 è persistente al riavvio. All'avvio del servizio 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 è necessario utilizzare l'opzione
--permanent
.
Installazione e abilitazione di FirewallD
-
Firewalld è installato di default su CentOS 7, ma se non è installato sul tuo sistema, puoi installare il pacchetto digitando:
sudo yum install firewalld
Il servizio Firewalld è disabilitato per impostazione predefinita. Puoi controllare lo stato del firewall con:
sudo firewall-cmd --state
Per avviare il servizio FirewallD e abilitarlo al tipo di avvio:
sudo systemctl start firewalld
sudo systemctl enable firewalld
Lavorare con le zone di Firewalld
Dopo aver abilitato il servizio FirewallD per la prima volta, la zona
public
è impostata come zona predefinita. È 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 impostazione predefinita, a tutte le interfacce di rete viene assegnata la zona predefinita. Per verificare quali zone sono utilizzate dal tuo tipo di interfaccia di rete:
sudo firewall-cmd --get-active-zones
public interfaces: eth0 eth1
L'output sopra ci dice che entrambe le interfacce
eth0
ed
eth1
sono assegnate alla zona pubblica.
È 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 impostata come predefinita, usata da entrambe le interfacce
eth0
ed
eth1
. Inoltre, sono consentite le connessioni relative al 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 della zona di un'interfaccia
Puoi facilmente cambiare la zona di interfaccia usando l'opzione
--zone
in combinazione con l'opzione
--change-interface
. Il comando seguente assegnerà l'interfaccia
eth1
alla zona di lavoro:
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 modificare la zona predefinita in home è necessario eseguire il comando seguente:
sudo firewall-cmd --set-default-zone=home
Verifica le modifiche con:
sudo firewall-cmd --get-default-zone
Apertura di un porto o servizio
Con FirewallD puoi consentire il traffico per porte 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
sudo firewall-cmd --permanent --zone=public --add-service=http
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 un servizio. Basta usare
--remove-service
invece
--add-service
:
sudo firewall-cmd --zone=public --remove-service=http --permanent
Il comando sopra rimuove il servizio http dalla configurazione permanente della zona pubblica.
Cosa succede se si esegue un'applicazione come Plex Media Server per la quale non è disponibile un servizio appropriato?
In situazioni come queste, hai due opzioni. È possibile aprire le porte appropriate o definire un nuovo servizio FirewallD.
Ad esempio, il server Plex è in ascolto sulla porta 32400 e utilizza TCP, per aprire la porta nell'area pubblica per la sessione corrente utilizzare l'
--add-port=
:
sudo firewall-cmd --zone=public --add-port=32400/tcp
I protocolli possono essere
tcp
o
udp
.
Per verificare che la porta sia stata aggiunta correttamente utilizzare l'opzione
--list-ports
:
sudo firewall-cmd --zone=public --list-ports
32400/tcp
Per mantenere aperta la porta
32400
dopo un riavvio, aggiungere la regola alle impostazioni permanenti eseguendo lo stesso comando utilizzando l'opzione
--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=32400/tcp
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 dei servizi creati dall'utente e modificare le impostazioni del file.
Ad esempio, per creare una definizione di servizio per Plex Media Server possiamo usare 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.
Porta di inoltro con Firewalld
Per inoltrare il traffico da una porta a un'altra porta o indirizzo, abilitare innanzitutto il mascheramento per la zona desiderata utilizzando l'
--add-masquerade
. Ad esempio per abilitare il mascheramento per il tipo di zona
external
:
sudo firewall-cmd --zone=external --add-masquerade
- Inoltra il traffico da una porta all'altra sullo stesso server
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 server
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
Creazione di un set di regole con FirewallD
Nel seguente esempio, mostreremo come configurare il firewall se si eseguiva un server Web. Supponiamo che il tuo server abbia una sola interfaccia
eth0
e tu desideri consentire il traffico in entrata solo su porte SSH, HTTP e
-
Cambia la zona predefinita in dmz
Useremo la zona dmz (demilitarizzata) perché di default consente solo il traffico SSH. Per modificare la zona predefinita in dmz e assegnarla all'interfaccia
eth0
, eseguire i comandi seguenti:sudo firewall-cmd --set-default-zone=dmz
sudo firewall-cmd --zone=dmz --add-interface=eth0
Apri le porte HTTP e
Per aprire le porte HTTP e HTTPS aggiungere regole di servizio permanenti alla zona dmz:
sudo firewall-cmd --permanent --zone=dmz --add-service=http
sudo firewall-cmd --permanent --zone=dmz --add-service=https
Rendi effettive le modifiche immediatamente ricaricando il firewall:
sudo firewall-cmd --reload
Verifica le modifiche
Per verificare il tipo di impostazioni di configurazione della zona dmz:
sudo firewall-cmd --zone=dmz --list-all
dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
L'output sopra ci dice che il dmz è la zona predefinita, è applicato all'interfaccia
eth0
e le porte ssh (22) http (80) e https (443) sono aperte.
Conclusione
Hai imparato a configurare e gestire il servizio FirewallD sul tuo sistema CentOS.
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 iptables centos securityCome impostare un firewall con ufw su debian 9
UFW (Uncomplicated Firewall) è un front-end intuitivo per la gestione delle regole del firewall di iptables e il suo obiettivo principale è quello di semplificare la gestione di iptables o come dice il nome senza complicazioni. In questo tutorial ti mostreremo come configurare un firewall con UFW su Debian 9.
Come impostare un firewall con ufw su Ubuntu 18.04
Per impostazione predefinita, Ubuntu viene fornito con uno strumento di configurazione del firewall chiamato UFW (Uncomplicated Firewall). UFW è un front-end intuitivo per la gestione delle regole del firewall di iptables e il suo obiettivo principale è quello di semplificare la gestione di iptables o come dice il nome senza complicazioni.
Come arrestare e disabilitare firewalld su centos 7
A partire da CentOS 7, FirewallD sostituisce iptables come strumento di gestione firewall predefinito. In questo tutorial ti mostreremo come disabilitare FirewallD sui sistemi CentOS 7.