Linux

SSH Tunnel su Android

Rieccoci.
Abbiamo settato il nostro server ssh per connetterci in sicurezza tramite il nostro laptop. Ma cosa succede se abbiamo un cellulare o un tablet a disposizione per navigare? Senza metterci a ripetere tutti i rischi di sicurezza relativi ad una connessione hot-spot pubblica, purtroppo gli stessi si ripresentano anche se navighiamo con i nostri due nuovi gadget tecnologici. L’inoltro del desktop è però in questi casi impossibile, allora come fare?
Abbiamo due strade: la prima, è quella di creare una vpn, instradando il traffico nel tunnel criptato che viene a crearsi, la seconda, a mio avviso più semplice e rapida, consiste nello sfruttare la connessione ssh esistente inoltrandovi tutto il traffico in arrivo ed in partenza dallo smartphone.
Ok, come?
Fortunatamente per android esiste l’applicazione SSH Tunnel, reperibile su google play a questo indirizzo oppure sullo store del telefono.
Prima di continuare però, devo avvisarvi che l’applicazione funziona solo su telefoni di cui si dispone dei permessi di root, altrimenti si collega solamente al server ssh remoto ma rimane inattiva. Per il root del vostro cellulare cercate le guide eventalmente presenti in rete riferite al vostro modello, tenendo bene a mente però che non mi assumo nessuna responsabilità nel caso in cui durante il processo di rooting doveste rendere inutilizzabile il vostro terminale.
Una volta quindi ottenuti i permessi di root ed installato l’applicazione, andiamo a vedere come configurarla.

Nel campo host inserite l’indirizzo ip pubblico del vostro server oppure l’hostname nel caso in cui abbiate attivato un servizio di dinamic-dns (consigliato) quali no-ip o similari. Per le prove da casa, basta andare sul browser e digitare http://www.iplocation.net per trovare l’ip pubblico della connessione. Confermate la porta standard oppure mettete quella personalizzata ed inserite nome utente e password della connessione ssh. Se avete scelto il login tramite chiavi pubbliche, dovete importare la chiave pubblica e privata di un vostro client (il portatile ad esempio) (si trovano in home/.ssh e sono i file id.rsa*) cliccando sul menù impostazioni e selezionare la voce “key file manager”.
Una volta fatto questo vi consiglio di attivare le voci “use socks proxy”, abilitando così il redirect dinamico di tutte le porte, “auto reconnect” e “global proxy” (tutto il traffico generato da tutte le applicazioni sul telefono viene instradato nel tunnel ssh cifrato), oppure selezionando “individual proxy” si possono scegliere ad una ad una le app che verranno instradate e quelle che invece seguiranno la via non criptata. Vi consiglio di abilitare anche la voce “enable dns proxy” che cripta anche le richieste al dns. Praticamente, uno sniffer se questa opzione non è abilitata può vedere su quale sito andiamo ma non il flusso dati generato, che rimane criptato. Ma fatto 30, facciamo 31, no?
Tutto qui!
Ora basta attivare la voce “Tunnel switch” ed il collegamento ssh avrà inizio. La prima volta può comparire un messaggio di avvertimento che l’host non è conosciuto (non è presente nel file known_hosts) ma non fa nulla. Se invece l’avvertimento continua a ripetersi, probabilmente state subendo un attacco del tipo “man in the middle” (una spiegazione molto sintetica qui, se volete maggiori approfondimenti la pagina inglese è decisamente migliore).
Per testare se tutto funziona, prima di attivare il collegamento, con la connessione dati 3G attiva sul cellulare andate sulla pagina www.iplocation.net ed annotatevi l’indirizzo ip assegnatovi dal vostro gestore di telefonia. Attivate quindi il tunnel ssh (dovreste avere se tutto è ok questa immagine tra le applicazioni in esecuzione) collegamento riuscito
Tornate sul browser e date il refresh della pagina. Vedrete per magilla l’indirizzo ip cambiare da quello del gestore di telefonia a quello di casa vostra. Ora, tutto il traffico è criptato.

Standard