Connect with us

Linux

Come configurare FirewallD in RHEL, CentOS e Fedora


Filtro di rete come tutti sappiamo è un firewall in Linux. Firewalld è un demone dinamico per gestire i firewall con supporto per le zone di rete. Nella versione precedente, RHEL & CentOS 6 abbiamo utilizzato iptables come demone per il framework di filtraggio dei pacchetti. In RHEL/CentOS 7/8 e Fedora iptables l’interfaccia è stata sostituita da firewalld.

Configurare e utilizzare FirewallD
Configurare e utilizzare FirewallD

Si consiglia di iniziare a utilizzare Firewalld invece di iptables poiché questo potrebbe interrompersi in futuro. Tuttavia, iptables sono ancora supportati e possono essere installati con il comando yum. Non possiamo mantenere Firewalld e iptables entrambi nello stesso sistema che può portare al conflitto.

In iptables, abbiamo usato per configurare come CATENE DI INGRESSO, USCITA E AVANTI ma qui dentro Firewalld, il concetto utilizza Zone. Per impostazione predefinita, sono disponibili diverse zone in firewalld, che verranno discusse in questo articolo.

La zona di base che sono come zona pubblica e zona privata. Per far funzionare le cose con queste zone, dobbiamo aggiungere l’interfaccia con il supporto di zona specificato e quindi possiamo aggiungere i servizi a firewalld.

Per impostazione predefinita, sono disponibili molti servizi, una delle migliori caratteristiche di firewalld è, viene fornito con servizi predefiniti e possiamo prendere questi servizi come esempio per aggiungere i nostri servizi semplicemente copiandoli.

Firewalld funziona alla grande con IPv4, IPv6, e Ponti Ethernet pure. Possiamo avere un run-time separato e una configurazione permanente in firewalld.

Cominciamo a lavorare con le zone e creare i nostri servizi e un utilizzo molto più entusiasmante di firewalld.

Il nostro ambiente di prova
Operating System :	CentOS Linux release 7.0.1406 (Core)
IP Address       :	192.168.0.55
Host-name	:	server1.tecmintlocal.com
I nostri dettagli di installazione
I nostri dettagli di installazione

Passaggio 1: installazione di Firewalld in CentOS

1. Firewalld pacchetto è installato per impostazione predefinita in RHEL / CentOS 7/8 e Fedora. In caso contrario, puoi installarlo utilizzando il seguente comando yum.

# yum install firewalld -y
Installa Firewalld in CentOS 7
Installa Firewalld

2. Dopo il firewalld pacchetto è stato installato, è ora di verificare se il file iptables il servizio è in esecuzione o meno, se in esecuzione, è necessario arrestare e mascherare (non utilizzare più) il servizio iptables con i comandi seguenti.

# systemctl status iptables
# systemctl stop iptables
# systemctl mask iptables
Disabilita Iptables in CentOS 7
Disabilita il servizio Iptables

Passaggio 2: discussione dei componenti Firewalld

3. Prima di passare alla configurazione di firewalld, vorrei discutere ogni zona. Per impostazione predefinita, sono disponibili alcune zone. Dobbiamo assegnare l’interfaccia alla zona. Una zona definisce che la zona che è stata considerata attendibile o negata livello all’interfaccia per ottenere una connessione. Una zona può contenere servizi e porte.

Qui, descriveremo ogni zona disponibile in Firewalld.

  • Zona di rilascio: Tutti i pacchetti in arrivo vengono scartati se usiamo questa zona di rilascio. Questo è lo stesso che usiamo per aggiungere iptables -j drop. Se usiamo la regola di rilascio, significa che non c’è risposta, saranno disponibili solo le connessioni di rete in uscita.
  • Block Zone: Block zone negherà che le connessioni di rete in entrata siano rifiutate con un icmp-host-proibito. Saranno consentite solo le connessioni stabilite all’interno del server.
  • Zona pubblica: Per accettare le connessioni selezionate possiamo definire regole nella zona pubblica. Ciò consentirà solo l’apertura della porta specifica nel nostro server, altre connessioni verranno interrotte.
  • Zona esterna: Questa zona agirà come opzioni del router con mascheramento abilitato, altre connessioni verranno interrotte e non verranno accettate, sarà consentita solo la connessione specificata.
  • Zona DMZ: Se è necessario consentire l’accesso ad alcuni servizi al pubblico, è possibile definirlo nella zona DMZ. Anche questo ha la caratteristica di accettare solo le connessioni in entrata selezionate.
  • Zona di lavoro: in questa zona, possiamo definire solo reti interne, ovvero il traffico di reti private è consentito.
  • Zona casa: Questa zona è utilizzata specialmente nelle aree domestiche, possiamo usare questa zona per fidarci degli altri computer sulle reti per non danneggiare il tuo computer come ogni zona. Anche questo consente solo le connessioni in entrata selezionate.
  • Zona interna: Questo è simile alla zona di lavoro con le connessioni consentite selezionate.
  • Zona attendibile: Se impostiamo la zona di fiducia, tutto il traffico viene accettato.

Ora hai un’idea migliore delle zone, ora scopriamo le zone disponibili, le zone predefinite ed elenchiamo tutte le zone utilizzando i seguenti comandi.

Elenca zone Firewalld

# firewall-cmd --get-zones
Trova zone firewall disponibili
Trova zone disponibili in Firewalld

Elenca la zona predefinita di Firewalld

# firewall-cmd --get-default-zone
Firewalld Default Zone
Firewalld Default Zone

Elenca tutte le zone del firewall

# firewall-cmd --list-all-zones

Nota: L’output del comando precedente non si adatta a una singola pagina poiché elencherà tutte le zone come block, dmz, drop, external, home, internal, public, trusted e work. Se le zone hanno regole avanzate, anche i servizi o le porte abilitati verranno elencati con le rispettive informazioni sulla zona.

Passaggio 3: impostazione della zona Firewalld predefinita

4. Se desideri impostare la zona predefinita come interna, esterna, drop, lavoro o qualsiasi altra zona, puoi utilizzare il comando seguente per impostare la zona predefinita. Qui usiamo il “interno“Zona predefinita.

# firewall-cmd --set-default-zone=internal

5. Dopo aver impostato la zona, verificare la zona predefinita utilizzando il comando seguente.

# firewall-cmd --get-default-zone
Imposta la zona predefinita di Firewalld
Imposta la zona predefinita di Firewalld

6. Ecco, la nostra interfaccia è enp0s3, Se abbiamo bisogno di controllare la nostra zona in cui l’interfaccia è delimitata, possiamo usare il comando seguente.

# firewall-cmd --get-zone-of-interface=enp0s3
Controlla la zona dell'interfaccia
Controlla la zona dell’interfaccia

7. Un’altra caratteristica interessante di firewalld è ‘icmptype‘è uno dei tipi di icmp supportati da firewalld. Per ottenere l’elenco dei tipi di icmp supportati possiamo utilizzare il comando seguente.

# firewall-cmd --get-icmptypes

Passaggio 4: creazione dei propri servizi in Firewalld

8. I servizi sono un insieme di regole con porte e opzioni utilizzate da Firewalld. I servizi abilitati verranno caricati automaticamente quando il file Firewalld servizio attivo e funzionante.

Per impostazione predefinita, sono disponibili molti servizi, per ottenere l’elenco di tutti i servizi disponibili, utilizzare il seguente comando.

# firewall-cmd --get-services
Controlla i servizi Firewalld
Elenca i servizi Firewalld

9. Per ottenere l’elenco di tutti i servizi disponibili predefiniti, vai alla seguente directory, qui otterrai l’elenco dei servizi.

# cd /usr/lib/firewalld/services/
Elenca i servizi Firewalld predefiniti
Elenca i servizi Firewalld predefiniti

10. Per creare il tuo servizio, devi definirlo nella seguente posizione. Ad esempio, qui voglio aggiungere un servizio per RTMP porta 1935, prima fai una copia di uno qualsiasi dei servizi.

# cd /etc/firewalld/services/
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

Quindi, vai alla posizione in cui è stato copiato il nostro file di servizio, quindi rinomina il file ‘ssh.xml‘ per ‘rtmp.xml‘come mostrato nell’immagine sottostante.

# cd /etc/firewalld/services/
Crea servizio Firewalld
Crea servizio Firewalld
Aggiungi servizio a Firewalld
Aggiungi servizio Firewalld

11. Quindi apri e modifica il file come Intestazione, descrizione, protocollo e numero di porta, che dobbiamo utilizzare per il servizio RTMP come mostrato nell’immagine sottostante.

Configurare il servizio Firewalld
Configurare il servizio Firewalld

12. Per rendere attive queste modifiche, riavviare il servizio firewalld o ricaricare le impostazioni.

# firewall-cmd --reload

13. Per confermare se il servizio è stato aggiunto o meno, eseguire il comando seguente per ottenere un elenco dei servizi disponibili.

# firewall-cmd --get-services
Conferma del servizio aggiunto nel firewall
Conferma del servizio aggiunto nel firewall

Passaggio 5: assegnazione di servizi alle zone Firewalld

14. Qui vedremo come gestire il firewall utilizzando il comando firewall-cmd. Per conoscere lo stato corrente del firewall e di tutte le zone attive, digita il seguente comando.

# firewall-cmd --state
# firewall-cmd --get-active-zones

15. Per ottenere la zona pubblica per l’interfaccia enp0s3, questa è l’interfaccia predefinita, definita in /etc/firewalld/firewalld.conf file come DefaultZone = public.

Per elencare tutti i servizi disponibili in questa zona dell’interfaccia predefinita.

# firewall-cmd --get-service

Passaggio 6: aggiunta di servizi alle zone Firewalld

16. Negli esempi precedenti, abbiamo visto come creare i nostri servizi creando il file rtmp service, qui vedremo come aggiungere il rtmp servizio anche alla zona.

# firewall-cmd --add-service=rtmp

17. Per rimuovere la zona aggiunta, digitare.

# firewall-cmd --zone=public --remove-service=rtmp

Il passaggio precedente era solo un periodo temporaneo. Per renderlo permanente, dobbiamo eseguire il comando seguente con l’opzione -permanente.

# firewall-cmd --add-service=rtmp --permanent
# firewall-cmd --reload

18. Definisci le regole per l’intervallo di sorgenti di rete e apri una qualsiasi delle porte. Ad esempio, se desideri aprire un intervallo di reti, dì “192.168.0.0/24‘e porto’1935‘usa i seguenti comandi.

# firewall-cmd --permanent --add-source=192.168.0.0/24
# firewall-cmd --permanent --add-port=1935/tcp

Assicurati di ricaricare il servizio firewalld dopo aver aggiunto o rimosso servizi o porte.

# firewall-cmd --reload 
# firewall-cmd --list-all
Porta aperta in CentOS 7
Apri porta in Firewalld

Passaggio 7: aggiunta di regole dettagliate per l’intervallo di rete

19. Se voglio consentire i servizi come http, https, vnc-server, PostgreSQL, usa le seguenti regole. Innanzitutto, aggiungi la regola e rendila permanente, quindi ricarica le regole e controlla lo stato.

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' 
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept' --permanent

Ora, la gamma Network 192.168.0.0/24 può utilizzare il servizio di cui sopra dal mio server. L’opzione -permanente può essere utilizzato in ogni regola, ma dobbiamo definire la regola e verificare con l’accesso del client, dopodiché dobbiamo renderla permanente.

20. Dopo aver aggiunto le regole precedenti, non dimenticare di ricaricare le regole del firewall ed elencale utilizzando:

# firewall-cmd --reload
# firewall-cmd --list-all
Elenca tutte le regole attive di FirewallD
Elenca tutte le regole attive di FirewallD

Per saperne di più su Firewalld.

# man firewalld

Ecco fatto, abbiamo visto come impostare un filtro di rete utilizzando Firewalld in RHEL / CentOS e Fedora.

Conclusione

Net-filter è il framework per un firewall per ogni distribuzione Linux. Torna in ogni RHEL e CentOS edizioni, abbiamo usato iptables ma nelle versioni più recenti, hanno introdotto Firewalld. È più facile da capire e utilizzare firewalld. Spero ti sia piaciuto l’articolo.


Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare

Di tendenza