Impara Linux

Gestisci la sicurezza della rete con Firewalld utilizzando le righe di comando

Gestisci la sicurezza della rete con Firewalld utilizzando le righe di comando

Il mantenimento della sicurezza della rete è fondamentale per gli amministratori di sistema e la configurazione del firewall tramite la riga di comando è un'abilità essenziale da apprendere. L'articolo evidenzierà come gestire il firewall con firewall-cmd nella riga di comando di Linux.

Un firewall è essenzialmente un software che è possibile configurare per controllare il traffico di rete in entrata e in uscita. I firewall possono impedire ad altri utenti di utilizzare i servizi di rete su un sistema in esecuzione. La maggior parte dei sistemi Linux viene fornita con un firewall predefinito. Le versioni precedenti dei sistemi Linux utilizzavano iptables come demone per il filtraggio dei pacchetti. Le versioni più recenti di Fedora, RHEL/CentOS, openSUSE vengono fornite con Firewalld come demone firewall predefinito. Puoi anche installare Firewalld nelle distribuzioni Debian e Ubuntu.


Ti consiglio di usare Firewalld invece di iptables. Non limitarti a credermi sulla parola. Scopri di più dalla nostra guida completa sui firewall open source disponibili per il tuo sistema Linux.

Firewalld è un demone dinamico per gestire i firewall con supporto per le zone di rete o firewall. Le zone del firewall definiscono i livelli di attendibilità della sicurezza di rete delle interfacce, dei servizi o delle connessioni di rete. Gli amministratori del sistema di sicurezza di rete hanno riscontrato che Firewalld funziona perfettamente con IPv4, IPv6, set IP e bridge Ethernet. Per gestire Firewalld, puoi utilizzare il comando del terminale firewall-cmd o lo strumento di configurazione della GUI firewall-config.

Questa guida utilizzerà il firewall-cmd comando per gestire la sicurezza della rete e il nostro ambiente di test sarà Fedora Workstation 33.

Prima di diventare tutto tecnico, impariamo alcune nozioni di base sulla rete.

Nozioni di base sulla rete

A un computer connesso a una rete viene assegnato un indirizzo IP che viene utilizzato per l'instradamento dei dati. I computer hanno anche porte nell'intervallo 0-65535, che fungono da punti di connessione all'indirizzo IP. Le applicazioni potrebbero riservare porte specifiche. I server Web in genere riservano la porta 80 per comunicazioni HTTP sicure. Essenzialmente gli intervalli di porte 0 - 1024 sono riservati per scopi ben noti e per il sistema.

I due principali protocolli di trasferimento dati Internet (TCP e UDP) utilizzano queste porte durante la comunicazione di rete. Un computer host stabilisce una connessione tra un indirizzo IP di origine e una porta (porta 80 per HTTP non sicuro) e l'indirizzo e la porta di destinazione.

Per gestire la sicurezza della rete, il software firewall può consentire o bloccare il trasferimento di dati o la comunicazione in base a regole come porte o indirizzi IP.

Installazione di Firewalld

Fedora, RHEL/CentOS 7/8, openSUSE

Firewalld è installato di default in Fedora, RHEL/CentOS 7/8 e openSUSE. In caso contrario, puoi installarlo utilizzando il seguente comando:

# yum install firewalld -y
O
#dnf install firewalld -y

Debian/Ubuntu

I sistemi Ubuntu vengono forniti con il firewall semplice per impostazione predefinita. Per utilizzare firewalld, è necessario abilitare il repository dell'universo e disattivare il firewall semplice Un.

sudo add-apt-repository universo
sudo apt install firewalld

Disattiva il firewall semplice:

sudo systemctl disabilita ufw

Abilita firewalld all'avvio:

sudo systemctl enable -now firewalld

Verifica che Firewalld sia in esecuzione:

sudo firewall-cmd -state
in esecuzione

Zone firewall

Firewalld semplifica la configurazione del firewall stabilendo zone predefinite default. Le zone sono un insieme di regole che si adattano alle esigenze quotidiane della maggior parte degli amministratori Linux. Una zona firewall può definire livelli attendibili o negati per servizi e porte.

Esempio di zone predefinite definite dalla workstation Fedora 33

cat /usr/lib/firewalld/zones/FedoraWorkstation.xml


Workstation Fedora
I pacchetti di rete in entrata non richiesti vengono rifiutati dalla porta 1 alla 1024, ad eccezione di determinati servizi di rete. [firewall ] Vengono accettati i pacchetti in entrata relativi alle connessioni di rete in uscita. Sono consentite le connessioni di rete in uscita.





Ottieni la tua zona attuale:
Puoi usare il - - get-zone-attive flag per controllare le zone attualmente attive nel tuo sistema.

sudo firewall-cmd --get-active-zones
[sudo] password per tut:
Fedora Workstation
interfacce: wlp3s0
libvirt
interfacce: virbr0

La zona predefinita su Fedora Workstation 33 nella zona FedoraWorkstation

Ottieni la zona predefinita e tutte le zone definite:

sudo firewall-cmd --get-default-zone
[sudo] password per tut:
Fedora Workstation
[tuts@fosslinux ~]$ sudo firewall-cmd --get-zones
FedoraServer Fedora Workstation block dmz drop esterno home interno libvirt nm-shared public trusted work

Elenco servizi:

È possibile ottenere i servizi a cui il firewall consente l'accesso ad altri sistemi utilizzando il  - -lista-servizi bandiera.

[tuts@fosslinux ~]$ sudo firewall-cmd --list-services
dhcpv6-client mdns samba-client ssh

Su Fedora Linux 33, il firewall consente l'accesso a quattro servizi (dhcpv6-client mdns samba-client ssh) con numeri di porta noti.

Elenca le impostazioni della porta del firewall:
Puoi usare il - -lista-porte flag per vedere altre impostazioni della porta in qualsiasi zona.

tuts@fosslinux ~]$ sudo firewall-cmd --list-ports --zone=FedoraWorkstation
[sudo] password per tut:
1025-65535/udp 1025-65535/tcp

Abbiamo specificato la zona da controllare usando l'opzione - -zone=FedoraWorkstaion.

Gestione di zone, porti e servizi

Le configurazioni del firewall possono essere configurate come runtime o permanenti. Tutte le azioni firewall-cmd persistono solo fino al riavvio del computer o del firewall. Devi creare impostazioni permanenti con il flag -permanent.

Crea una zona

Per creare una zona, devi usare il - -nuova-zona bandiera.
Esempio:
Crea una nuova zona permanente chiamata fosscorp:

[tuts@fosslinux ~]$ sudo firewall-cmd --new-zone fosscorp --permanent
[sudo] password per tut:
successo

Ricarica le regole del firewall per attivare la nuova zona:

[tuts@fosslinux ~]$ sudo firewall-cmd --reload

Aggiungi il servizio ssh alla zona fosscorp in modo da potervi accedere da remoto:

[tuts@fosslinux ~]$ sudo firewall-cmd --zone fosscorp --add-service ssh --permanent
[sudo] password per tut:
successo

Conferma che la tua nuova zona "fosscorp" è attiva:

[tuts@fosslinux ~]$ sudo firewall-cmd --get-zones
FedoraServer FedoraWorkstation block dmz drop esterno Fosscorp home interno libvirt nm-condiviso pubblico lavoro fidato

La tua nuova zona fosscorp è ora attiva e rifiuta tutte le connessioni in entrata tranne il traffico SSH.

Usa il - -cambia-interfaccia flag per rendere la zona nascosta come zona attiva e predefinita per un'interfaccia di rete (wlp3s0) che si desidera proteggere:

[tuts@fosslinux ~]$ sudo firewall-cmd --change-interface wlp3s0 \
> --zone fosscorp --permanent
L'interfaccia è sotto il controllo [ firewall ] di NetworkManager, impostando la zona su 'fosscorp'.
successo

Se vuoi impostare fosscorp come zona predefinita e primaria, esegui il seguente comando:

[tuts@fosslinux ~]$ sudo firewall-cmd --set-default fosscorp
successo

Visualizza le zone attualmente assegnate a ciascuna interfaccia utilizzando il - -get-zone-attive bandiera:

[tuts@fosslinux ~]$ sudo firewall-cmd --get-active-zones
Fosscorp
interfacce: wlp3s0

Aggiungi e rimuovi servizi:

Un modo rapido per consentire il traffico attraverso il firewall è aggiungere un servizio predefinito.

Elenco dei servizi predefiniti disponibili:

tuts@fosslinux ~]$ sudo firewall-cmd --get-services
[sudo] password per tut:
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc
bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client
[…]

Sblocca un servizio predefinito

Puoi consentire il traffico HTTPS (o qualsiasi altro servizio predefinito) attraverso il tuo firewall utilizzando il - -servizio aggiuntivo bandiera.

[tuts@fosslinux ~]$ sudo firewall-cmd --add-service https --permanent
successo
[tuts@fosslinux ~]$ sudo firewall-cmd --reload

Puoi anche rimuovere il servizio con il - -rimuovere-servizio bandiera:

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-service https --permanent
successo
[tuts@fosslinux ~]$ sudo firewall-cmd --reload

Aggiungi e rimuovi porte

Puoi anche aggiungere un numero di porta e un prototipo direttamente con il flag -add-port. L'aggiunta diretta di un numero di porta può tornare utile quando non esiste un servizio predefinito.

Esempio:
Puoi aggiungere il non standard porta 1717 per SSH alla tua zona personalizzata usando il seguente comando:

[tuts@fosslinux ~]$ sudo firewall-cmd --add-port 1717/tcp --permanent
[sudo] password per tut:
successo
[tuts@fosslinux ~]$ sudo firewall-cmd -reload

Rimuovi la porta usando l'opzione -remove-port flag:

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-port 1717/tcp --permanent
successo
[tuts@fosslinux ~]$ sudo firewall-cmd -reload

Puoi anche specificare una zona per aggiungere o rimuovere una porta aggiungendo il flag -zone nel comando:
Aggiungi la porta 1718 per la connessione TCP alla zona FedoraWorstation:

[tuts@fosslinux ~]$ sudo firewall-cmd --zone=FedoraWorkstation --permanent --add-port=1718/tcp
successo
[tuts@fosslinux ~]$ sudo firewall-cmd --reload
successo

Conferma se le modifiche hanno avuto effetto:

[tuts@fosslinux ~]$ sudo firewall-cmd --list-all
Fedora Workstation (attivo)
obiettivo: predefinito
icmp-block-inversion: no
interfacce: wlp3s0
fonti:
servizi: dhcpv6-client mdns samba-client ssh
porte: 1025-65535/udp 1025-65535/tcp 1718/tcp
protocolli:
mascherata: no
avanti-porte:
porte-sorgente:
blocchi icmp:
regole ricche:

Nota: sotto le porte, abbiamo aggiunto numero di porta 1718 per consentire il traffico TCP.

Puoi rimuovere porta 1718/tcp eseguendo il seguente comando:

[tuts@fosslinux ~]$ sudo firewall-cmd --zone=FedoraWorkstation --permanent --remove-port=1718/tcp
successo
[tuts@fosslinux ~]$ sudo firewall-cmd --reload
successo

Nota: se vuoi rendere permanenti le tue modifiche, devi aggiungere il - -permanente bandiera ai tuoi comandi.

Ricapitolare

Firewalld è una grande utility per gestire la sicurezza della tua rete. Il modo migliore per aumentare le tue capacità di amministratore di sistema è acquisire esperienza pratica. Consiglio vivamente di installare Fedora nella tua macchina virtuale (VM) preferita o in Box per sperimentare tutte le funzioni firewall-cmd disponibili. Puoi imparare più funzioni di firewall-cmd dalla home page ufficiale di Firewalld.

Le migliori app di mappatura del gamepad per Linux
Se ti piace giocare su Linux con un gamepad invece di un tipico sistema di input di tastiera e mouse, ci sono alcune app utili per te. Molti giochi pe...
Strumenti utili per i giocatori Linux
Se ti piace giocare su Linux, è probabile che tu abbia utilizzato app e utilità come Wine, Lutris e OBS Studio per migliorare l'esperienza di gioco. O...
Giochi rimasterizzati in HD per Linux che non hanno mai avuto una versione Linux prima
Molti sviluppatori ed editori di giochi stanno realizzando remaster HD di vecchi giochi per prolungare la vita del franchise, per favore i fan richied...