Come utilizzare il tunneling SSH o l'inoltro di porte

Come utilizzare il tunneling SSH o l'inoltro di porte
La creazione di una connessione sicura tra l'host locale e l'host remoto è chiamata ssh tunneling o port forwarding. Tutte le connessioni effettuate dal tunneling SSH sono crittografate. Questa funzione di SSH è utile per molti scopi, come la gestione del database del server limitato in modo sicuro, implementando VPN di base (rete privata virtuale), utilizzando servizi diversi senza aprire la porta sul firewall, ecc. L'inoltro della porta SSH può essere eseguito in tre modi diversi. Si tratta di inoltro di porte locali, inoltro di porte remoto e inoltro di porte dinamiche. I modi per utilizzare il tunneling SSH o l'inoltro di porte sono stati spiegati in questo tutorial.

Prerequisiti

Prima di iniziare i passaggi di questo tutorial, saranno necessari i seguenti passaggi.

UN. Abilita il servizio SSH su Ubuntu se non è abilitato prima.

B. Genera le coppie di tasti SSH per eseguire i comandi nel server remoto. Esegui il comando seguente per creare la chiave pubblica e la chiave privata. La chiave privata sarà archiviata nel server remoto e le chiavi pubbliche saranno archiviate in modo sicuro nel client.

$ ssh -keygen -t rsa

C. Eseguire il comando seguente per aprire il sshd_config File usando nano editor per aggiungere alcune configurazioni necessarie.

$ sudo nano/etc/ssh/sshd_config

Aggiungi le seguenti righe nel file per abilitare l'accesso root e l'autenticazione basata su password.

Passwordautenticazione Sì
Per altirootlogin Sì

D. Esegui il comando seguente per riavviare il servizio SSH.

$ sudo servizio ssh riavvio

Port Forwarding locale

Viene utilizzato per inoltrare una porta dalla macchina client a una porta della macchina del server e successivamente, che verrà inoltrata alla macchina di destinazione. La macchina client ascolta una determinata porta e tunnel la connessione da quella porta alla porta particolare della macchina del server in questo tipo di inoltro. Qui, la macchina di destinazione può essere qualsiasi server remoto o un'altra macchina. Questo inoltro viene utilizzato principalmente sulla rete interna come il server VNC (Virtual Network Computing).

Fordazione a portata remota

L'opposto dell'attuale inoltro locale è l'inoltro di porte remoto. Viene utilizzato per inoltrare una porta dalla macchina del server a una porta della macchina client e successivamente, che verrà inoltrata alla macchina di destinazione. La macchina del server ascolta una determinata porta e tunnel la connessione da quella porta alla porta particolare della macchina client in questo tipo di inoltro. Qui, la macchina di destinazione può essere qualsiasi macchina locale o un'altra macchina.

Forwarding di porte dinamiche

Viene utilizzato per creare un socket sul computer client che funzionerà come server proxy calzini e quando un client si collega alla porta, la connessione verrà inoltrata alla macchina del server. Successivamente, inoltrerà alla porta dinamica della macchina di destinazione. Le applicazioni che utilizzano calzini proxy si connetteranno alla macchina del server che inoltrerà i traffici alla macchina di destinazione.

Esempi di tunneling SSH o porto

Gli esempi SSH Tunneling and Port Forwarding sono stati mostrati qui utilizzando due account del server locale. Puoi seguire lo stesso processo per il server remoto. Qui, il nome utente della macchina del server è "Fahmida" e il nome utente della macchina client è "Yasmin. Qui sono stati mostrati tre tipi di porte di ssh.

UN. Accedi alle risorse remote dalla macchina client
Le risorse della macchina remota sono accessibili dalla macchina client utilizzando l'inoltro di porta locale. Normalmente si connetterà al server SSH, ma in questo caso, è necessario utilizzare l'opzione -l con il comando SSH definendo la porta locale, l'indirizzo remoto e la porta remota. La sintassi del port forwarding locale è riportata di seguito.

ssh -l local_port: remote_address: remote_port [email protected]

Supponiamo che il numero di porta locale sia 8080, L'indirizzo IP del server remoto è 10.0.2.15, e il numero di porta remoto è 80. Esegui il comando seguente per connettersi con la macchina del server mediante inoltro di porta locale. Qui, il nome host della macchina remota è 'fahmida.com.bd.'

$ ssh -l 8080: 10.0.2.15:80 [email protected]

Dopo essersi connesso con la macchina remota, l'utente della macchina client sarà in grado di accedere a qualsiasi contenuto dalla macchina remota che è stata mostrata qui. Un file di testo chiamato tronco d'albero.TXT esiste nella macchina remota. Ora, eseguire il seguente comando dalla macchina client per leggere il contenuto del file dopo l'accesso nella macchina remota.

$ cat log.TXT

Esegui i seguenti comandi per disconnettersi dalla macchina remota.

$ uscita

Verrà visualizzato il seguente output simile dopo aver eseguito i comandi sopra. L'output mostra il contenuto del file di testo dalla macchina remota e l'iscrizione successiva dalla macchina remota.

B. Accedi alle risorse locali dalla macchina del server
Le risorse della macchina locale sono accessibili dalla macchina del server utilizzando l'inoltro delle porte remoto. Normalmente si connetterà al server SSH, ma in questo caso, è necessario utilizzare l'opzione -r con il comando SSH definendo la porta remota, l'indirizzo locale e la porta locale. La sintassi dell'inoltro della porta remota è riportata di seguito.

ssh -r remote_port: local_address: local_port [email protected]

Supponiamo che il numero di porta remoto sia 22, il nome host del server locale è Localhost, e il numero di porta locale è 2345. Esegui il comando seguente per connettersi con la macchina del server mediante inoltro della porta remoto. Qui, il nome host della macchina remota è 'fahmida.com.bd.'

$ ssh -r 22: localhost: 2345 [email protected]

Dopo il collegamento con la macchina remota, l'utente della macchina remota accederà a qualsiasi contenuto dalla macchina remota mostrata qui. Un file di testo chiamato prodotti.TXT esiste nella home directory della macchina client. Ora, eseguire il seguente comando dopo essersi connesso con la macchina remota per leggere il contenuto del file locale.

$ cat/home/yesmin/prodotti.TXT
Esegui i seguenti comandi per disconnettersi dalla macchina remota.
[cc lang = "text" width = "100%" height = "100%" sfuggito = "vero" tema = "blackboard" nowRap = "0"]
$ uscita

Verrà visualizzato il seguente output simile dopo aver eseguito i comandi sopra. L'output mostra il contenuto del file di testo dalla macchina client e l'iscrizione successiva dalla macchina remota.

C. Utilizzo del server SSH come server proxy
L'inoltro di porta dinamica viene utilizzato principalmente per accedere alla particolare applicazione della rete interna utilizzando un proxy di calze. L'opzione -d viene utilizzata con comando ssh per la porta di prua dinamica. La sintassi della porta di prua dinamica è riportata di seguito.

ssh -d local_port nome [email protected]

Supponiamo che il numero di porta locale sia 5050. Esegui il comando seguente per aprire un proxy di calze alla porta 5050. Ora, l'utente può configurare qualsiasi browser o applicazione per utilizzare l'indirizzo IP locale e la porta 5050 per reindirizzare tutto il traffico attraverso il tunnel.

$ ssh -d 5050 [email protected]

Conclusione

In questo tutorial sono stati descritti tre diversi modi di inoltro di porte SSH per aiutare i lettori a comprendere il concetto di tunneling SSH o inoltro del porto.