Torna al blog

Le basi di UFW: imparare i comandi essenziali del firewall

Le basi di UFW: imparare i comandi essenziali del firewall

Introduzione

UFW sta per uncomplicated firewall. Si tratta di una piattaforma frontend che consente di gestire facilmente le funzioni e i comandi del firewall. UFW è disponibile come opzione predefinita con il tuo Ubuntu server. Massimizzare il potenziale dei comandi e delle funzioni del firewall può essere difficile se non si ha già familiarità con lo strumento.

Il nostro obiettivo è fornirti una guida completa che puoi utilizzare come principiante. Integreremo le spiegazioni con esempi di varie azioni che puoi eseguire con UFW. Molte delle regole saranno molto utili per i servizi e le attività di tutti i giorni. Cominciamo!

Prerequisiti

Prima di procedere, assicurati che il tuo UFW sia impostato sul set di regole predefinito. Ciò significa che il firewall consente il traffico in uscita ma blocca il traffico in entrata. Il vantaggio di questo ripristino predefinito è che puoi selezionare quale traffico consentire attraverso il firewall. Se non sei sicuro dello stato del set di regole corrente sul tuo UFW, usa questo comando per verificare: sudo ufw status. Puoi anche usare questo comando:

A parte questo, sei libero di passare alla sezione più pertinente alle tue esigenze. Non devi necessariamente utilizzare ogni singolo comando fornito in questa guida. Puoi combinarli in base alle tue esigenze personali.

Come bloccare un indirizzo IP

Cominciamo con una delle funzioni più basilari di qualsiasi firewall: il blocco degli indirizzi IP. Esiste un comando molto semplice che puoi utilizzare per bloccare qualsiasi connessione di rete proveniente da un determinato indirizzo IP. Diciamo, ad esempio, che l'indirizzo IP specifico nel nostro caso sia 15.15.15.51. Puoi sostituire questo valore con l'indirizzo IP che desideri bloccare tramite il tuo UFW. Questo è il comando che utilizzeresti a questo scopo:

Qui, from 15.15.15.51 indica solo l'indirizzo IP di origine, che è ‘15.15.15.51’. Se invece desideri specificare una sottorete, puoi aggiungerla come segue: 15.15.15.0/24. Il comando funzionerà altrettanto bene. Puoi specificare questo indirizzo IP di origine in qualsiasi regola del firewall desideri, come la regola allow.

  • Blocco delle connessioni dell'interfaccia di rete

A volte, il requisito potrebbe essere quello di bloccare le connessioni di rete provenienti da uno specifico indirizzo IP verso una specifica interfaccia di rete. In tal caso, dovremo specificare l'interfaccia di rete insieme all'indirizzo IP di origine. Per questo esempio, considera che l'indirizzo IP di origine sia 15.15.15.51 e l'interfaccia di rete sia eth0:

Similmente all'indirizzo IP di origine, puoi specificare l'interfaccia di rete anche in qualsiasi regola del firewall. Lo scopo di queste specifiche è limitare la regola del firewall data a una particolare rete o connessione soltanto.

Come consentire le connessioni SSH

Questa sezione è rilevante per te se utilizzi un server cloud. Per poter stabilire una connessione al tuo server cloud, è necessario che il firewall consenta le connessioni SSH in entrata. Queste connessioni SSH passano attraverso la porta 22. Puoi seguire questo tutorial per imparare a usare SSH to connect to a remote server in Ubuntu.

Stabilendo connessioni SSH, puoi gestire con successo il tuo server cloud utilizzando la tua unità locale. Qui copriremo le varie regole relative alla configurazione del firewall associata a SSH:

  • Consentire SSH

Usa il seguente comando per consentire tutte le connessioni SSH in entrata:

D'altra parte, puoi anche eseguire il comando specificando invece il numero di porta del servizio SSH:

  • Consentire SSH in entrata da uno specifico indirizzo IP

Nel caso in cui desideri consentire solo connessioni SSH in entrata da uno specifico indirizzo IP o sottorete, hai la possibilità di specificare l’origine. Ad esempio, poniamo il caso che la sottorete che desideri consentire sia 15.15.15.0/24. Ecco il comando che dovrai eseguire:

  • Consentire Rsync in entrata da un indirizzo IP specifico

In esecuzione sulla porta 873, Rsync consente di eseguire il trasferimento di file da un sistema informatico all'altro. Se desideri consentire solo la connessione Rsync proveniente da uno specifico indirizzo IP o subnet (in questo esempio, 15.15.15.0/24), puoi farlo utilizzando questo comando:

Questo significa che l'intera subnet 15.15.15.0/24 sarà autorizzata a eseguire Rsync sul tuo server. Ecco anche una guida completa tutorial su come utilizzare Rsync per sincronizzare le directory locali e remote sul tuo server.

Come configurare le richieste del server web

Successivamente, passeremo alle regole relative al servizio Web Server. I server web come Apache e Nginx generalmente accettano richieste per connessioni HTTP e HTTPS da due porte: la porta 80 e la porta 443. La porta 80 gestisce le richieste HTTP. La porta 443 è responsabile delle richieste HTTPS.

Come abbiamo discusso nei prerequisiti, stai utilizzando il set di regole predefinito per UFW. In base a questo set di regole, il firewall blocca o rifiuta tutto il traffico in entrata. Pertanto, dovrai configurare nuove regole che consentano al server di accettare e leggere queste richieste in entrata.

  • Consentire tutto il traffico HTTP

Se desideri consentire tutte le connessioni e le richieste HTTP provenienti dalla porta 80, usa il comando:

Puoi anche utilizzare il numero di porta (porta 80) per specificare il servizio HTTP nel comando:

  • Consentire tutto il traffico HTTPS

Se desideri consentire tutte le connessioni e le richieste HTTPS provenienti dalla porta 443, esegui questo comando:

In modo simile al comando precedente, puoi sostituire 'https' con il numero di porta del servizio HTTPS:

  • Consentire tutto il traffico HTTP e HTTPS

Nel caso in cui desideri consentire sia le richieste HTTP che quelle HTTPS, puoi utilizzare una regola collettiva per entrambe. Attraverso questo singolo comando, puoi consentire il traffico in entrata sia dalla porta 80 che dalla porta 443:

Il comando proto tcp è necessario quando si specificano più porte contemporaneamente.

Puoi anche seguire queste guide dettagliate su come proteggere Nginx e Apache con Let’s Encrypt on Ubuntu.

Come consentire MySQL

MySQL le connessioni entrano attraverso la porta 3306. Dovrai utilizzare una regola per consentire il traffico in entrata se un client sta utilizzando il tuo database MySQL su un server remoto. Segui il nostro tutorial per apprendere le basi di MySQL e come configurare MySQL su un server.

  • Consentire MySQL da un indirizzo IP specifico

Come abbiamo già visto nelle regole precedenti, devi specificare la sorgente per consentire le connessioni MySQL in entrata. La tua sorgente può essere un indirizzo IP specifico o una subnet. Nel nostro esempio, utilizzeremo l'intera subnet 15.15.15.0/24 per eseguire il comando:

  • Consentire MySQL su una specifica interfaccia di rete

Utilizzerai un comando diverso se devi anche specificare l’interfaccia di rete verso la quale stai consentendo le connessioni MySQL. Supponiamo che l’interfaccia di rete che stai utilizzando sia un’interfaccia di rete privata chiamata eth1. Puoi sostituire questo valore con il nome della tua interfaccia di rete:

Come consentire PostgreSQL

Le PostgreSQL connessioni entrano attraverso la porta 5432. In modo simile alle connessioni MySQL, se un client sta utilizzando il database PostgreSQL su un server remoto, è necessario consentire il traffico in entrata. Puoi farlo utilizzando i comandi che seguono.

  • Consentire PostgreSQL da un indirizzo IP specifico

Se sai che le connessioni PostgreSQL provengono da una subnet o da un indirizzo IP specifico, devi specificare la sorgente. Qui utilizzeremo ancora una volta l'esempio della subnet 15.15.15.0/24:

Nel caso in cui la tua policy OUTPUT non sia impostata su  ACCEPT, dovrai eseguire un secondo comando. Questo comando consente il traffico in uscita delle connessioni PostgreSQL già stabilite.

  • Consentire PostgreSQL su una specifica interfaccia di rete

In modo simile alla regola precedente, consentiremo le connessioni PostgreSQL a una specifica interfaccia di rete. Nel nostro caso è eth1:

Nel caso in cui la tua policy OUTPUT non sia impostata su  ACCEPT, dovrai eseguire un secondo comando. Questo comando consente il traffico in uscita delle connessioni PostgreSQL già stabilite. Puoi scoprire come configurare PostgreSQL su Ubuntu seguendo il nostro tutorial dettagliato.

Come configurare i server di posta

Potresti anche utilizzare server di posta come Sendmail e Postfix sul tuo sistema. Questi server sono aperti su diverse porte. Le porte su cui sono in ascolto dipendono dai protocolli impostati per la consegna della posta. Ecco perché dovrai prima determinare quali protocolli sono in esecuzione nel tuo sistema di consegna della posta. Successivamente consentirai i tipi di traffico pertinenti in base a queste informazioni.

  • Bloccare la posta SMTP in uscita

Prima di passare ai comandi che consentono il traffico in entrata per i tuoi server di posta, vediamo come puoi bloccare la posta SMTP in uscita. Puoi usare questo comando se non vuoi che il tuo server invii posta in uscita. La posta SMTP utilizza la porta 25. Usa questo comando per bloccare questo traffico:

Come risultato dell'esecuzione di questo comando, il tuo firewall bloccherà tutto il traffico in uscita sulla porta 25. Se desideri bloccare un'altra porta, sostituisci semplicemente la porta '25' con il numero di porta appropriato.

  • Consentire SMTP in entrata

Ora che sai come bloccare il traffico in uscita, consentire il traffico in entrata sembrerà altrettanto semplice. Usa questo comando per consentire al server di ricevere connessioni SMTP sulla porta 25:

  • Consentire IMAP in entrata

Se desideri consentire al server di stabilire una connessione IMAP sulla porta 143, usa il seguente comando:

  • Consentire IMAPS in entrata

Usa questo comando per consentire al server di rispondere alle connessioni IMAPS sulla porta 993:

  • Consentire POP3 in entrata

Questo comando consente al tuo server di rispondere a tutte le connessioni POP3 attraverso la porta 110:

  • Consentire POP3S in entrata

Infine, puoi consentire al tuo server di ricevere richieste dalla porta 995 per connessioni POP3S utilizzando questo comando:

Conclusione

Questa guida ti aiuterà a familiarizzare con le funzioni di base di UFW. Abbiamo coperto i comandi essenziali che devi conoscere per poter configurare il tuo firewall. Puoi scegliere i comandi che meglio si adattano alle tue esigenze specifiche per creare una soluzione firewall personalizzata. La natura flessibile di UFW consente tale personalizzazione. Sperimenta per capire cosa funziona meglio per te.

Buon divertimento con l'informatica!

author

Akshay Nagpal

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.