it.phhsnews.com


it.phhsnews.com / Come utilizzare il tunneling SSH per accedere ai server con restrizioni e navigare in modo sicuro

Come utilizzare il tunneling SSH per accedere ai server con restrizioni e navigare in modo sicuro


Un client SSH si connette a un server Secure Shell, che consente di eseguire i comandi del terminale come se si fosse seduti di fronte a un altro computer. Ma un client SSH consente anche di "tunnelare" una porta tra il sistema locale e un server SSH remoto.

Esistono tre diversi tipi di tunneling SSH, e sono tutti utilizzati per scopi diversi. Ciascuno comporta l'utilizzo di un server SSH per reindirizzare il traffico da una porta di rete a un'altra. Il traffico viene inviato tramite la connessione SSH crittografata, quindi non può essere monitorato o modificato durante il transito.

Puoi farlo con il comandosshincluso su Linux, macOS e altri strumenti simili a UNIX sistemi operativi. Su Windows, che non include un comando ssh incorporato, si consiglia lo strumento gratuito PuTTY per connettersi ai server SSH. Supporta anche il tunneling SSH.

Port Forwarding locale: rende accessibili le risorse remote sul sistema locale

"Port forwarding locale" consente di accedere alle risorse della rete locale che non sono esposte a Internet. Ad esempio, supponiamo di voler accedere a un server di database nel tuo ufficio da casa tua. Per motivi di sicurezza, il server del database è configurato per accettare solo le connessioni dalla rete dell'ufficio locale. Ma se si ha accesso a un server SSH in ufficio e il server SSH consente le connessioni dall'esterno della rete dell'ufficio, è possibile connettersi a quel server SSH da casa e accedere al server del database come se si fosse in ufficio. Questo è spesso il caso, poiché è più semplice proteggere un singolo server SSH dagli attacchi piuttosto che proteggere una varietà di diverse risorse di rete.

Per fare questo, si stabilisce una connessione SSH con il server SSH e si dice al client di inoltrare il traffico da una porta specifica del PC locale, ad esempio la porta 1234, all'indirizzo del server del database e della sua porta sulla rete dell'ufficio. Pertanto, quando si tenta di accedere al server di database sulla porta 1234 del proprio PC corrente, "localhost", il traffico viene automaticamente "tunnelizzato" sulla connessione SSH e inviato al server di database. Il server SSH si trova nel mezzo, inoltra il traffico avanti e indietro. È possibile utilizzare qualsiasi riga di comando o strumento grafico per accedere al server del database come se fosse in esecuzione sul PC locale.

Per utilizzare l'inoltro locale, connettersi normalmente al server SSH, ma fornire anche-Largomento. La sintassi è:

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

Ad esempio, supponiamo che il server database del tuo ufficio si trovi a 192.168.1.111 sulla rete dell'ufficio. È possibile accedere al server SSH dell'ufficio inssh.youroffice.come l'account utente sul server SSH èbob. In questo caso, il tuo comando sarà simile a questo:

ssh -L 8888: 192.168.1.111: 1234 [email protected]

Dopo aver eseguito quel comando, sarai in grado di accedere al server di database a porta 8888 su localhost. Pertanto, se il server di database offriva accesso Web, è possibile collegare // localhost: 8888 al browser Web per accedervi. Se avessi uno strumento da riga di comando che ha bisogno dell'indirizzo di rete di un database, lo indirizzerai a localhost: 8888. Tutto il traffico inviato alla porta 8888 sul PC verrà incanalato a 192.168.1.111:1234 sulla rete dell'ufficio.

È un po 'più confuso se si desidera connettersi a un'applicazione server in esecuzione sullo stesso sistema del server SSH stesso . Ad esempio, supponiamo di avere un server SSH in esecuzione sulla porta 22 del tuo computer dell'ufficio, ma hai anche un server database in esecuzione sulla porta 1234 sullo stesso sistema allo stesso indirizzo. Si desidera accedere al server del database da casa, ma il sistema accetta solo connessioni SSH sulla porta 22 e il firewall non consente altre connessioni esterne.

In questo caso, è possibile eseguire un comando simile al seguente:

ssh -L 8888: localhost: 1234 [email protected]

Quando si tenta di accedere al server del database sulla porta 8888 sul PC corrente, il traffico verrà inviato tramite la connessione SSH. Quando arriva sul sistema che esegue il server SSH, il server SSH lo invierà alla porta 1234 su "localhost", che è lo stesso PC che esegue il server SSH stesso. Quindi il "localhost" nel comando sopra significa "localhost" dal punto di vista del server remoto.

Per fare ciò nell'applicazione PuTTY su Windows, selezionare Connessione> SSH> Tunnel. Seleziona l'opzione "Locale". Per "Porta sorgente", inserire la porta locale. Per "Destinazione", inserire l'indirizzo di destinazione e la porta nel modulo indirizzo_remoto: porta_remaria.

Ad esempio, se si desidera impostare lo stesso tunnel SSH come sopra, immettere8888come porta di origine elocalhost: 1234come destinazione. Fare clic su "Aggiungi" in seguito, quindi fare clic su "Apri" per aprire la connessione SSH. Dovrai anche inserire l'indirizzo e la porta del server SSH stesso nella schermata principale "Sessione" prima di connetterti, naturalmente.

Inoltro porte remoto: Rendere le risorse locali accessibili su un sistema remoto

"Port forwarding remoto "È l'opposto dell'inoltro locale e non è usato frequentemente. Ti permette di creare una risorsa sul tuo PC locale disponibile sul server SSH. Ad esempio, supponiamo che tu stia utilizzando un server Web sul PC locale di fronte a te. Ma il tuo PC è protetto da un firewall che non consente il traffico in entrata al software del server.

Supponendo di poter accedere a un server SSH remoto, puoi connetterti a quel server SSH e utilizzare il port forwarding remoto. Il client SSH comunicherà al server di inoltrare una porta specifica, ad esempio la porta 1234, sul server SSH a un indirizzo e una porta specifici sul PC o sulla rete locale corrente. Quando qualcuno accede alla porta 1234 sul server SSH, tale traffico verrà automaticamente "incanalato" sulla connessione SSH. Chiunque abbia accesso al server SSH sarà in grado di accedere al server Web in esecuzione sul PC. Questo è in effetti un modo per eseguire il tunneling attraverso i firewall.

Per utilizzare l'inoltro remoto, utilizzare il comandosshcon l'argomento-R. La sintassi è in gran parte analoga a quella con l'inoltro locale:

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

Supponiamo che tu voglia fare un'applicazione server alla porta 1234 sul tuo PC locale disponibile alla porta 8888 sul server SSH remoto. L'indirizzo del server SSH èssh.youroffice.come il nome utente sul server SSH è bob . Dovresti eseguire il seguente comando:

ssh -R 8888: localhost: 1234 [email protected]

Qualcuno potrebbe quindi connettersi al server SSH alla porta 8888 e quella connessione verrà sottoposta a tunnel verso l'applicazione server in esecuzione sulla porta 1234 del PC locale da cui è stata stabilita la connessione.

Per eseguire questa operazione in PuTTY su Windows, selezionare Connessione> SSH> Tunnel. Seleziona l'opzione "Remoto". Per "Porta sorgente", inserire la porta remota. Per "Destinazione", inserisci l'indirizzo e la porta di destinazione nel modulo local_address: local_port.

Ad esempio, se vuoi impostare l'esempio sopra, devi inserire8888come porta sorgente elocalhost: 1234come destinazione. Fare clic su "Aggiungi" in seguito, quindi fare clic su "Apri" per aprire la connessione SSH. Dovrai anche inserire l'indirizzo e la porta del server SSH stesso nella schermata principale "Sessione" prima di connetterti, naturalmente.

Le persone potrebbero quindi connettersi alla porta 8888 sul server SSH e il loro traffico verrà incanalato in porta 1234 sul sistema locale.

Per impostazione predefinita, il server SSH remoto ascolterà solo le connessioni dallo stesso host. In altre parole, solo le persone sullo stesso sistema del server SSH stesso potranno connettersi. Questo è per motivi di sicurezza. È necessario abilitare l'opzione "GatewayPorts" in sshd_config sul server SSH remoto se si desidera sovrascrivere questo comportamento.

Port Forwarding dinamico: utilizzare il server SSH come proxy

CORRELATO: Qual è il Differenza tra una VPN e un proxy?

C'è anche "port forwarding dinamico", che funziona in modo simile a un proxy o VPN. Il client SSH creerà un proxy SOCKS per configurare le applicazioni da utilizzare. Tutto il traffico inviato attraverso il proxy verrebbe inviato attraverso il server SSH. Questo è simile all'inoltro locale: prende il traffico locale inviato a una porta specifica sul PC e lo invia tramite la connessione SSH a una postazione remota.

CORRELATI: Perché l'utilizzo di una rete Wi-Fi pubblica può essere pericoloso, anche quando si accede a siti Web crittografati

Ad esempio, supponiamo che tu stia utilizzando una rete Wi-Fi pubblica. Vuoi navigare in sicurezza senza essere spiato. Se si ha accesso a un server SSH a casa, è possibile connettersi ad esso e utilizzare il port forwarding dinamico. Il client SSH creerà un proxy SOCKS sul tuo PC. Tutto il traffico inviato a quel proxy verrà inviato tramite la connessione al server SSH. Nessuno monitorando la rete Wi-Fi pubblica sarà in grado di monitorare la tua navigazione o censurare i siti web a cui puoi accedere. Dal punto di vista di qualsiasi sito web che visiti, sarà come se fossi seduto di fronte al tuo PC a casa. Questo significa anche che potresti usare questo trucco per accedere ai siti web degli Stati Uniti al di fuori degli Stati Uniti, supponendo che tu abbia accesso a un server SSH negli Stati Uniti, naturalmente.

Come altro esempio, potresti voler accedere a un media applicazione server sulla rete domestica. Per motivi di sicurezza, è possibile che solo un server SSH sia esposto a Internet. Non è consentita la connessione in ingresso da Internet all'applicazione del server multimediale. È possibile configurare il port forwarding dinamico, configurare un browser Web per utilizzare il proxy SOCKS e quindi accedere ai server in esecuzione sulla rete domestica tramite il browser Web come se si fosse seduti davanti al proprio sistema SSH a casa. Ad esempio, se il server multimediale si trova sulla porta 192.168.1.123 sulla rete domestica, è possibile collegare l'indirizzo192.168.1.123in qualsiasi applicazione utilizzando il proxy SOCKS e si accede al server multimediale come se eri sulla tua rete domestica.

Per utilizzare l'inoltro dinamico, esegui il comando ssh con l'argomento-D, in questo modo:

ssh -D local_port [email protected]

Per Ad esempio, supponiamo di avere accesso a un server SSH inssh.yourhome.come il nome utente sul server SSH èbob. Si desidera utilizzare l'inoltro dinamico per aprire un proxy SOCKS sulla porta 8888 sul PC corrente. Eseguire il seguente comando:

ssh -D 8888 [email protected]

È quindi possibile configurare un browser Web o un'altra applicazione per utilizzare l'indirizzo IP locale (127.0.01) e la porta 8888. Tutto il traffico da tale applicazione verrebbe reindirizzato attraverso il tunnel.

Per farlo in PuTTY su Windows, seleziona Connessione> SSH> Tunnel. Seleziona l'opzione "Dinamica". Per "Porta di origine", immettere la porta locale.

Ad esempio, se si desidera creare un proxy SOCKS sulla porta 8888, immettere8888come porta di origine. Fare clic su "Aggiungi" in seguito, quindi fare clic su "Apri" per aprire la connessione SSH. Dovrai anche inserire l'indirizzo e la porta del server SSH stesso nella schermata principale "Sessione" prima di connetterti, naturalmente.

Potresti quindi configurare un'applicazione per accedere al proxy SOCKS sul tuo PC locale (cioè, Indirizzo IP 127.0.0.1, che punta al PC locale) e specificare la porta corretta.

CORRELATO: Come configurare un server proxy in Firefox

Ad esempio, è possibile configurare Firefox per utilizzare il proxy SOCKS . Ciò è particolarmente utile perché Firefox può avere le proprie impostazioni proxy e non deve utilizzare le impostazioni proxy a livello di sistema. Firefox invierà il suo traffico attraverso il tunnel SSH, mentre altre applicazioni useranno normalmente la tua connessione Internet.

Quando fai questo in Firefox, seleziona "Configurazione manuale del proxy", inserisci "127.0.0.1" nella casella host SOCKS e inserisci la porta dinamica nella casella "Porta". Lasciare vuote le caselle Proxy HTTP, Proxy SSL e Proxy FTP.

Il tunnel rimarrà attivo e aperto fino a quando si apre la connessione sessione SSH. Quando si termina la sessione SSH e si disconnette da un server, il tunnel verrà chiuso. Basta riconnettersi con il comando appropriato (o le opzioni appropriate in PuTTY) per riaprire il tunnel.


Apri istantaneamente un terminale a schermo intero sul tuo Mac usando una scorciatoia da tastiera

Apri istantaneamente un terminale a schermo intero sul tuo Mac usando una scorciatoia da tastiera

Molti utenti Mac trascorrono l'intera vita nel Terminale, ma molti di noi lo aprono solo occasionalmente. Usare un mouse per aprire un'interfaccia testuale sembra strano, comunque. E se ci fosse un modo per avere sempre il terminale pronto, attivato da una singola scorciatoia da tastiera? Puoi configurarlo facilmente grazie a iTerm, un'alternativa al terminale predefinito che è personalizzabile in tutti i modi.

(how-top)

Che cosa determina se un PC è in grado di essere o meno un server Web?

Che cosa determina se un PC è in grado di essere o meno un server Web?

Se si sta pensando di configurare un server Web, è necessario un computer appositamente progettato per tale scopo oppure puoi usare un tipo più comune di computer? Il post di Q & A di SuperUser di oggi ha la risposta alla domanda di un lettore curioso. La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte.

(how-top)