In questo articolo configureremo il nostro pc Linux (i sistemi operativi minori non li tratto) per essere controllato in remoto tramite Android (i sistemi mobile minori non li tratto), cercando di avere anche un minimo di sicurezza nel farlo.

Prerequisiti

Perché sia anche solo possibile accedere al proprio PC da remoto, questo deve avere un IP pubblico. Fastweb non fornisce a tutti un IP pubblico e, quando lo fa, non sempre è illimitato nel tempo. Di solito, i provider non forniscono un IP pubblico fisso, ma ne assegnano uno ad ogni connessione, questo, vedremo più avanti è un "problema," ma lo supereremo facilmente.
La guida, comunque, farà riferimento sempre all'indirizzo IP.
Andando a questo indirizzo  http://www.whatismyip.com/ potremo vedere il nostro indirizzo IP attuale. Segnatelo da qualche parte.

Configurare il computer

Per poter accedere al nostro computer, da remoto, useremo ssh (Secure SHell) che è molto semplice da configurare e, tra le altre cose, configura in automatico anche connessione FTP sicura SFTP appunto che, useremo dopo e sarà parecchio utile!

In OpenSuse è già installato ma in caso non lo fosse
# zypper in openssh
E tramite Yast, nella gestione dei servizi, abilitarlo. Io l'ho trovato già abilitato.

In Debian non ho idea se sia già installato ma (mi dicono che normalmente sia preinstallato):

# apt-get install openssh-server
E per farlo partire
# service ssh start oppure
# /etc/init.d/ssh start
In Fedora
su -c 'yum install openssh-server'
/sbin/service sshd start
Bene, il servizio ora dovrebbe essere attivo sul vostro computer, la porta di default è la porta 22, si possono cambiare le opzioni del servizio, andando ad editare il file che troviamo in /etc/ssh/sshd_config, apriamolo e, per maggior sicurezza, impostiamo PermitRootLogin cambiando yes in no.

La porta di default è la 22, il consiglio è quello di cambiarla con una porta "alta" oltre la 20.000 questo per aumentare la sicurezza. La guida non cambia, semplicemente, quando si dovrà configurare la porta, invece che il default 22 si dovrà mettere la porta scelta.

Configuriamo il router

Bene, ora abbiamo il computer pronto ad accettare connessioni ssh, all'interno della LAN non dobbiamo fare null'altro ma, se vogliamo controllare il nostro computer da internet, dobbiamo fare qualche passo ulteriore.
Io, in questo articolo, ipotizzerò che vi sia solo un modem/router per la connessione ad internet (io ho un accesso point a valle del router e quindi ho dovuto fare una doppia configurazione).
Entrate nel menù di configurazione del vostro router, ogni router ha modalità differenti, la maggior parte ha una interfaccia web raggiungibile mettendo su un browser l'indirizzo di lan del router che, facile sia 192.168.0.1
Per prima cosa, dovete impostare la macchina che volete controllare con SSH ad avere sempre lo stesso IP, altrimenti le configurazioni devono essere cambiate tutte le volte che vi riconnetete.
Fatto questo, dovete cercare le opzioni di port mapping e, una volta trovata, dovete dire che, tutte le richieste fatta sulla porta SSH (ricordo che di default è la 22 ma, se l'avete cambiata dovete usare quella che avete scelto) debbono essere reindirizzati all'indirizzo IP di lan interna del computer lo stesso che prima avete assegnato come fisso.
Io, con Fastweb ho dovuto dire, tramite la myfastpage che tutte le richieste alla porta 22 fossero reindirizzate all'ip del mio accesso point e, all'interno dell'access point dire che tutte le chiamate alla porta 22 fossero reindirizzate all'ip di LAN del mio computer.

Il firewall

Se avete un firewall attivo, dovete anche aprire la porta che avete scelto per SSH, ogni distribuzione può avere un firewall diverso, quindi non mi è possibile dare le istruzioni per ogni opzione.

Prepariamo il nostro cellulare Android

Io, utilizzo su android jouicessh per le connessione remote via ssh e solid explorer per la connessione SFTP.
Il primo è capiente anche nella versione gratuita, mentre il secondo è a pagamento anche se ha un trial a funzionalità complete di 30 giorni. Non ho idea se esistano soluzioni gratuite, probabilmente si, ma solid explorer, secondo il mio parere vale i soldi che costa.

Aprite JuiceSSH e vi dovreste trovare una cosa del genere.

JuiceSSH schermata principale


Ora, per prima cosa dobbiamo andare su connections per configurare una connessione.
Ci troveremo nella schermata successiva.


JuiceSSH Gestione connessioni.
Come vediamo sulla sinistra c'è un tab identities, andiamo per prima cosa a configurare un utente che poi useremo per la connessione.
Gestione identità
In questo menù, dovrete gestire le identità. Qui dovrete mettere il vostro username e la vostra password di log in SSH, sono il vostro username e la vostra password di accesso al computer. Il Nickname è opzionale ma è utile per ritrovare le identità configurate.
Gestione delle connessioni.


Nella schermata di prima, clicchiamo il tasto che cerchiato di rooso ed entreremo nella gestione delle connessioni, come identity, usate l'indentità creata prima, nell'address mettete l'indirizzo IP pubblico, nella porta dovete mettere la porta che avete scelto per il servizio SSH, di default è 22 e poi fate Save.
Il gioco è praticamente fatto, ora dalla schermata principale possiamo connetterci via ssh al computer.
JuiceSSH collegato
Ed ecco come appare JuiceSSH collegato alla proprio macchine, questo è come avere il terminale del proprio computer a disposizione.
Se vogliamo invece, avere un controllo sui file del nostro computer, possiamo usare, come detto SolidExplorer che ha tutto pronto per essere configurato.
Schermata principale Solid Explorer
Ecco la schermata principale di solid explorer, cliccando in basso a destra su menù, si apre il menù delle connessioni.


Menù delle connessioni

Da qui clicchiamo su Gestisci preferiti.
Gestione dei preferiti
 Clicchiamo sul più in corrispondenda di segnalibri sftp
COnfigurazione SFTP
In questa schermata dovremo mettere le informazioni necessarie alla connessione. Server è l'indirizzo IP pubblico, la porta è sempre la stessa dell'ssh che abbiamo scelto, il nome utente è il nostro user name e la password è quella di accesso al pc. Fatto questo, basta cliccare OK e la connesisone è pronta. A questo punto avremo pieno accesso ai file del nostro computer, tramite cellulare, ovunque siamo.

Indirizzo IP dinamico

Come detto, normalmente l'indirizzo IP pubblico, cambia ad ogni connessione, esistono diversi servizi che consentono, una volta aggiornati, di avere un indirizzo fisso.
Io conosco dyndns che, gratuitamente purtroppo non più gratuitamente, permette di gestire il reindirizzamento sul proprio IP.
Esistono anche script che aggiornano dyndns all'avvio del computer, in modo da averlo sempre configurato.
Se usate questo tipo di servizio, al posto dell'indirizzo IP, in tutte le configurazione, dovrete mettere l'indirizzo dyndns che avete configurato, il resto invece è tutto identico.

Saluti a tutti e spero vi sia stato utile.

Note a margine.

Come client SSH mi segnalano Connectbot che è leggero e totalmente open. Potete dargli uno sguardo.
Per gli indirizzi IP dinamici invece, oltre a dyndns (comunque uno dei più usati) mi segnalano anche www.no-ip.org guardate quello che fa al caso vostro.