GNU/Linux >> Linux Esercitazione >  >> Linux

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 puoi 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 solo 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 zone di rete o firewall. Le zone firewall definiscono i livelli di affidabilità della sicurezza della rete di interfacce di rete, servizi o connessioni. 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 firewall-cmd terminal o lo strumento di configurazione della GUI di firewall-config.

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

Prima di passare a tutte le informazioni tecniche, 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. In sostanza, gli intervalli di porte da 0 a 1024 sono riservati per scopi 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 per impostazione predefinita in Fedora, RHEL/CentOS 7/8 e openSUSE. In caso contrario, puoi installarlo utilizzando il seguente comando:

# yum install firewalld -y
OR
#dnf install firewalld -y

Debian/Ubuntu

I sistemi Ubuntu vengono forniti con Uncomplicated Firewall per impostazione predefinita. Per utilizzare firewalld, è necessario abilitare il repository Universe e disattivare Uncomplicated Firewall.

sudo add-apt-repository universe
sudo apt install firewalld

Disattiva Firewall semplice:

sudo systemctl disable ufw

Abilita firewall all'avvio:

sudo systemctl enable –now firewalld

Verifica che Firewalld sia in esecuzione:

sudo firewall-cmd –state
running

Zone firewall

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

  • Zona attendibile: Tutte le connessioni di rete sono accettate e utilizzate solo in ambienti affidabili come una casa familiare o un laboratorio di prova.
  • Zona pubblica: È possibile definire regole solo per consentire a porte specifiche di aprire connessioni mentre altre connessioni verranno eliminate. Può essere utilizzato nelle aree pubbliche quando non ti fidi di altri host nella rete.
  • Zone domestiche, interne, di lavoro: La maggior parte delle connessioni in entrata sono accettate in queste tre zone. Le connessioni in entrata escludono il traffico sulle porte che non prevedono connessioni o attività. Puoi applicarlo nelle connessioni domestiche in cui esiste una fiducia generale degli altri utenti sulla rete. Consente solo le connessioni in entrata selezionate.
  • Zona di blocco: Si tratta di un'impostazione firewall estremamente paranoica in cui sono possibili solo le connessioni avviate dall'interno della rete o del server. Tutte le connessioni in entrata alla rete vengono rifiutate e viene emesso un messaggio ICMP-host-prohibited.
  • Zona DMZ: La zona demilitarizzata può essere utilizzata per consentire l'accesso ad alcuni servizi al pubblico. Sono accettate solo le connessioni selezionate. È un'opzione essenziale per alcuni tipi di server nella rete di un'organizzazione.
  • Zona esterna: Se abilitata, questa zona fungerà da router e può essere utilizzata in reti esterne con mascheramento abilitato. L'indirizzo IP della tua rete privata è mappato e nascosto dietro un indirizzo IP pubblico. Vengono accettate solo le connessioni in entrata selezionate, incluso SSH.
  • Zona di rilascio: Tutti i pacchetti in arrivo vengono eliminati senza risposta. Questa zona consente solo connessioni di rete in uscita.

Esempio di zone predefinite definite dalla workstation Fedora 33

cat /usr/lib/firewalld/zones/FedoraWorkstation.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Fedora Workstation</short>
<description>Unsolicited incoming network packets are rejected from port 1 to 1024, except for select network services. [firewall ] Incoming packets that are related to outgoing network connections are accepted. Outgoing network connections are allowed.</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>
<service name="samba-client"/>
<port protocol="udp" port="1025-65535"/>
<port protocol="tcp" port="1025-65535"/>
</zone>

Ottieni la tua zona attuale:
puoi utilizzare le – – zone-get-attive flag per controllare le zone attualmente attive nel tuo sistema.

sudo firewall-cmd --get-active-zones
[sudo] password for tuts:
FedoraWorkstation
interfaces: wlp3s0
libvirt
interfaces: 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 for tuts:
FedoraWorkstation
[tuts@fosslinux ~]$ sudo firewall-cmd --get-zones
FedoraServer Fedora Workstation block dmz drop external home internal libvirt nm-shared public trusted work

Elenco servizi:

Puoi ottenere i servizi a cui il firewall consente l'accesso ad altri sistemi utilizzando  – -list-services 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 delle porte del firewall:
Puoi utilizzare – -list-ports flag per vedere altre impostazioni delle porte in qualsiasi zona.

tuts@fosslinux ~]$ sudo firewall-cmd --list-ports --zone=FedoraWorkstation
[sudo] password for tuts:
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 utilizzare – -new-zone flag.
Esempio:
Crea una nuova zona permanente denominata fosscorp:

[tuts@fosslinux ~]$ sudo firewall-cmd --new-zone fosscorp --permanent
[sudo] password for tuts:
success

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 for tuts:
success

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

[tuts@fosslinux ~]$ sudo firewall-cmd --get-zones
FedoraServer FedoraWorkstation block dmz drop external fosscorp home internal libvirt nm-shared public trusted work

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

Usa l' – -change-interfaccia flag per rendere la zona fosscorp la zona attiva e predefinita per un'interfaccia di rete (wlp3s0) che vuoi proteggere:

[tuts@fosslinux ~]$ sudo firewall-cmd --change-interface wlp3s0 \
> --zone fosscorp --permanent
The interface is under the [ firewall ] control of NetworkManager, setting zone to 'fosscorp'.
success

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

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

Visualizza le zone attualmente assegnate a ciascuna interfaccia utilizzando le – -get-active-zones bandiera:

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

Aggiungi e rimuovi servizi:

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

Elenca i servizi predefiniti disponibili:

tuts@fosslinux ~]$ sudo firewall-cmd --get-services
[sudo] password for tuts:
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 firewall utilizzando il – -add-service bandiera.

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

Puoi anche rimuovere il servizio con il – -remove-service bandiera:

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-service https --permanent
success
[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 la porta 1717 non standard per SSH alla tua zona personalizzata usando il seguente comando:

[tuts@fosslinux ~]$ sudo firewall-cmd --add-port 1717/tcp --permanent
[sudo] password for tuts:
success
[tuts@fosslinux ~]$ sudo firewall-cmd –reload

Rimuovere la porta utilizzando l'opzione flag –remove-port:

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-port 1717/tcp --permanent
success
[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
success
[tuts@fosslinux ~]$ sudo firewall-cmd --reload
success

Conferma se le modifiche sono entrate in vigore:

[tuts@fosslinux ~]$ sudo firewall-cmd --list-all
FedoraWorkstation (active)
target: default
icmp-block-inversion: no
interfaces: wlp3s0
sources:
services: dhcpv6-client mdns samba-client ssh
ports: 1025-65535/udp 1025-65535/tcp 1718/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

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

Puoi rimuovere la porta 1718/tcp eseguendo il comando seguente:

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

Nota:se desideri rendere permanenti le modifiche, devi aggiungere il – -permanente segnala ai tuoi comandi.

Riepilogo

Firewalld è un'ottima 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 Boxes per sperimentare tutte le funzioni firewall-cmd disponibili. Puoi imparare più funzioni di firewall-cmd dalla home page ufficiale di Firewalld.


Linux
  1. Utilizzo del comando systemctl per gestire le unità systemd

  2. Utilizzo di Stratis per gestire l'archiviazione Linux dalla riga di comando

  3. Utilizzo di Logrotate in Linux per gestire i file di registro (con esempi)

  4. Utilizzo di più modelli contemporaneamente con il comando Sed

  5. Usando –exclude con il comando Du?

Utilizzo del comando GREP in Linux con esempi

Gestisci macchine virtuali KVM con il programma Virsh

Monitorare la connessione alla presa di rete utilizzando il comando 10 'ss'

Utilizzo di Xdg-open per l'accesso alla rete con Explorer normale?

Pianifica i lavori in Linux con il comando 'at'

Usare il comando tr in Linux per giocare con i personaggi