Come configurare un tunnel SSH su Linux

23 feb 2023 4 min di lettura
Come configurare un tunnel SSH su Linux
Indice dei contenuti

Introduzione

SSH Tunnel (Secure Shell Tunnel) è una tecnologia di rete che consente di creare una connessione sicura tra due dispositivi, in modo che il traffico di rete tra di essi venga crittografato e protetto da potenziali attacchi esterni.

In pratica, uno SSH Tunnel permette di creare un canale di comunicazione sicuro attraverso Internet, utilizzando il protocollo SSH (Secure Shell), che è un protocollo di rete sicuro per l'accesso remoto e la gestione di server.

Ad esempio, si può utilizzare uno SSH Tunnel per accedere a un servizio o una risorsa di rete attraverso una connessione Internet non sicura, come una connessione WiFi pubblica o una connessione a Internet non protetta.

In questo caso, si crea una connessione SSH tra il proprio dispositivo e un server sicuro, e si instrada il traffico di rete attraverso questa connessione, in modo che il traffico di rete sia crittografato e protetto da eventuali attacchi esterni.

Prerequisiti

Prima di iniziare, avrai bisogno di alcune cose:

  • Un computer Linux
  • Accesso a un server remoto che supporta SSH

Comando SSH di base

Innanzitutto, apri una finestra di terminale sul tuo computer Linux. Puoi farlo premendo Ctrl + Alt + T o navigando nel menu delle applicazioni e cercando "Terminale".

Per impostare un tunnel SSH su Linux, useremo il comando ssh. La sintassi di base per il comando ssh è la seguente:

ssh [user@]hostname [-p port] [command]

Ecco cosa fa ciascuna parte del comando:

  • [user@ ]hostname] : Il server remoto a cui vuoi connetterti. È possibile specificare il nome utente da utilizzare per la connessione prima del nome host, in questo modo: nomeutente@nomehost.
  • [-p port] : il numero di porta da utilizzare per la connessione SSH. Per impostazione predefinita, SSH utilizza la porta 22, ma è possibile specificare un numero di porta diverso se necessario.
  • [comando] : il comando che vuoi eseguire sul server remoto. In questo caso, creeremo un tunnel SSH, quindi non è necessario specificare un comando.

Configurare il tunnel SSH locale

Il tunneling SSH locale viene utilizzato per inoltrare una porta locale a un server remoto. Ad esempio, se si dispone di un server Web in esecuzione sul computer locale a cui si desidera accedere da un server remoto, è possibile utilizzare il tunneling SSH locale per inoltrare la porta del server Web al server remoto. Ecco un esempio:

ssh -L [local_port]:[remote_host]:[remote_port] [user@]hostname -p [port]

Ecco cosa fa ciascuna parte del comando:

  • -L [local_port]:[remote_host]:[remote_port] : specifica il numero di porta locale da utilizzare per il tunnel SSH (local_port), l'host remoto e il numero di porta a cui connettersi tramite il tunnel SSH (remote_host:remote_port).
  • [ user@ ]hostname : Il server remoto a cui vuoi connetterti. È possibile specificare il nome utente da utilizzare per la connessione prima del nome host, in questo modo: nomeutente@nomehost.
  • -p [porta] : il numero di porta da utilizzare per la connessione SSH. Per impostazione predefinita, SSH utilizza la porta 22, ma è possibile specificare un numero di porta diverso se necessario.

Ad esempio, se si desidera configurare un tunnel SSH sulla porta 8080 per accedere a un server Web su un server remoto con l'indirizzo IP 192.168.1.100 , utilizzare il seguente comando:

ssh -L 8080:localhost:80 [email protected] -p 22 

Questo comando imposta un tunnel SSH che associa la porta locale 8080 alla porta 80 del server remoto, consentendoti di accedere al server web del server remoto sulla tua macchina locale navigando su "http://localhost:8080" nel tuo browser web.

Configurare il tunnel SSH remoto

Il tunneling SSH remoto viene utilizzato per inoltrare una porta remota a una macchina locale. Ad esempio, se si dispone di un server di database in esecuzione su un server remoto a cui si desidera accedere dalla propria macchina locale, è possibile utilizzare il tunneling SSH remoto per inoltrare la porta del server di database alla propria macchina locale. Ecco un esempio:

ssh -R 3306:localhost:3306 [email protected] 

Questo comando inoltra la porta 3306 sul server remoto alla porta 3306 sul computer locale. È quindi possibile connettersi al server del database in esecuzione sul server remoto collegandosi a localhost:3306 sulla macchina locale.

Impostare il tunnel SSH inverso

Il tunneling SSH inverso viene utilizzato per consentire a un server remoto di connettersi a una macchina locale. Ad esempio, se si dispone di una macchina locale che esegue un server Web a cui si desidera consentire l'accesso da un server remoto, è possibile utilizzare il tunneling SSH inverso per creare una connessione sicura tra le due macchine. Ecco un esempio:

Sul tuo computer locale, esegui il seguente comando:

ssh -R 8080:localhost:80 [email protected]

Questo comando inoltra la porta 8080 sul server remoto alla porta 80 sul computer locale. È quindi possibile accedere al server Web in esecuzione sul computer locale collegandosi a http://remote-server.com:8080 .

Utilizzando il tunneling SSH, puoi accedere in modo sicuro alle risorse sui server remoti e inoltrare le porte tra le macchine senza esporle alla rete Internet pubblica.

Mantenere attivo il tunnel SSH

Ricorda che i tunnel SSH richiedono una connessione attiva al server remoto per rimanere aperti. Se la connessione viene interrotta per qualsiasi motivo, il tunnel verrà chiuso e dovrai riconfigurarlo.

Per evitare ciò, puoi utilizzare uno strumento come autossh, che riconnette automaticamente il tunnel SSH se la connessione viene persa.

Conclusione

La configurazione di un tunnel SSH su Linux può essere un modo utile per proteggere la privacy e la sicurezza online. Usando il comando ssh, puoi facilmente creare un tunnel sicuro verso un server remoto e instradare il tuo traffico Internet attraverso di esso. Seguendo i passaggi

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.