GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare il tunneling SSH

Se ti stai connettendo con un dispositivo Linux diverso su una rete diversa, dovresti esporlo a Internet pubblico e ciò potrebbe mettere a rischio il tuo sistema e i tuoi file. Pertanto, SSH Tunneling viene utilizzato per trasmettere i dati in modo rapido e sicuro dall'origine al computer client e viceversa.

Il tunneling SSH è una pratica di creazione di una connessione SSH protetta e crittografata tra una macchina server e una macchina client attraverso la quale i dati possono essere trasferiti e il servizio può essere inoltrato. Nell'articolo di oggi, vedremo come configurare il tunneling SSH e instradare il traffico in modo sicuro tramite tunnel SSH.

Cos'è il tunneling SSH?

Il tunneling SSH è il modo di trasmettere traffico o dati non crittografati attraverso un canale crittografato. Semplicemente, puoi dire che è un tunnel per trasferire i dati da un luogo all'altro in modo sicuro. Oltre alla trasmissione di file, SSH Tunneling può essere utilizzato anche per accedere a servizi intranet attraverso firewall e per implementare VPN.

SSH Tunneling è anche noto come SSH Forwarding ed è un modo semplice ed efficace per trasportare dati che utilizzano un protocollo crittografato (FTP), aggirare i firewall e accedere a contenuti geograficamente limitati.

I port forwarding SSH sono di tre tipi:

  1. Inoltro alla porta locale
  2. Inoltro porta remoto
  3. Inoltro dinamico della porta

Inoltro locale

L'inoltro locale è la pratica di inoltrare una porta dalla macchina client (client SSH locale) alla macchina remota (server SSH) e quindi la connessione viene inoltrata a un'altra porta della macchina di destinazione.

Il client SSH verifica la connessione su una determinata porta e quando riceve una richiesta di connessione, esegue il tunneling della connessione a una porta specifica su un server SSH remoto. E quindi il server si connette a una macchina di destinazione diversa sulla porta configurata.

Viene utilizzato principalmente per connettersi a un servizio remoto su una rete interna dall'esterno come un database. Viene anche utilizzato per la condivisione di file remota su Internet e tramite jump server.

Come impostare il port forwarding locale?

Facciamo un esempio in cui sei limitato da un firewall ad accedere a un'applicazione in esecuzione su un server remoto sulla porta 3000. Ora inoltreremo una porta locale (ad esempio 8080) per accedere all'applicazione localmente.

Il -L viene utilizzato per configurare il port forwarding locale

ssh [email protected] -L 8080:server1.example.com:3000 

Oppure

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT [[email protected]]SSH_SERVER
  • [IP_LOCALE:]PORTA_LOCALE – Il numero di porta e l'indirizzo IP della macchina locale. È possibile utilizzare qualsiasi numero di porta maggiore di 1024.
  • DESTINAZIONE:DESTINATION_PORT – La porta e l'indirizzo IP o il nome host della macchina di destinazione.
  • [[email protetta]]IP SERVER – Il nome utente e l'indirizzo IP del server dell'utente ssh remoto.

Il -f indicherà a ssh di essere eseguito in background.

ssh -f -N [email protected] -L 8080:server1.example.com:3000

E il -N indicherà di non eseguire un comando remoto. [in questo caso non otterrai una shell.]

ssh -N [email protected] -L 8080:server1.example.com:3000

Ora apri un browser sul tuo computer locale e puoi semplicemente usare localhost:8080 per accedere all'applicazione remota invece di accedervi usando l'indirizzo server.example.com:3000.

Inoltro remoto

Il port forwarding remoto è l'opposto del port forwarding locale e ti consente di connetterti al computer locale dal tuo computer remoto. SSH non supporta il port forwarding remoto per impostazione predefinita. Quindi devi abilitarlo nel tuo file di configurazione ssh.

Apri il file di configurazione ssh in modalità di modifica

sudo vim /etc/ssh/sshd_config 

Cerca le GatewayPort e impostalo come sì.

GatewayPorts yes

Salva le modifiche, esci dalla modalità di modifica e riavvia il server.

sudo systemctl restart sshd

Ora che hai abilitato il port forwarding remoto. In SSH aperto utilizziamo il comando -R per impostare il port forwarding remoto.

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [[email protected]]SSH_SERVER
  • [REMOTO:]PORTA_REMOTA – L'indirizzo IP e il numero di porta del server SSH remoto.
  • DESTINAZIONE:DESTINATION_PORT – Il nome host e l'indirizzo IP della macchina di destinazione.
  • [[email protetta]]IP SERVER – Il nome utente SSH remoto e l'indirizzo IP.

Ad esempio:

ssh -R 8080:127.0.0.1:3000 -N -f [email protected]ote.host 

Il server SSH ascolterà sulla porta 8080 e trasporterà tutto il traffico dalla porta 8080 alla porta 3000 sulla tua macchina locale

Oppure puoi utilizzare il comando seguente per inoltrare la porta 5000 sulla macchina remota alla porta 3000 sulla macchina locale.

ssh -f -N [email protected] -R 5000:localhost:3000 

Il port forwarding remoto viene utilizzato principalmente per dare accesso a qualcuno dall'esterno a un servizio interno.

Inoltro dinamico delle porte

Il terzo e l'ultimo tipo di port forwarding è il Dynamic Port Forwarding. Il port forwarding locale e remoto ti consente di eseguire il tunneling e di comunicare con una singola porta, ma nel port forwarding dinamico puoi eseguire il runnel e comunicare con una gamma di porte.

Crea un socket sulla macchina locale che funziona come un server proxy SOCKS oppure puoi dire che imposta la tua macchina locale come un server proxy SOCKS e, per impostazione predefinita, è in ascolto sulla porta 1080. Quando un server si connette a questa porta, è inoltrato alla macchina remota, quindi viene inoltrato alla macchina dinamica su una porta dinamica.

Cos'è SOCKS?

È un protocollo Internet che definisce come una macchina client può connettersi a un server tramite un proxy.

Possiamo abilitare il port forwarding dinamico con l'opzione -D. Comprendiamo il port forwarding con un esempio-

ssh -D [LOCAL_IP:]LOCAL_PORT [[email protected]]SSH_SERVER
  • [IP_LOCALE:]PORTA_LOCALE – L'indirizzo IP e il numero di porta della macchina locale.
  • [[email protetta]]IP SERVER – L'indirizzo IP e il nome utente del server remoto.

Oppure questo comando avvierà un proxy SOCKS e ti consentirà di connetterti all'host remoto.

ssh -f -N -D 1080 [email protected] 

Conclusione

SSH Tunneling è un modo utile per trasferire dati non crittografati attraverso un tunnel crittografato. Ci sono tre opzioni disponibili e puoi scegliere in base alle tue esigenze.


Linux
  1. SSH per il porting diverso da 22:come farlo (con esempi)

  2. Come modificare la porta SSH in Linux

  3. Come impostare le chiavi SSH

  4. Come modificare la porta SSH in CentOS

  5. Come configurare le chiavi SSH su Ubuntu 18.04

Come configurare il port forwarding dinamico SSH su Linux

Come modificare la porta SSH in Ubuntu

Come configurare SSH su CentOS e RHEL

Come modificare la porta SSH in CentOS

Come modificare la porta SSH su Centos 7.x?

Come cambiare la porta SSH su Ubuntu?