Torna al blog

Configurazione di un firewall con FirewallD su CentOS 7

Configurazione di un firewall con FirewallD su CentOS 7

Introduzione

Firewalld è una soluzione di gestione del firewall disponibile per molte distribuzioni Linux. Funge da interfaccia per il sistema di filtraggio dei pacchetti iptables fornito dal kernel Linux. In questa guida imparerai come configurare un firewall per il tuo server. Ti mostreremo anche le basi della gestione del firewall con lo strumento di amministrazione firewall-cmd.

Basi di Firewalld

FirewallD utilizza i concetti di zone e servizi, anziché le catene e le regole di iptables. A seconda delle zone e dei servizi configurati, è possibile controllare quale traffico è consentito o meno da e verso il sistema. FirewallD può essere configurato e gestito utilizzando l'utilità della riga di comando firewall-cmd.

Installare e abilitare il firewall all'avvio

Sulla maggior parte delle distribuzioni Linux, firewallD è già installato. Tuttavia, se hai bisogno di installarlo autonomamente, digita la sintassi seguente:

Puoi abilitare il servizio e riavviare il server una volta installato firewalld:

Successivamente, riavvia il server. Il firewall sarà abilitato una volta riavviato correttamente il server. Dopodiché, usa il comando seguente per verificare che il servizio sia stato attivato:

check firewall state FirewallD

L'output mostra che l'impostazione predefinita del firewall funziona.

Verifica delle impostazioni predefinite

Puoi verificare la zona selezionata dal server usando questo comando:

check firewall default zone

Verifica la zona attiva digitando:

firewall active zones

Stampa la configurazione della zona predefinita per conoscere le regole associate all'area pubblica utilizzando questa sintassi:

list all rules FirewallD

L'output indica che questa zona è sia quella predefinita che quella attiva. Mostra anche che le interfacce eth0 e eth1 sono assegnate a questa zona.

Verifica delle zone alternative

Oltre alle zone predefinite e attive, ci sono altre zone che puoi esplorare. Inserisci questo comando per vedere tutte le zone disponibili:

firewall check other zones

Verifica la configurazione specifica assegnata a una zona aggiungendo il parametro –zone= nel comando –list-all:

check zone configuration FirewallD

 Modifica della zona dell'interfaccia

Puoi facilmente modificare la zona dell'interfaccia usando l'opzione –change-interface combinata con l'opzione –change-interface. Il comando seguente assegnerà l'interfaccia eth1 all'area di lavoro:

Puoi verificare le modifiche digitando:

changing firewall interface zones FirewallD

Modifica della zona predefinita

Per modificare la zona predefinita, usa –set-default-zone seguito dal nome della zona che desideri impostare come predefinita. Ad esempio, per modificare la zona predefinita, per iniziare, dovresti eseguire il comando seguente:

Successivamente, puoi verificare le modifiche con:

firewall change default zone

Impostazione delle regole per le tue applicazioni

Esaminiamo le basi necessarie per definire le eccezioni del firewall per i servizi:

Aggiunta di un servizio alle tue zone

Il modo più semplice consiste nell'aggiungere le porte o i servizi necessari alle zone in uso. Allo stesso modo, puoi utilizzare l'opzione –get-services per visualizzare tutti i servizi disponibili:

firewall get services FirewallD

È possibile attivare il servizio per una zona con il parametro –add-service =. L'azione ha come target la zona predefinita o qualsiasi zona definita dal parametro –zone =. Per impostazione predefinita, viene configurata solo la sessione corrente del firewall. È possibile impostare una configurazione permanente del firewall attivando il flag –permanent. Ad esempio, se si esegue un server web che fornisce traffico HTTP regolare, è possibile consentire questo traffico per le interfacce nella nostra zona “public” per questa sessione inserendo:

È possibile omettere –zone = se si desidera modificare la zona predefinita. È possibile verificare il successo dell'operazione con le operazioni –list-all o –list-services:

add service to zone

Una volta verificato che tutto funzioni come previsto, molto probabilmente si vorrà modificare le regole permanenti del firewall per rendere il servizio ancora disponibile dopo un riavvio. Possiamo rendere permanente la modifica alla nostra zona “public” inserendo la sintassi:

È possibile verificare se l'operazione è andata a buon fine aggiungendo il flag –permanent all'operazione –list-services. È necessario utilizzare sudo per tutte le operazioni permanenti:

La tua zona “public” ora consente il traffico HTTP sulla porta 80. Puoi aggiungere questo alla sessione corrente e al set di regole persistenti usando il comando qui sotto:

Se non ci sono servizi che soddisfano i tuoi requisiti, hai due ottime opzioni per gestire questa situazione:

  1. Aprire una porta per le tue zone

Il modo più semplice per aggiungere il supporto per la tua particolare applicazione è aprire le porte utilizzate in ciascuna zona. È semplice come designare una porta o un intervallo di porte e il protocollo corrispondente per le porte che devi aprire. Ad esempio, se la tua applicazione viene eseguita sulla porta 5000 e utilizza TCP, puoi aggiungerla alla zona “public” per questa sessione con il parametro –add-port =. I protocolli possono essere TCP o UDP:

Per verificare che l'operazione sia andata a buon fine, utilizza l'operazione –list-ports:

Puoi anche specificare un intervallo per l'interfaccia seriale separando le porte di inizio e fine nell'intervallo con un trattino. Ad esempio, se la tua applicazione utilizza le porte UDP da 4990 a 4999, puoi aprirle in “public” scrivendo:

Dopo il test, probabilmente vorremo aggiungerle al firewall permanente. Puoi farlo digitando quanto segue:

adding ports to permanent firewall

  1. Definire un servizio

Un servizio è una raccolta di porte con un nome e una descrizione associati. I servizi sono più facili da gestire rispetto alle porte, ma richiedono un piccolo lavoro iniziale. Il modo più semplice per iniziare consiste nel copiare uno script esistente (in / usr / lib / firewalld / services) nella directory /etc/firewalld/services. Ad esempio, è possibile copiare la definizione del servizio SSH da utilizzare nella definizione del servizio “example” come segue. Il nome del file meno il suffisso XML determina il nome del servizio nell'elenco dei servizi del firewall:

A questo punto, puoi modificare la definizione nel file copiato:

In primo luogo, il file contiene la definizione SSH copiata:

La maggior parte di questa definizione consiste in metadati. È necessario modificare il nome breve del servizio nei tag <short>. Questo è un nome di servizio leggibile. Immagina che per il nostro servizio “example”, dobbiamo aprire la porta 7777 per TCP e 8888 per UDP. È possibile modificare la definizione esistente entrando in modalità INSERISCI premendo i:

Successivamente, premi ESC e digita :x per salvare e chiudere il file. Quindi, digita il comando seguente per riavviare il firewall in modo da avere accesso al nuovo servizio;

Dopodiché, usa il comando seguente per ottenere un elenco dei servizi disponibili:

get services

Questo servizio è ora disponibile nella tua zona.

Creazione delle proprie zone

Sebbene le zone predefinite siano probabilmente sufficienti per la maggior parte degli utenti, potrebbe essere utile definire le proprie zone che ne descrivano più dettagliatamente la funzione.

Quando aggiungi una zona, aggiungila alle impostazioni permanenti del firewall. Quindi puoi ricaricare per applicare le impostazioni alla sessione. Ad esempio, puoi creare le due zone discusse in precedenza digitando:

Puoi confermare che siano presenti nella configurazione permanente usando questo comando:

firewall zones

Ricarica il firewall per applicare queste nuove zone alla configurazione attiva:

Ora puoi assegnare i servizi e le porte appropriati alle tue zone. Ad esempio, per la zona “publicweb” potresti voler aggiungere i servizi SSH, HTTP e HTTPS:

list public web zone

 

Inoltre, puoi aggiungere il servizio DNS alla tua zona “privateDNS” utilizzando questo comando:

list privateDNS zone FirewallD

Successivamente, puoi cambiare le tue interfacce in queste nuove zone per testarle:

Testa la configurazione per vedere se funziona. Se questi valori funzionano per te, devi aggiungere le stesse regole alla configurazione permanente. Puoi farlo riapplicando le regole con l'indicatore —permanent:

 

Dopo aver applicato queste regole in modo permanente, puoi riavviare la rete e ricaricare il servizio firewall:

Verifica che le zone siano state assegnate correttamente:

check active zones FirewallD

Inoltre, assicurati che entrambe le zone abbiano il servizio corretto:

Se desideri impostare una delle tue zone come predefinita per altre interfacce, devi configurare questo comportamento con il parametro –set-default-zone= utilizzando questo comando:

Conclusione

A questo punto, hai creato con successo le tue zone. Dovresti avere una comprensione di base dell'amministrazione del servizio firewalld sul tuo sistema CentOS per l'uso quotidiano. Avere una buona padronanza del servizio firewalld ti consente di sfruttare appieno la sua potenza e flessibilità.

Buon computing!

 

author

Akshay Nagpal

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.