Come funziona il tunneling?
Il tunneling è un meccanismo che protegge i diversi servizi disabilitandoli a cui si accede direttamente dall'esterno della rete. Implica ricevere traffico in una porta e inoltrarlo a un'altra porta e può essere fatto sia a livello locale che a distanza. Il tunneling è una tecnica di reindirizzamento della porta che utilizza tunnel crittografati all'interno del protocollo SSH. Il tunneling è un tipo di comunicazione tra due dispositivi di rete che utilizzano una connessione SSH. SSH prende la richiesta di servizio dal client all'host, quindi crea una connessione che porta la richiesta dall'altra parte della connessione. Dall'altro lato della connessione SSH, la richiesta viene decrittografata per essere inviata al server delle applicazioni sul sistema remoto.
Rinetd
Rinetd è un'utilità che consente all'utente di inoltrare il traffico di rete da una porta a un'altra porta. È una delle utility di inoltro dei porti più comuni per la sua natura di facile utilizzo.
Ad esempio, considera uno scenario in cui il server RDP (192.168.0.10) alla porta 3389 è inaccessibile a causa di un blocco su tutto il traffico in uscita dal sistema di ufficio (192.168.0.15) ad eccezione della porta 80, e c'è un altro sistema domestico (192.168.0.20), anche.
La situazione può utilizzare il sistema domestico come proxy con l'aiuto di Rinetd in modo tale da ricevere una connessione da un indirizzo IP e dalla porta e lo inoltrerà a un altro indirizzo IP e numero di porta. Sul sistema domestico, configurare il file di configurazione Rinetd come segue:
#bindAddress #Bindport #ConnectaDdress #ConnectPort
192.168.0.20 80 192.168.0.10 3389
Presso la macchina per ufficio (192.168.0.15), prova a connetterti a RDP all'IP: porta (192.168.0.20:80). Il sistema domestico riceverà la connessione a (192.168.0.20:80), ma a causa del port forwarding, inoltra la connessione al server RDP (192.168.0.10) Alla porta 3389. Quindi, il server RDP è accessibile dal sistema Office anche se tutto il traffico in uscita è bloccato.
Ngrok
NGROK fornisce una sincronizzazione in tempo reale di ciò che è in esecuzione sul proprio host locale. Permette al pubblico il sito Web in esecuzione sul nostro LocalHost dietro NAT e Firewall. Supponiamo che stiamo sviluppando un sito Web e lo testando sul nostro locale sulla porta 4444. Vogliamo condividerlo con qualcun altro per scopi demo. Possiamo condividerlo tramite GitHub e altri metodi.
Ma ci vorrà molto tempo per schierarsi e i cambiamenti non avranno luogo in tempo reale in tutti i luoghi. Con NGROK, qualsiasi modifica al localhost invierà un aggiornamento alla fine di tutti. NGROK è un servizio multipiattaforma disponibile per il download sul suo sito ufficiale.
Ad esempio, un sito Web in esecuzione su LocalHost: 8080 può essere reso pubblicamente accessibile da chiunque abbia un link URL. Usa il seguente comando per generare un URL pubblico:
ubuntu@ubuntu: ~ $./NGROK HTTP 8080
Tunneling ssh
Il tunneling SSH è il modo migliore per le porte di tunnel da un sistema client a un sistema di server e viceversa. Per utilizzare SSH per tunning delle porte, sia il client che il server dovrebbero avere SSH impostato. Esistono tre tipi di tunneling ssh, i.e., Forwarding di porte locali, port forwarding remoto, porto dinamico.
Port Forwarding locale
L'inoltro del porto locale è una tecnica per rendere disponibili le risorse remote localmente. Queste risorse potrebbero essere vietate o posizionate dietro un firewall per limitare l'accesso locale.
Sintassi:
ubuntu@ubuntu: ~ $ ssh -l: : Nome [email protected]
Prendi in considerazione uno scenario in cui un desktop remoto deve essere integrato in un computer di casa dal sistema di ufficio. Ma la porta 3389 (RDP) è bloccata per motivi di sicurezza. Per accedere alla porta RDP, utilizzare il tunneling ssh per inoltrare le porte di blocco per un blocco diverso un numero di porta. Questo può essere fatto usando il seguente comando:
ubuntu@ubuntu: ~ $ ssh -l 4444: 192.168.0.2: 3389 [email protected]
Ora nella configurazione RDP, LocalHost può essere scritto al posto di un IP o nome host con la colonna Numero di porta 4444 per accedere al RDP di Home.
Forwarding di porte remoto:
L'inoltro di porte remoto è una tecnica per accedere alle risorse locali in remoto. Diciamo che un'azienda vuole che un dipendente funzioni dall'ufficio e limita l'accesso remoto del sistema di ufficio bloccando la porta RDP (3389). In questo caso, l'inoltro di porte remoto può tornare utile. Sul sistema Office, utilizzare il seguente comando:
ubuntu@ubuntu: ~ $ ssh -r 4444: localhost: 3389 [email protected]
Questo stabilerà una connessione. Ora è possibile accedere al computer di lavoro dal sistema domestico utilizzando RDP inserendo LocalHost al posto di un IP o nome host con colonna Numero di porta 4444 nella configurazione RDP.
Dynamic Port Forwarding:
L'inoltro di porte dinamiche consente di tunnel più porte. In questo tipo di inoltro, SSH agisce come un server proxy. Supponiamo che i dipendenti possono accedere al Web sulla porta 80 dal sistema Office a causa di una restrizione di firewall. Dynamic Port Forwarding può aiutare a navigare sul Web sulla porta 80 da casa. Utilizza il seguente ssh comando:
ubuntu@ubuntu: ~ $ ssh -d 4444 [email protected]
Il comando sopra crea un proxy di calze, che richiede la configurazione del browser Web. Per Firefox, vai su Impostazioni e fai clic su "Apri le impostazioni proxy". Digitare LocalHost nella colonna proxy calzini e il numero di porta specificato.
Ogni volta che l'indirizzo viene digitato nella barra dell'URL, verrà inviato al numero di porta specificato tramite il tunnel SSH e ricevuto sul nostro sistema domestico.
Conclusione
Il tunneling e il port forwarding possono essere utilizzati per accedere al traffico di rete attraverso i firewall in modo sicuro. I tunnel SSH si assicurano che i dati in transito viaggi attraverso un tunnel sicuro in modo che non possano essere interrotti o catturati. Ti consente inoltre di impostare le connessioni VPN e accedere ai dati in modo anonimo o da una posizione sicura o inaccessibile a causa di un firewall. L'articolo discute di diversi scenari che richiedono l'uso di un meccanismo che aiuta ad accedere alle risorse desiderate a livello locale o remoto tramite Tunneling Rinetd, NGROK e SSH.