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:
|
1 |
sudo ufw status verbose |
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:
|
1 |
sudo ufw deny from 15.15.15.51 |
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:
|
1 |
sudo ufw deny in on eth0 from 15.15.15.51 |
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:
|
1 |
sudo ufw allow ssh |
D'altra parte, puoi anche eseguire il comando specificando invece il numero di porta del servizio SSH:
|
1 |
sudo ufw allow 22 |
- 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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 22 |
- 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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 873 |
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:
|
1 |
sudo ufw allow http |
Puoi anche utilizzare il numero di porta (porta 80) per specificare il servizio HTTP nel comando:
|
1 |
sudo ufw allow 80 |
- Consentire tutto il traffico HTTPS
Se desideri consentire tutte le connessioni e le richieste HTTPS provenienti dalla porta 443, esegui questo comando:
|
1 |
sudo ufw allow https |
In modo simile al comando precedente, puoi sostituire 'https' con il numero di porta del servizio HTTPS:
|
1 |
sudo ufw allow 443 |
- 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:
|
1 |
sudo ufw allow proto tcp from any to any port 80,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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 3306 |
- 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:
|
1 |
sudo ufw allow in on eth1 to any port 3306 |
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:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 5432 |
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:
|
1 |
sudo ufw allow in on eth1 to any port 5432 |
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:
|
1 |
sudo ufw deny out 25 |
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:
|
1 |
sudo ufw allow 25 |
- Consentire IMAP in entrata
Se desideri consentire al server di stabilire una connessione IMAP sulla porta 143, usa il seguente comando:
|
1 |
sudo ufw allow 143 |
- Consentire IMAPS in entrata
Usa questo comando per consentire al server di rispondere alle connessioni IMAPS sulla porta 993:
|
1 |
sudo ufw allow 993 |
- Consentire POP3 in entrata
Questo comando consente al tuo server di rispondere a tutte le connessioni POP3 attraverso la porta 110:
|
1 |
sudo ufw allow 110 |
- Consentire POP3S in entrata
Infine, puoi consentire al tuo server di ricevere richieste dalla porta 995 per connessioni POP3S utilizzando questo comando:
|
1 |
sudo ufw allow 995 |
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!
Commenti
Ancora nessun commento. Scrivi il primo.