Tutorial > Come gestire e reindirizzare le porte con UFW su Ubuntu 18.04

Come gestire e reindirizzare le porte con UFW su Ubuntu 18.04

Pubblicato il: 07 aprile 2020

Sicurezza Ubuntu UFW

Introduzione

Ogni servizio web risulta accessibile su Internet attraverso uno specifico URL, che rappresenta una sorta di "nome sostitutivo" per identificare l'indirizzo IP e la porta del server che fornisce quel servizio. Una stessa macchina può offrire su porte differenti servizi differenti nello stesso momento. 

Per motivi di sicurezza, potrebbe essere necessario mascherare il numero di porta di un servizio web, e mostrare quindi all’esterno un numero di porta che non corrisponde a quella su cui il servizio è realmente in ascolto.

Grazie a questo tutorial sarai in grado di gestire le porte del tuo server, configurando il firewall UFW integrato in Ubuntu. In particolare, seguendo le istruzioni della guida imparerai a reindirizzare le richieste provenienti su una determinata porta verso un’altra porta (port forwarding), potendo ancora usufruire del servizio fornito su quest’ultima.

Come mostrato nell’immagine sottostante, al momento sulla porta 70 del nostro server non vi è alcun servizio offerto. Risulta invece attivo sulla porta 8600 un servizio che, nell'esempio utilizzato per questa guida, restituisce una semplice scritta. 

Servizio non raggiungibile

L'obiettivo del tutorial sarà quindi quello di configurare UFW affinchè gli utenti possano collegarsi sulla porta 70, ma gli venga restituito dal server il servizio offerto sulla porta 8600.

Prerequisiti

Per poter testare l'esempio mostrato in questo tutorial avrai bisogno di:

  • Un server Linux Ubuntu 18.04;
  • UFW, che risulta installato di default su Ubuntu (almeno che non sia stato disinstallato).

Per iniziare dovrai connetterti al tuo server tramite una connessione SSH. Se non l’hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in sicurezza con il protocollo SSH. In caso di server locale puoi passare al punto successivo e aprire il terminale del tuo server.

Configurazione del firewall con UFW

Nativamente non esistono comandi che permettono di eseguire il port forwarding, ovvero di reindirizzare il traffico ricevuto su una determinata porta verso un’altra porta a scelta. Questa operazione è però possibile andando ad agire sulle regole di configurazione su cui si basa UFW, l'applicazione predefinita per la configurazione del firewall su Ubuntu.

Per prima cosa accertati che la porta di destinazione sia abilitata al traffico TCP, altrimenti UFW bloccherà tutte le richieste verso quella porta. Puoi effettuare questa operazione mediante il comando:

sudo ufw allow port_number/tcp

N.B. Sostituisci ‘port_number’ con la tua porta di destinazione sulla quale vuoi che venga indirizzato il traffico.

Come anticipato, non esiste un comando diretto da poter digitare. Devi quindi modificare manualmente il file di configurazione di UFW presente nella directory “/etc/ufw/before.rules”:

cd /etc/ufw
sudo nano before.rules

Prima della sezione *filter inserisci queste istruzioni, modificando i parametri “exposed_port” e “effective_port” rispettivamente con il numero della porta sulla quale abilitare le richieste dall’esterno e quello della porta sulla quale è realmente in ascolto il servizio.

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport exposed_port -j REDIRECT --to-port effective_port
COMMIT

Nell’immagine sottostante puoi vedere un esempio di configurazione, tramite la quale tutte le richieste effettuate sulla porta 70 verranno reindirizzare sulla porta 8600.

Reindirizzamento Porte

Adesso devi aggiungere la regola per la connessione SSH e riavviare UFW mediante il comando:

sudo ufw allow OpenSSH
sudo ufw allow in ssh
sudo ufw enable

Qualora fossi collegato in SSH, ti verrà chiesto se procedere con l’operazione, dato che questa potrebbe eventualmente terminare la connessione. Digita quindi Y e premi Invio.

Conclusione

A questo punto tutto il traffico transitante sulla porta 70 verrà reindirizzato sulla porta 8600 e viceversa.

Come puoi vedere nell’immagine sottostante, allo stesso stesso indirizzo e sulla stessa porta mostrata inizialmente, trovi adesso in ascolto il servizio fornito su quella che in precedenza era la porta 8600.

Servizio disponibile su una porta diversa

Potrai effettuare questa operazione tutte le volte in cui ne avrai bisogno e per ogni servizio, al fine di mascherare il numero reale di porta e mettere in sicurezza il tuo server.