Un firewall è simile a un gatekeeper che impedisce al traffico indesiderato proveniente dalla rete esterna di raggiungere il sistema. Le regole del firewall decidono quale traffico consentire l'ingresso o l'uscita. Nei firewall Linux esiste un concetto chiamato zone . Gli amministratori di sistema possono configurare ogni zona con le proprie regole del firewall, che consentono o negano il traffico in entrata nel sistema. Immagina un sistema di sicurezza domestica che indichi quale persona dovrebbe essere autorizzata a visitare quali stanze all'interno della tua casa.
[ Potrebbe piacerti anche: Una guida per principianti al firewalld in Linux ]
Diagramma tramite:Guida introduttiva a firewalld (Red Hat Customer Portal)
firewalld
è un servizio firewall che fornisce un firewall personalizzabile basato su host tramite il D-bus interfaccia. Come accennato in precedenza, i firewall utilizzano zone con un insieme predefinito di regole e ogni servizio utilizza porte . Possiamo consentire/bloccare qualsiasi traffico in entrata verso un particolare servizio in base alla sua porta. Ad esempio, se non vuoi che nessuno acceda al tuo sistema tramite SSH, puoi bloccare la porta 22 e questo assicura che nessuno possa accedere al tuo sistema dall'esterno tramite SSH.
Zone
Il firewalld
il servizio utilizza un concetto di zone. Possiamo assegnare interfacce di rete a queste zone e decidere quale tipo di traffico può entrare in quella rete. Possiamo utilizzare Gestione rete per assegnare interfacce a zone particolari usando il firewall-cmd
command, uno strumento da riga di comando ampiamente noto. Le zone predefinite sono memorizzate in /usr/lib/firewalld/zones/
directory. Ora scopriamo alcune delle zone predefinite disponibili in firewalld
.
- Blocca:in questa zona, tutte le connessioni in entrata vengono rifiutate con un icmp-host-prohibited messaggio e sono consentite solo le connessioni avviate dall'interno del sistema.
- DMZ:per i sistemi che necessitano di connessioni di rete interne limitate, accetta solo connessioni in ingresso selezionate. Conosciuta anche come zona smilitarizzata.
- Drop:le connessioni vengono interrotte senza alcuna notifica. Sono possibili connessioni in uscita.
- Pubblica:questa zona viene utilizzata per i dispositivi sulla rete pubblica non attendibile.
- Affidabile:tutte le connessioni di rete sono accettate.
Una di queste zone può essere impostata come predefinita in base alle esigenze dell'utente. Dopo l'installazione, il pubblico la zona è impostata come predefinita, che puoi modificare in seguito.
Regole firewall in Red Hat Enterprise Linux
Ora che conosciamo le basi di firewalld
, possiamo esplorare come utilizzare i comandi per aggiungere o rimuovere servizi diversi.
Per vedere se il firewall è in esecuzione, utilizzare i seguenti comandi:
# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-11-13 18:19:05 CET; 4 months 4 days ago
Puoi anche digitare:
# firewall-cmd --state
running
Per elencare le informazioni sulla zona predefinita:
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: baremetal cni-podman0 eno1 eno2 eno3 provisioning
sources:
services: cockpit dhcpv6-client http ssh
ports: 8080/tcp 80/tcp 80/udp 67/udp 68/udp protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Come puoi vedere sopra, il pubblico la zona è impostata come predefinita. L'uscita mostra le interfacce assegnate a questa zona e quali servizi e porte sono abilitate/consentite.
Seleziona una zona particolare:
# firewall-cmd --list-all --zone=home
home
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client mdns samba-client ssh
Abilita/avvia il firewalld
servizio all'avvio del sistema:
# systemctl enable firewalld
# systemctl start firewalld
Disattiva/arresta il firewalld
servizio all'avvio del sistema:
# systemctl disable firewalld
# systemctl stop firewalld
Elenca tutte le zone:
# firewall-cmd --list-all-zones
Aggiungi porti e servizi alle zone e rendile permanenti
Successivamente, vediamo alcuni dei comandi per aggiungere nuovi servizi e porte a una particolare zona e renderli permanenti (rimangono anche dopo il riavvio del sistema).
Per aprire o bloccare le porte su firewalld
usa:
# firewall-cmd --list-ports
# firewall-cmd --add-port <port-number/port-type> --permanent
# firewall-cmd --reload
Le porte sono dispositivi logici che consentono a un sistema operativo di ricevere il traffico in entrata e di inoltrarlo ai servizi di sistema. Di solito, questi servizi sono in ascolto su porte standard. Ad esempio, HTTP è in ascolto sulla porta 80 e HTTPS è in ascolto sulla porta 443.
Di solito tipo di porta significa tcp
, udp
o sctp
.
Il prossimo è un esempio che aggiunge permanentemente la porta 443 alla zona predefinita:
# firewall-cmd --add-port 443/tcp --zone=public --permanent
# firewall-cmd --reload
Possiamo anche rimuovere la porta usando --remove-port
opzione.
Regole avanzate in firewalld
Possiamo anche utilizzare regole avanzate , che hanno alcune capacità di filtraggio avanzate in firewalld
. La sintassi per questi è sotto. Queste regole avanzate sono utili quando vogliamo bloccare o consentire un particolare indirizzo IP o intervallo di indirizzi.
Utilizza il comando seguente per visualizzare le impostazioni delle regole avanzate correnti:
# firewall-cmd --list-rich-rules
Possiamo controllare un particolare IP dell'host e delle porte usando regole avanzate.
La regola seguente accetta connessioni SSH solo dall'host con IP 10.1.111.21 e interrompe altre connessioni:
# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.1.111.21/24 service name=ssh log prefix="SSH Logs" level="notice" accept'
Questo esempio rifiuta ping
richieste da tutti gli host con un messaggio di errore:
# firewall-cmd --add-rich-rule='rule protocol value=icmp reject'
La regola seguente rifiuta le richieste provenienti dall'IP 172.92.10.90/32 porta 21 e accetta ogni altra connessione:
# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.92.10.90/32 port port=21 protocol=tcp reject'
[ Stai pensando alla sicurezza? Dai un'occhiata a questa guida gratuita per aumentare la sicurezza del cloud ibrido e proteggere la tua azienda. ]
Concludi
Abilitazione di firewalld
consente all'utente di consentire o limitare le connessioni in entrata e di proteggere selettivamente il proprio sistema dal traffico di rete indesiderato. Ricorda che le regole del firewall decidono quale traffico consentire l'ingresso o l'uscita da un sistema. Puoi configurare una zona con le proprie regole firewall, che consentono o negano il traffico in entrata nel sistema. Ma ricorda anche che consentire a qualsiasi traffico o accesso alla porta del tuo sistema lo rende vulnerabile a violazioni della sicurezza e potenziali attacchi.