ssh e dintorni

Maggio 11, 2008

Finalmente incomincio ad entrare nei meandri di ssh. La secure shell, praticamente come connettersi in sicurezza al vostro pc fisso tramite il portatile. Ovviamente questo è un esempio, il mio.

Ho seguito questa guida sul wiki italiano di ubuntu. Volevo fare in modo che il portatile si connettesse al fisso tramite chiave pubblica/privata. Naturalmente da bravo pirla (mi ricordavo male dai corsi universitari) facevo esattamente l’incontrario, esportavo la chiave pubblica sul portatile mentre è da fare l’incontrario. Cerchiamo di capire come funziona.

  • Il Client si connette al Server e l’utente accetta il server fra gli host a cui si connette (tramite una fingerprint o la chiave pubblica del server, di solito è la prima che ho scritto). L’utente può accettare l’host Server solo se questa è la prima connessione verso quel Server. Successivamente, se non ci sono problemi, questo passo non verrà più fatto. I problemi invece nascono quando il Server cambia chiave pubblica o fingerprint, questo è dovuto di solito a reinstallazioni o veri attacchi alla sicurezza da parte qualche malintenzionato che vuole sostituirsi al Server.
  • Ora si è creato un canale che si occuperà anche di garantire l’integrità dei dati (significa che siamo sicuri che il mittente sia il mittente e che il messaggio consegnato non sia stato modificato). In questa fase Client e Server si mettono d’accordo per una cifratura simmetrica del canale.
  • Prima di accedere alla shell il Client deve autenticarsi al Server. Questo si fa avendo esportato preventivamente la chiave pubblica del Client sul Server.
  • Il server autentica il Client tramite il fatto che: il Client cifra i messaggi da inviare al Server con la propria chiave privata, il Server decifra con la chiave pubblica di A. Se tutto ok il Client accede finalmente alla shell del server.
  • La connessione fra i due host è finalmente instaurata e possiamo impartire comandi al Server.

Praticamente ci si autentica tramite la crittografia asimmetrica. Notiamo che qui non si usa la crittografia asimmetrica per cifrare i messaggi inviati ma solo per autenticarsi (infatti per spedire messaggi cifrati il mittente cifra il messaggio con la nostra chiave pubblica e si decifra con la nostra chiave privata, esattamente l’incontrario dell’autenticazione). Invece viene usata la crittografia simmetrica per cifrare i messaggi in entrambi i sensi Server-Client, Client-Server.

Aggiungo che su OpenSSH si possono usare due algoritmi di cifratura per autenticarsi RSA o DSA, a voi la scelta.

Realizzato come si forma una connessione sicura con il Server ho poi creato uno script sshVNC che mi permette (essendo salvato in /usr/local/bin come eseguibile) di fare anche il VNC, ovviamente il Client è sempre il Portatile mentre il Server è il fisso

xinit /etc/X11/xinit/xinitrc — /usr/bin/Xephyr :1 -screen 80

anzi, non è neanche uno script perché non ho messo nemmeno il classico

#!/bin/sh

Ovviamente prima di lanciare questo script bisogna installare sul fisso xserver-xephyr, accedere tramite il portatile utilizzando

ssh -X utente@fisso

e poi una volta entrati lanciare lo script.

Per finire cambiando le configurazioni di

/etc/ssh/sshd_config

al posto di 20 ho messo un’altra porta per il servizio (ovviamente deve essere un numero maggiore di 1024, infatti le porte entro questo range sono prenotate da servizi standard) aprendo anche il firewall del router di conseguenza (solo se volete connettervi dall’esterno della vostra rete locale). Naturalmente ora per connettersi al server è necessario anche specificare la porta con il parametro -p

ssh -p porta user@indirizzoserver

Ora oltre che connettersi con la classica shell, usare il VNC si può con konqueror navigare nella /home del fisso tramite l’indirizzo ftp://utente@indirizzofisso.org. Dato che digitare sempre l’indirizzo è noioso perché come ultima chicca non creare un collegamento sul portatile che punta a tale indirizzo?

Ok, ma come fare per controllare se qualcuno tenta di bucare la mia rete?

cat /var/log/auth.log | grep ssh

Lascia una Risposta