Un tunnel SSH può essere utilizzato per rendere sicura la comunicazione tra un client e un server che non può essere altrimenti protetta; ad esempio, quando tutta o parte della sorgente dell'applicazione non è disponibile o è ritenuto costoso modificarla per aggiungere una comunicazione criptata.
Sulla base delle domande che ho visto negli ultimi mesi, il processo di allestimento e di utilizzo di un tunnel SSH non è ben compreso. Ecco il mio tentativo di spiegarlo.
Per prima cosa lasciatemi descrivere il metodo insicuro esistente, qualche applicazione su una stazione di lavoro si connette ad un servizio che gira su VOS e ascolta una qualche porta, chiamatela 12345. Questa è la linea verde in figura 1 che va dalla workstation a VOS. I dati inviati attraverso questa connessione non sono criptati, quindi chiunque abbia un certo accesso a qualsiasi rete che la connessione attraversa ha il potenziale per catturare e leggere i dati.
Per rendere sicura questa comunicazione la prima cosa che viene impostata è il collegamento SSH che fungerà da tunnel. Questa va dalla stazione di lavoro alla porta su cui il servizio SSH in esecuzione su VOS è in ascolto, il default è la porta 22 (la linea rossa in figura 1). Il client SSH sulla stazione di lavoro deve essere configurato in modo da non richiedere che il servizio SSH su VOS configuri uno pseudo terminale, altrimenti si finisce con una sessione di login e non con un tunnel. La configurazione di un tunnel SSH non impedirà a qualcuno di catturare i dati, ma ciò che catturerà sarà criptato.
Anche il client SSH sulla postazione di lavoro deve essere configurato con 2 informazioni aggiuntive. Prima la porta sulla stazione di lavoro che fungerà da ingresso del client applicativo al tunnel, chiamatela porta 24680, ma può essere utilizzata qualsiasi porta non utilizzata. In secondo luogo, l'indirizzo IP e la porta con cui il servizio SSH su VOS si collegherà quando verrà effettuata una connessione attraverso il tunnel. Nel nostro esempio l'indirizzo IP sarebbe 127.0.0.1 e la porta sarebbe 12345. Esattamente come questo viene impostato dipenderà dal client.
L'applicazione client in esecuzione sulla stazione di lavoro deve ora essere configurata per connettersi all'host locale della stazione di lavoro (127.0.0.1) e alla porta di ingresso del tunnel, 24680. Non ci sono modifiche al servizio applicativo in esecuzione su VOS, deve essere ancora in esecuzione e in ascolto sulla porta 12345. I passi sono:
1) Avviare o confermare che il servizio di applicazione è in esecuzione su VOS
2) Avviare o confermare che il servizio SSH (sshd) è in esecuzione su VOS
3) Avviare il client SSH sulla postazione di lavoro e impostare il collegamento in galleria (linea rossa)
4) Avviare l'applicazione client sulla postazione di lavoro e farla collegare alla porta d'ingresso del tunnel SSH (linea blu)
5) Il processo sshd su VOS effettua automaticamente una connessione al servizio applicativo in esecuzione su VOS (linea arancione)