introduzione
SSH, noto anche come Secure Shell, può essere utilizzato per molto più che ottenere una shell remota. Questo articolo dimostrerà come SSH può essere utilizzato per il port forwarding e il proxy.
Gli unici prerequisiti sono un server OpenSSH (installato per impostazione predefinita sulle immagini Vultr Linux) e un client OpenSSH (disponibile su Linux, BSD e MS Windows).
Scopo
Un proxy SSH viene utilizzato principalmente per il proxy del traffico Web. Ad esempio, può essere utilizzato per proteggere il traffico Web da una rete locale non sicura.
Il port forwarding SSH viene spesso utilizzato per accedere a servizi non accessibili al pubblico. Ad esempio, potresti avere un'interfaccia web di amministrazione del sistema in esecuzione sul tuo server, come Webmin, ma in ascolto solo delle connessioni su localhost per motivi di sicurezza. In tal caso, puoi utilizzare SSH per inoltrare le connessioni su una porta scelta dal tuo computer locale alla porta su cui il servizio è in ascolto sul lato server, garantendo così l'accesso remoto a questo particolare servizio attraverso il tunnel SSH. Un altro scenario comune in cui viene utilizzato il port forwarding SSH è l'accesso ai servizi su una rete privata remota attraverso un tunnel SSH a un host su quella rete privata.
uso
Sia il proxy che il port forwarding non richiedono alcuna configurazione speciale sul server. Tuttavia, l'utilizzo di autenticazione basata su chiave è sempre consigliato con SSH. Leggere come si generano le chiavi SSH.
Proxy SSH
La creazione di un proxy SSH è molto semplice, la sintassi generale è la seguente:
ssh -D [bind-address]:[port] [username]@[server]
Dov'è [bind-address]l'indirizzo locale su cui ascoltare, [port]è la porta locale su cui ascoltare, [username]è il tuo nome utente sul tuo server ed [server]è l'indirizzo IP o il nome host del tuo server. Se [bind-address]non è specificato, SSH sarà predefinito per impostazione predefinita localhostnella maggior parte dei casi.
Ecco un esempio pratico:
ssh -D 8080 root@your_server
Per utilizzare questo proxy, è necessario configurare il browser in modo che utilizzi SOCKSv5come tipo proxy e 8080come porta proxy.
Port forwarding SSH
La sintassi generale del comando è la seguente:
ssh -L [localport]:[remotehost]:[remoteport] [username]@[server]
Dov'è [localport]la porta su cui ascolterà il client SSH, [remotehost]è l'indirizzo IP dell'host a cui verranno inoltrate le connessioni. Questo sarebbe 127.0.0.1se stai effettuando il tunneling delle connessioni al tuo server. Infine, [remoteport]è il numero di porta sul server utilizzato dal servizio a cui ti stai connettendo.
Esempio 1:
Considera di avere un servizio Web importante in esecuzione sulla porta 10000del tuo server, ma non è accessibile pubblicamente. Il seguente comando verrebbe utilizzato per stabilire un tunnel SSH per quel servizio.
ssh -L 80:127.0.0.1:10000 root@your_server
Ora sarai in grado di connetterti digitando il http://127.0.0.1tuo browser locale.
Esempio 2:
Hai due server Vultr su una rete privata. Uno esegue una distribuzione Linux, l'altro esegue MS Windows. Nell'istanza di Windows, un server RDP è in esecuzione ma non esposto a Internet per motivi di sicurezza. Supponendo che 192.168.1.5sia l'indirizzo IP privato del computer Windows, è possibile utilizzare il comando seguente per connettersi al server Desktop remoto tramite una porta sul computer:
ssh -L 3389:192.168.1.5:3389 root@your_server
Qualsiasi connessione RDP dal tuo computer a se stessa verrà ora trasferita attraverso il tuo server Linux al tuo server Windows.