Serie RHCSA: elementi essenziali del firewall e controllo del traffico di rete tramite FirewallD e Iptables

instagram story viewer

In parole semplici, a firewall è un sistema di sicurezza che controlla il traffico in entrata e in uscita in una rete in base a un insieme di regole predefinite (come ad esempio la destinazione/origine del pacchetto o il tipo di traffico).

Controlla il traffico di rete con FirewallD e Iptables
RHCSA: controllo del traffico di rete con FirewallD e Iptables – Parte 11

In questo articolo esamineremo le basi di firewalld, il demone firewall dinamico predefinito in Red Hat Enterprise Linux 7, e iptables service, il servizio firewall legacy per Linux, che la maggior parte degli amministratori di sistema e di rete conosce bene e che è disponibile anche in RHEL 7.

Un confronto tra FirewallD e Iptables

Sotto il cofano, entrambi firewalld e il iptables servizio parlare con il netfiltro framework nel kernel attraverso la stessa interfaccia, non a caso, il comando iptables. Tuttavia, a differenza del servizio iptables, firewalld può modificare le impostazioni durante il normale funzionamento del sistema senza che le connessioni esistenti vengano perse.

Firewalld dovrebbe essere installato per impostazione predefinita nel sistema RHEL, anche se potrebbe non essere in esecuzione. Puoi verificare con i seguenti comandi (firewall-config è lo strumento di configurazione dell'interfaccia utente):

# yum info firewalld firewall-config. 
Controlla le informazioni su FirewallD
Controlla le informazioni su FirewallD

e,

# systemctl status -l firewalld.service. 
Controlla lo stato di FirewallD
Controlla lo stato di FirewallD

D'altra parte, il iptables il servizio non è incluso per impostazione predefinita, ma può essere installato tramite.

# yum update && yum install iptables-services. 

Entrambi i demoni possono essere avviati e abilitati per l'avvio all'avvio con il solito sistema comandi:

# systemctl start firewalld.service | iptables-service.service. # systemctl abilita firewalld.service | iptables-service.service. 

Leggi anche:Comandi utili per gestire i servizi Systemd

Per quanto riguarda i file di configurazione, il servizio iptables utilizza /etc/sysconfig/iptables (che non esisterà se il pacchetto non è installato nel sistema). Su una scatola RHEL 7 utilizzata come nodo cluster, questo file ha il seguente aspetto:

Configurazione del firewall di Iptables
Configurazione del firewall di Iptables

Mentre firewalld memorizza la sua configurazione in due directory, /usr/lib/firewalld e /etc/firewalld:

# ls /usr/lib/firewalld /etc/firewalld. 
Configurazione FirewallD
Configurazione FirewallD

Esamineremo questi file di configurazione più avanti in questo articolo, dopo aver aggiunto alcune regole qua e là. Ormai sarà sufficiente ricordarti che puoi sempre trovare maggiori informazioni su entrambi gli strumenti con.

# man firewalld.conf. # man firewall-cmd. # uomo iptables. 

A parte questo, ricordati di dare un'occhiata a Revisione dei comandi essenziali e della documentazione di sistema – Parte 1 della serie attuale, dove ho descritto diverse fonti dove puoi ottenere informazioni sui pacchetti installati sul tuo RHEL 7 sistema.

Utilizzo di Iptables per controllare il traffico di rete

Potresti voler fare riferimento a Configura Iptables Firewall – Parte 8 del Ingegnere certificato dalla Linux Foundation (LFCE) per rinfrescarti la memoria iptables interni prima di procedere oltre. Quindi, saremo in grado di saltare direttamente negli esempi.

Esempio 1: consentire il traffico web sia in entrata che in uscita

Porte TCP 80 e 443 sono le porte predefinite utilizzate dal server Web Apache per gestire le normali (HTTP) e sicuro (HTTPS) traffico web. Puoi consentire il traffico web in entrata e in uscita attraverso entrambe le porte sul enp0s3 interfaccia come segue:

# iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW, ESTABLISHED -j ACCEPT. # iptables -A OUTPUT -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT. # iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEW, ESTABLISHED -j ACCEPT. # iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT. 
Esempio 2: bloccare tutte (o alcune) connessioni in entrata da una rete specifica

Potrebbero esserci momenti in cui è necessario bloccare tutti (o alcuni) tipi di traffico provenienti da una rete specifica, ad esempio 192.168.1.0/24 per esempio:

# iptables -I INPUT -s 192.168.1.0/24 -j DROP. 

lascerà cadere tutti i pacchi provenienti da 192.168.1.0/24 rete, mentre

# iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT. 

consentirà solo il traffico in entrata attraverso la porta 22.

Esempio 3: reindirizzare il traffico in entrata a un'altra destinazione

Se usi il tuo RHEL 7 box non solo come firewall software, ma anche come firewall vero e proprio basato su hardware, in modo che si trovi tra due reti distinte, l'inoltro IP deve essere già abilitato nel tuo sistema. In caso contrario, è necessario modificare /etc/sysctl.conf e impostare il valore di net.ipv4.ip_forward a 1, come segue:

net.ipv4.ip_forward = 1. 

quindi salva la modifica, chiudi l'editor di testo e infine esegui il seguente comando per applicare la modifica:

# sysctl -p /etc/sysctl.conf. 

Ad esempio, potresti avere una stampante installata in una scatola interna con IP 192.168.0.10, con il TAZZE servizio in ascolto sulla porta 631 (sia sul server di stampa che sul firewall). Per inoltrare le richieste di stampa dai client dall'altra parte del firewall, è necessario aggiungere la seguente regola iptables:

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631. 

Si prega di tenere a mente che iptables legge le sue regole in sequenza, quindi assicurati che le politiche predefinite o le regole successive non sovrastino quelle delineate negli esempi sopra.

Iniziare con FirewallD

Una delle modifiche introdotte con firewalld sono zone. Questo concetto consente di separare le reti in diverse zone, il livello di fiducia che l'utente ha deciso di riporre sui dispositivi e sul traffico all'interno di quella rete.

Per elencare le zone attive:

# firewall-cmd --get-active-zones. 

Nell'esempio seguente, il zona pubblica è attivo e il enp0s3 l'interfaccia gli è stata assegnata automaticamente. Per visualizzare tutte le informazioni su una particolare zona:

# firewall-cmd --zone=public --list-all. 
Elenca tutte le zone FirewallD
Elenca tutte le zone FirewallD

Dal momento che puoi leggere di più su zone nel RHEL 7 Guida alla sicurezza, elencheremo qui solo alcuni esempi specifici.

Esempio 4: Consentire i servizi attraverso il firewall

Per ottenere un elenco dei servizi supportati, utilizzare.

# firewall-cmd --get-services. 
Elenca tutti i servizi supportati
Elenca tutti i servizi supportati

Permettere http e https traffico web attraverso il firewall, con effetto immediato e al successivo avvio:

# firewall-cmd --zone=MyZone --add-service=http. # firewall-cmd --zone=MyZone --permanent --add-service=http. # firewall-cmd --zone=MyZone --add-service=https. # firewall-cmd --zone=MyZone --permanent --add-service=https. # firewall-cmd --reload. 

Se code>–zone viene omesso, la zona predefinita (puoi controllare con firewall-cmd –get-default-zone) viene usato.

Per rimuovere la regola, sostituire la parola add con remove nei comandi precedenti.

Esempio 5: IP/Port forwarding

Prima di tutto, devi scoprire se il masquerading è abilitato per la zona desiderata:

# firewall-cmd --zone=MyZone --query-masquerade. 

Nell'immagine qui sotto, possiamo vedere che mascherarsi è abilitato per il zona esterna, ma non per pubblico:

Controlla lo stato di mascheramento in Firewalld
Controlla lo stato di mascheramento

Puoi abilitare il mascheramento per il pubblico:

# firewall-cmd --zone=public --add-masquerade. 

o usa il masquerading in esterno. Ecco cosa faremmo per replicare Esempio 3 insieme a firewalld:

# firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp: toport=631:toaddr=192.168.0.10. 

E non dimenticare di ricaricare il firewall.

Puoi trovare altri esempi su Parte 9 della serie RHCSA, dove abbiamo spiegato come abilitare o disabilitare le porte solitamente utilizzate da un web server e un server ftp e come modificare la regola corrispondente quando la porta predefinita per tali servizi è cambiato. Inoltre, potresti voler fare riferimento al wiki firewalld per ulteriori esempi.

Leggi anche:Esempi utili di FirewallD per configurare il firewall in RHEL 7

Conclusione

In questo articolo abbiamo spiegato cosa a firewall è, quali sono i servizi disponibili per implementarne uno in RHEL 7e fornito alcuni esempi che possono aiutarti a iniziare con questa attività. Se hai commenti, suggerimenti o domande, non esitare a farcelo sapere utilizzando il modulo sottostante. Grazie in anticipo!

Teachs.ru