Come configurare il firewall iptables per la sicurezza di Linux

Nonostante Linux sia uno dei sistemi operativi più affidabili e sicuri, grazie alle sue caratteristiche, ci sarà sempre qualche tipo di vulnerabilità, sia essa inerente al sistema o involontariamente da parte dell'utente. Per aumentare la sicurezza di Linux abbiamo vari strumenti progettati per proteggere servizi, processi, profili o file e oggi ci concentreremo su uno speciale chiamato Iptables.

Cos'è Iptables?Iptables è uno strumento firewall avanzato integrato nel kernel Linux che fa parte di un progetto chiamato netfilter.

Grazie a Iptables saremo in grado di gestire in modo accurato e diretto tutte le connessioni in entrata e in uscita al server. Iptables è sviluppato per l'indirizzamento IPv4 mentre per IPv6 abbiamo Ip6tables.

1. Struttura di Iptables in Linux


La struttura che troviamo in Iptables è la seguente:

CrudoÈ responsabile del filtraggio dei pacchetti prima di qualsiasi altra tabella esistente

FiltroQuesta è la tabella predefinita dell'applicazione

NatViene utilizzato per la traduzione degli indirizzi di rete

mangrovieViene utilizzato per l'alterazione di pacchetti di rete specializzati

SicurezzaPuò essere implementato per le regole di connessione alla rete di controllo degli accessi obbligatori

2. Struttura dei comandi in Iptables su Linux


In Iptables, ogni regola è un comando che indica come deve essere gestito il traffico dei pacchetti di rete.
Possiamo utilizzare la seguente struttura:
 -A INPUT -i eth0 -p tcp -m state - ESTABLISHED, RELATED --sport 80 -j ACCEPT
I parametri utilizzati sono:
  • -A: Indica che le regole verranno aggiunte a Iptables
  • -i: Indica l'interfaccia su cui verrà applicata la regola
  • -p: si riferisce al protocollo in cui verrà applicata la regola
  • -m: si riferisce al fatto che esiste una condizione che deve essere soddisfatta per applicare la regola
  • --state: consente l'accettazione di nuove connessioni
  • --sport: indica la porta di origine
  • -j: (Salta) indica che possono accettare tutto il traffico che soddisfa le condizioni date.

3. Creare regole usando Iptables su Linux


Sebbene possiamo aggiungere le regole manualmente, è molto più pratico creare un file di regole e quindi importarlo. In questo caso creeremo il file nel percorso /tmp/iptables-ip4 e potremo utilizzare un editor per la sua rispettiva regolazione:
 sudo nano / tmp / iptables-ip4
La sintassi sarà la seguente:
 * filtro # Regole per aggiungere COMMIT
Ora creeremo le seguenti regole all'interno di detto file:

Loopback = È l'interfaccia esterna di Linux

 -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT

Ping = Ci permette di controllare le connessioni di rete

 -A INPUT -i eth0 -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT -A INPUT -i eth0 -p icmp -m state --state ESTABLISHED, RELATED -j ACCEPT -A OUTPUT - o eth0 -p icmp -j ACCEPT

Web = Attraverso queste regole controlliamo il traffico in entrata e in uscita.

 -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 443 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -j ACCEPT

In caso di aggiunta del DNS utilizzeremo le seguenti righe:

 -A INPUT -i ens3 -s 192.168.0.1 -p udp --sport 53 -m state --state ESTABLISHED, RELATED -j ACCEPT -A OUTPUT -o ens3 -d 192.168.0.1 -p udp --dport 53 -m udp -j ACCETTA

Nota:Qui dobbiamo modificare l'IP se necessario

Ora = Queste regole consentono la connessione a NTP per la corretta sincronizzazione dell'ora

 -A INPUT -i eth0 -p udp -m state --state ESTABLISHED, RELATED --dport 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --sport 123 -j ACCEPT

Stampa = Consente l'abilitazione delle porte USB per il collegamento delle stampanti

 -A INPUT -p udp -m udp --dport 631 -j ACCEPT -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A OUTPUT -p udp -m udp --sport 631 -j ACCEPT -A USCITA -p tcp -m tcp --sport 631 -j ACCEPT

Email = Possiamo abilitare i vari protocolli di posta elettronica

 # IMAP -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 993 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 993 -j ACCEPT
 # POP3 -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 995 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 995 -j ACCEPT
 # SMTP -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED, RELATED --sport 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 465 -j ACCEPT

SSH = Abilita connessioni sicure al computer utilizzando il protocollo SSH

 # Input -A INPUT -i ens3 -p tcp -m state --state NEW, ESTABLISHED --dport 22 -j ACCEPT -A OUTPUT -o ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT
 # Output -A OUTPUT -o ens3 -p tcp -m state --state NEW, ESTABLISHED --dport 22 -j ACCEPT -A INPUT -i ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT

DHCP: possiamo creare regole per autorizzare l'indirizzamento IP tramite DHCP

 -A INPUT -i eth0 -p udp -m state --state ESTABLISHED, RELATED --sport 67:68 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --dport 67:68 -j ACCEPT

Rifiuta tutte le connessioni: possiamo aggiungere le seguenti righe per disabilitare tutto quanto sopra:

 -A INPUT -j REJECT -A FORWARD -j REJECT -A OUTPUT -j REJECT

Tutte queste righe verranno aggiunte nel file menzionato:

INGRANDIRE

Salviamo le modifiche

Ctrl + O

Lasciamo l'editor usando

Ctrl + X

4. Importare le regole usando Iptables Linux


Una volta modificato il file, possiamo importare queste regole in Iptable eseguendo il seguente comando:
 sudo iptables -F && sudo iptables -X
Possiamo vedere lo stato delle regole usando il comando sudo iptables -S:

INGRANDIRE

Nel caso in cui vogliamo ripristinare tutte le regole eseguiremo la seguente riga:

 sudo iptables-restore </ tmp / itpables-ip4
Se vogliamo che queste regole siano permanenti, eseguiremo quanto segue:
 sudo apt install iptables-persistent
In questo modo Iptables è il nostro miglior alleato nella configurazione del firewall in ambienti Linux.

wave wave wave wave wave