For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/it/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/it/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/it/guides/bare-metal-cloud/dedicated-servers/firewall-linux-iptable.md.
Vai al contenuto

Configurare iptables su un server dedicato Linux

Vedi come Markdown

Proteggete il vostro server dedicato configurando regole firewall iptables per filtrare il traffico di rete su Linux

Obiettivo

Il vostro server dedicato è dotato di un firewall. I firewall creano una barriera tra una rete attendibile e una rete non attendibile. I firewall funzionano definendo regole che stabiliscono quale traffico è autorizzato e quale è bloccato. Lo strumento firewall sviluppato per i sistemi Linux è iptables.

Scoprite come mettere in sicurezza il vostro server dedicato con iptables.

Warning

OVHcloud fornisce servizi la cui configurazione e gestione sono di vostra responsabilità. È quindi vostra responsabilità assicurarvi che funzionino correttamente.

Mettiamo a vostra disposizione questa guida per aiutarvi al meglio nelle operazioni più comuni. Tuttavia, vi consigliamo di rivolgervi a un provider specializzato e/o di confrontarvi con la nostra Community di utenti in caso di difficoltà o dubbi relativi all'amministrazione, all'utilizzo o alla messa in sicurezza di un server. Maggiori informazioni nella sezione "Per saperne di più" di questa guida.

Prerequisiti

  • Disporre di un server dedicato nel vostro account OVHcloud
  • Disporre di un accesso amministratore (root/sudo) al vostro server via SSH

Procedura

Info

Questa guida indica i comandi per una distribuzione Ubuntu Server.

Questa guida è di uso generale. Potrebbe essere necessario adattare alcuni comandi in base alla distribuzione e/o al sistema operativo che utilizzate. Alcuni consigli potrebbero suggerirvi l'utilizzo di strumenti di terze parti. In caso di domande sul loro utilizzo, consultate la relativa documentazione ufficiale.

La maggior parte delle regole descritte in questa guida presuppone che iptables sia configurato di default per applicare DROP al traffico in entrata e che autorizziate il traffico in entrata in modo selettivo. Se intendete implementare un altro tipo di configurazione, vi consigliamo di consultare la documentazione complementare.

Step 1: aggiornare il sistema

Gli sviluppatori di distribuzioni e sistemi operativi rilasciano frequenti aggiornamenti dei pacchetti software, molto spesso per motivi di sicurezza. Mantenere aggiornati la distribuzione o il sistema operativo è fondamentale per la sicurezza del vostro server.

Per maggiori informazioni, consultate la nostra guida sulla messa in sicurezza di un server dedicato.

Step 2: installare il firewall iptables su Ubuntu

Info

Esistono due versioni diverse di iptables, per IPv4 e per IPv6. Le regole trattate in questo tutorial su iptables per Linux riguardano IPv4. Per configurare iptables per IPv6, dovete utilizzare l'utility ip6tables. Questi due protocolli diversi non funzionano insieme e devono essere configurati in modo indipendente.

Nella maggior parte dei sistemi Linux, iptables è installato di default. Per assicurarvi che iptables sia installato, utilizzate il comando seguente:

sudo apt install iptables

In generale, un comando iptables si presenta così:

sudo iptables [option] CHAIN_rule [-j target]

Ecco un elenco di alcune opzioni comuni di iptables:

  • -A --append: aggiunge una regola a una catena (alla fine).
  • -C --check: cerca una regola che corrisponda ai requisiti della catena.
  • -D --delete: elimina le regole specificate da una catena.
  • -F --flush: elimina tutte le regole.
  • -I --insert: aggiunge una regola a una catena in una determinata posizione.
  • -L --list: mostra tutte le regole di una catena.
  • -N --new-chain: crea una nuova catena.
  • -v --verbose: mostra più informazioni quando si utilizza un'opzione di elenco.
  • -X --delete-chain: elimina la catena indicata.

Step 3: verificare lo stato attuale di iptables

Per visualizzare tutte le regole attualmente presenti sul vostro server, inserite il comando seguente nella finestra del terminale:

sudo iptables -L

Il sistema mostra lo stato delle vostre catene.

L'output elencherà tre catene:

Output del comando sudo iptables -L con le catene INPUT, FORWARD e OUTPUT

Step 4: autorizzare il traffico su localhost

Per autorizzare il traffico del vostro sistema (il localhost), aggiungete una regola alla catena INPUT inserendo quanto segue:

sudo iptables -A INPUT -i lo -j ACCEPT

Questo comando configura il firewall per accettare il traffico per l'interfaccia localhost (lo) (-i). D'ora in poi, tutto ciò che proviene dal vostro sistema passerà attraverso il vostro firewall. Dovete definire questa regola per permettere alle applicazioni di comunicare con l'interfaccia localhost.

Step 5: autorizzare il traffico su porte specifiche

Queste regole autorizzano il traffico sulle diverse porte che specificate tramite i comandi elencati di seguito. Una porta è un punto terminale di comunicazione destinato a un tipo specifico di dati.

Per autorizzare il traffico web HTTP, inserite il comando seguente:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Per autorizzare solo il traffico SSH (Secure Shell) in entrata, inserite quanto segue (notate che utilizziamo la porta 22, che è il numero di porta SSH predefinito. Se il vostro numero di porta è diverso, assicuratevi di adattare di conseguenza i comandi seguenti):

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Per autorizzare il traffico Internet HTTPS, inserite il comando seguente:

sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Le opzioni funzionano così:

  • -p: verifica il protocollo specificato (tcp).
  • --dport: specifica la porta di destinazione.
  • -j jump: esegue l'azione.
Warning

In caso di perdita dell'accesso al vostro server, potete sempre utilizzare lo strumento KVM/IPMI per accedervi nuovamente e modificare la vostra configurazione o eliminare le vostre regole.

Per maggiori informazioni sull'accesso a questo strumento, consultate la nostra guida Come utilizzare la console IPMI con un server dedicato.

Step 6: controllare il traffico per indirizzo IP

Utilizzate il comando seguente per accettare il traffico proveniente da un indirizzo IP specifico.

sudo iptables -A INPUT -s il_vostro_indirizzo_IP_da_autorizzare -j ACCEPT

Sostituite l'indirizzo IP nel comando con l'indirizzo IP che desiderate autorizzare.

Potete anche bloccare il traffico proveniente da un indirizzo IP:

sudo iptables -A INPUT -s il_vostro_indirizzo_IP_da_bloccare -j DROP

Sostituite l'indirizzo IP nel comando con l'indirizzo IP che desiderate bloccare.

Potete rifiutare il traffico proveniente da un intervallo di indirizzi IP con il comando seguente:

sudo iptables -A INPUT -m iprange --src-range il_vostro_indirizzo_IP_iniziale-il_vostro_indirizzo_IP_finale -j REJECT

Le opzioni di iptables che abbiamo utilizzato negli esempi funzionano così:

  • -m: carica un modulo di corrispondenza, in questo caso iprange.
  • iprange: corrisponde a un intervallo di indirizzi IP invece di un singolo indirizzo.
  • --src-range: identifica l'intervallo di indirizzi IP.

Step 7: scartare il traffico indesiderato

Prima di bloccare il resto del traffico, autorizzate le risposte alle connessioni che il vostro server stabilisce autonomamente (aggiornamenti dei pacchetti, query DNS, ecc.). Senza questa regola, anche queste risposte verrebbero bloccate:

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Se definite regole di firewall iptables, dovete impedire gli accessi non autorizzati scartando tutto il traffico proveniente dalle altre porte:

sudo iptables -A INPUT -j DROP

L'opzione -A aggiunge una nuova regola alla catena. Se una connessione passa attraverso porte diverse da quelle che avete definito, verrà scartata.

Warning

Attenzione: se digitate questo comando prima di eseguire lo Step 5, bloccherete tutti gli accessi, compreso quello in corso, ovvero l'accesso SSH. Ciò è particolarmente problematico su una macchina a cui accedete da remoto.

Step 8: eliminare una regola

Per eliminare una regola, utilizzate il suo numero di riga.

Per prima cosa, elencate tutte le regole inserendo quanto segue:

sudo iptables -L --line-numbers
Output del comando sudo iptables -L --line-numbers con i numeri delle regole

Individuate la riga della regola del firewall che desiderate eliminare ed eseguite questo comando:

sudo iptables -D INPUT <Number>

Sostituite Number con il numero di riga della regola che desiderate eliminare.

Step 9: salvare le modifiche

Al riavvio del sistema, iptables non conserva le regole che avete creato. Ogni volta che configurate iptables su Linux, tutte le modifiche apportate si applicano solo fino al riavvio successivo.

Sui sistemi basati su Ubuntu, il pacchetto iptables-persistent si occupa di ripristinare le vostre regole all'avvio. Installatelo con il comando seguente:

sudo apt install iptables-persistent
Info

Durante l'installazione, vi viene chiesto se desiderate salvare le regole IPv4 e IPv6 attuali. Rispondete Yes per conservare le regole che avete appena creato.

Potete quindi salvare le vostre regole in qualsiasi momento con il comando seguente:

sudo netfilter-persistent save

Le vostre regole IPv4 vengono scritte nel file /etc/iptables/rules.v4 (e le vostre regole IPv6 nel file /etc/iptables/rules.v6).

Al successivo avvio del sistema, iptables ricaricherà automaticamente le regole del firewall.

Ora potete configurare regole di base del firewall iptables per il vostro server Linux. Non esitate a fare delle prove, perché potete sempre eliminare le regole di cui non avete bisogno, oppure svuotare tutte le regole e ricominciare.

Per saperne di più

Attivare e configurare Edge Network Firewall

Monitorare gli attacchi DDoS con la dashboard Anti-DDoS

Contatta la nostra Community di utenti.

Questa pagina ti è stata utile?