Madrefocaine!

Giraffe, cammellodonti, un secchio di prosecchio e pecore nane.

Articoli Commenti


Il vostro pc a portata di chiavetta…

10 Maggio, 2007 (22:29) | Penguins & PolarBears

Stasera sono in vena di HowTo, quindi vi spiegherò come potersi connettere da un pc qualsiasi al vostro computer di casa.

Premessa
Vi propongo il mio caso ovvero PC di casa con linux e PC remoto con Windows. Ovviamente con qualche piccola modifica le istruzioni restano valide anche per altre configurazioni, Mac compreso, google può venirvi in aiuto. Gli strumenti che userò sono SSH e VNC.

OpenSSH

Punto uno. Configurazione pc di casa parte prima.
Quello che ci serve per il computer di casa è OpenSSH che ci permette di avere a disposizione un server e un client SSH per la connessione sicura. Sul sito è disponibile per varie piattaforme anche per Mac OS X.
Per installarlo sulla ubuntu basta semplicemente usare apt

sudo apt-get install ssh

Una volta installato verrà lanciato all’avvio il demone sshd che farà da server, ed avrete a disposizione il client ssh per connettervi ad un altro pc.
Ora diamo un’occhiata al file di configurazione del nostro sshd:

/etc/ssh/sshd_conf

Da qui potrete impostare/decommentare alcuni parametri a seconda delle esigenze, vi elenco alcune mie impostazioni

  • Protocol 2 forza l’uso del protocollo 2, che è migliore in quanto il protocollo 1 pare sia buggato.
  • PermitRootLogin no abilita/blocca il login da root, io l’ho disabilitato per ovvie ragioni di sicurezza.
  • PubkeyAuthentication yes abilita l’autenticazione tramite chiave pubblica.
  • PasswordAuthentication no io ho bloccato l’autenticazione tramite password dato che mi autenticherà tramite chiave DSA. In questo modo potranno connettersi solo coloro che possiedono il file della chiave DSA. Questa opzione ha un vantaggio ed uno svantaggio. Lo svantaggio è che se non ho il file della chiave non mi loggo, mentre il vantaggio è che evito tentativi di login casuali da parte di terzi.

Altri parametri potrete settarli a vostro piacimento. A questo punto la configurazione del server ssh è fatta, basterà riavviarlo per applicare i cambiamenti. La configurazione del pc di casa non è del tutto completata, ci torneremo in seguito.

Punto due. Il pc qualsiasi.
Dal pc qualsiasi ci sevono alcuni programmi per la connessione. Il pc qualsiasi nel mio caso ha windows (pc messo a disposizione dall’UniUD). Ci servono tre programmi: un client SSH, un client VNC e un generatore di chiavi.

  • Il client SSH, per eccellenza è Putty, scaricabile gratuitamente dal sito ufficiale, ma io vi consiglio di scaricare PuttyPortable che è una versione di Putty che salva le sessioni su file e non sul registro a differenza della versione ufficiale.
  • Il client VNC, questo vi serve nel caso vogliate vedere il desktop del vostro pc di casa. Io ho scelto TightVNC.
  • Il generatore di chiavi. Putty utilizza chiavi in formato ppk generabili con PuttyGen che è reperibile nel sito di Putty.

Ora che abbiamo tutto possiamo configurare il necessario.

Punto tre. La chiave che apre le porte.
Chi come me è un po’ più attento alla sicurezza ha sicuramente scelto la possibilità di autenticarsi tramite chiave DSA. Come generare la chiave è semplice e rimando a questo HOWTO dato che è ricco di immagini e tratta bene l’argomento. (Personalmente ho saltato la parte su PAgent dato che non devo usare un unico PC).
Volendo la chiave è generabile anche da linux con il comando ssh-keygen.
Una volta ottenuta la coppia di chiavi salvate i due file per la chiave pubblica e la chiave privata e teneteli pronti per la seconda parte della configurazione del pc di casa.

Punto Quattro. Un tunnel per verso il nostro Desktop.
Questo punto non è necessario per chi si accontenta della console. Chi invece volesse avere il pieno dominio del proprio pc, interfaccia grafica compresa legga le prossime righe.
Per avere il controllo del desktop da remoto ci si affida a VNC che come SSH si avvale di un lato server ed un lato client. Dato che abbiamo configurato Putty possiamo sfruttare questo canale criptato per creare un tunnel dentro il quale far passare i dati VNC.
Non è difficile, basterà aprire Putty nella sezione Tunnels e impostare le porte come segue:

Source port: 12345
Destination 127.0.0.1:5900

cliccate “add” per aggiungere questa regola.
Cosa abbiamo fatto? Con questa regola tutte le richieste di accesso alla porta fittizia 12345 da parte del server locale (127.0.0.1) verranno reinderizzate alla porta 5900 tramite il canale criptato. Per dubbi rimando a questo HOWTO con immagini dove ho trovato quello che vi ho appena detto.
Detto questo possiamo andare al menu Session di Putty e salvare le impostazioni in modo da poterle ritrovare in seguito.
Ora per connettersi con VNC basterà scegliere come indirizzo il seguente: 127.0.0.1::12345

Punto Cinque. L’ip dinamico diventa “statico”.
I più attenti avranno già pensato al problema di connessione. Come ci si può connettere al pc di casa senza avere un IP statico?
Anche qui c’è un piccolo espediente, ovvero esistono mille FreeDNS per reinderizzare un dominio ad un DNS dinamico. Non sto a spiegare il funzionamento per non essere troppo prolisso. Personalmente mi è stato suggerito Afraid DNS dove ho registrato il mio indirizzo ed ho scaricato un piccolo scriptino .BAT per l’aggiornamento automatico.

Punto Sei. Configurazione pc di casa parte seconda.
Torniamo sul nostro computer di casa e facciamo le ultime configurazioni. Se non l’avete già fatto bisognerà creare un file con la chiave pubblica da voi generata, vi rimando all’HOWTO che trovate nel punto tre.
Qui preferisco spiegare come sincronizzare automagicamente l’indirizzo IP con il sito da voi scelto.
Partiamo dal BAT scaricato, apritelo e copiate l’idirizzo del comando wget che contiene. Ora creiamo il nostro scriptino aprite un file di testo e scriveteci:

#!/bin/bash
wget -q -O NUL VOSTROINDIRIZZO
rm NUL

Ovviamente l’indirizzo all’interno del comando wget deve essere quello contenuto all’interno del file .BAT che inzia per http://freedns.afraid.org/dynamic/update.php? .
Salvate lo script con il nome che volete (ad esempio dnsupdater) e rendetelo eseguibile con chmod a+x nomescript.
Ora bisognerà dire al nostro pc di lanciare questo script ogni tot minuti a seconda delle nostre esigenze. Crontab ci viene in aiuto, editiamo la tabella dei processi dalla console lanciando il comando crontab -e ed aggiungiamo una riga a seconda di quello ci serve. Un esempio di crontab può essere:

# m h dom mon dow command
0 */2 * * * /nomecartella/nomescript

Questo esempio lancia lo script al minuto 0 ogni 2 ore. Salvate la vostra crontab ed il gioco è fatto.
Per quanto riguarda altri sistemi operativi immagino che ci siano altri modi per eseguire le operazioni pianificate.

Conclusioni importanti

  1. La connessione non è sempre possibile, spesso infatti capita che vegnano bloccate le porte necessarie (SSH usa la 22). Dipende dalle scelte del sistemista della rete da cui tentate di connettervi.
  2. Se il pc di casa si trova dietro un router o un firewall dovrete fare il port forwarding della porta 22 all’indirizzo IP del computer.
  3. Se avete seguito tutte le istruzioni nel modo corretto potrete portare nella vostra chiavetta USB Putty, TightVNC e la chiave per l’autenticazione e controllare il proprio pc tramite internet.
  4. Con un po’ di pazienza ed il giusto utilizzo di Google potrete trovare il modo per fare una cosa simile con altri sistemi operativi. (Mi riferisco a Windows e Mac)

Detto questo concludo ringraziano per l’ennesima volta Qualsiasi che come sempre mi ha aiutato.



« Finalmente la mia musica… - Ubuntu add on… »

Articoli simili:
  • VNC fra GNOME e KDE
  • Debian per il Desktop
  • Tante cose carine per la mia Debian
  • Come riparare un pixell rotto…
  • Quante cose si possono fare con il Bluetooth


  • Commenti

    Pingback da Madrefocaine! » Blog Archive » VNC fra GNOME e KDE using WordPress WordPress 2.0.3 | Quote
    Ora: 17 Maggio 2007, 08:46

    [...] Qualche giorno, nel post “Il vostro pc a portata di chiavetta…” fa avevo scritto una guida per collegarsi ad un computer remoto tramite ssh. Avevo portato come esempio la connessione fra un pc Windows ed uno Linux, non mi ero fermato a spiegare come connettersi fra un pc Linux e un altro pc Linux credendo che fosse semplice, ma dato che ho trovato alcuni problemi vi scrivo come risolverli. [...]

    Comment da ReF using Mozilla Firefox Mozilla Firefox 3.0 on Windows Windows XP | Quote
    Ora: 2 Luglio 2008, 11:49

    Ho un piccolo problema, è tutta questa mattina che smanetto con sta roba dal piccì del lavoro per accedere alla mia Deb a casa. Via ssh con putty mi si collega alla grande e posso utilizzare bash senza problemi solo che con tightVNC mi dice failed to connect to server (127.0.0.1::12345). Te non l’hai specificato e io sono un po’ idiota perché non pensavo ieri, quando ho configurato la mia linux-box, che avrei utilizzato vnc, per cui non ho la porta 5900 aperta sul router di casa. Può dipendere da questo? oppure da una cattiva configurazione di x11vnc che oggi tramite shell remota ho installato con apt-get install x11vnc e poi inizializzato con x11vnc - display: 0 ??

    Scrivi un commento

    Trackback URL






    Quote selected text