Incapsulare il traffico di un determinato protocollo all'interno di un tunnel ssh per rendere "sicura" la connessione tra due host!
L'attività presentata, illustra come installare tutto in sistemi windows, ma è applicabile a tutti gli ambienti (Unix, linux, *bsd*, macOS, sun, etc) che possono supportare server e/o client ssh e le applicazioni che si vogliono rendere disponibili.
Prerequisiti:
Conoscenza delle basi del protocollo TCP/IP.
Per chi è connesso tramite gateway a internet, è necessario abilitare il "portforward" di una porta tcp (di default la 22) verso l'ip del server ssh
Materiale necessario: Un host dove installare il servizio OpenSSH, un host da utilizzare come client SSH, connessione di rete o internet.
Siti di riferimento per i diversi software:
OpenSSH: Server SSH open source
Home PageIl porting su piattaforma windows è disponibile presso:
Home PagePuTTY: Client multiprotocollo (telnet, SSH, rlogin) per ambienti windows
Home PageTightVNC: Implementazione opensource e multipiattaforma del protocollo RFB per il controllo remoto (remote desktop)
Home PageInstallazione e configurazione server OpenSSH
Andiamo per gradi e prepariamo il server in modo che accetti le connessioni SSH (Secure SHell).
Dalla pagina http://sshwindows.so...e.net/download/ scarichiamo gli installatori dei binari.
Al termine del download lanciamo l'eseguibile installatore confermando tutte le richieste, ad un certo punto un messaggio ci avverte che prima di avviare il server dobbiamo impostare correttamente il file delle password, confermiamo anche questo passaggio e proseguiamo fino al termine dell'installazione!
Il server SSH viene installato di default nella directory dei programmi dentro una sua directory chiamata OpenSSH (es per windows XP in italiano: C:\Programmi\OpenSSH )
Ora non rimane che creare i gruppi e gli utenti che saranno autorizzati ad accedere via ssh al nostro pc:
dal "prompt dei comandi" digitiamo:
C: CD \Programmi\OpenSSH\bin mkgroup -l >> ..\etc\group mkpasswd -l >> ..\etc\passwd
Se nel pc abbiamo più utenti ma vogliamo autorizzare un solo utente specifico ad accedere via ssh, la seconda riga va digitata in questo modo:
mkpasswd -l -u "username" >> ..\etc\passwd
dove sostituiremo "username" con il nome utente da inserire!
Attenzione: per gli utenti di domini windows, potrebbe essere utile inserire gruppi/utenti del dominio, in questo caso i comandi da dare sono diversi: sostituiamo lo switch -l con -d come nell'esempio:
C: CD \Programmi\OpenSSH\bin mkgroup -d >> ..\etc\group mkpasswd -d >> ..\etc\passwd
A questo punto non ci rimane che avviare il server digitando sempre dal prompt il comando
net start opensshd
o in alternativa per chi preferisce gli strumenti grafici, dal pannello di controllo --> strumenti di amministrazione --> Servizi, avviare il servizio "OpenSSH Server"
http://img212.imageshack.us/img212/6766/tunnelssh200603190103277hg.png
Installazione e configurazione VNC
Come implementazione VNC abbiamo scelto TightVNC in quanto open source e multipiattaforma!
L'installazione anche in questo caso è semplicissima dove è sufficiente confermare le richieste fino al termine.
Quando vnc viene installato nel pc che avrà il ruolo di server (lo stesso in cui abbiamo installato OpenSSH), l'unica richiesta in fase di installazione alla quale dobbiamo modificare manualmente delle opzioni è quando ci viene chiesto se vogliamo registrare vnc come servizio e avviarlo immediatamente!
http://img206.imageshack.us/img206/2158/tunnelssh200603190128009ru.png
Nel caso in cui questa domanda ci passasse e non impostiamo il servizio vnc con partenza automatica, possiamo farlo anche dopo averlo installato.
Una volta avviato il servizio, dobbiamo obbligatoriamente impostare una password, che verrà richiesta nel momento in cui un client (vnc viewer) tenta il collegamento al server.
http://img152.imageshack.us/img152/1377/tunnelssh200603190128126wz.png
Inoltre dobbiamo abilitare le connessioni in loopback, dalle proprietà avanzate!
http://img208.imageshack.us/img208/3256/tunnelssh200603210008547hv.png
Installazione e configurazione client ssh (PuTTY)
Il client ssh da noi scelto è PuTTY prelevabile dal sito dello sviluppatore in versione "standalone" o in versione "installer"
Per le nostre esigenze è sufficiente il semplice eseguibile, che possiamo utilizzare ovunque (es: internet point o pc dove non è consentita l'installazione di software aggiuntivi!
Anche volessimo prendere la versione installabile, il setup è semplicissimo: è sufficiente anche qui confermare tutte le richieste!
Possiamo testare il funzionamento del server SSH semplicemente tentando di connettersi anche in locale (quindi con il client PuTTY allo stesso server locale ip: 127.0.0.1)
http://img212.imageshack.us/img212/1899/tunnelssh200603190142047az.png
Se riusciamo a connetterci siamo pronti per iniziare l'attività da un altro pc.
Attività pratica di incapsulamento
Da Putty, impostare l'ip del computer (server ssh) a cui connettersi e impostare il protocollo SSH
poi nella sezione tunnel impostiamo la porta
Nell'esempio indicato, PuTTY aprirà un socket in ascolto sulla porta locale 12345 che lo trasporterà alla porta 5900 dell'ip locale del server ssh (per questo motivo ho indicato 127.0.0.1 che significa il localhost relativamente al server ssh)
http://img138.imageshack.us/img138/8422/tunnelssh200603210007142sm.png
E' importante stare attenti che la porta locale selezionata, non sia già in uso da un altro servizio!
Per questo motivo ho usato la porta 12345 che difficilmente sarà già utilizzata.
Dal client è sufficiente lanciare il viewer vnc e digitare come ip di destinazione (del server) 127.0.0.1:12345 confermare e alla richiesta della password, digitare la password precedentemente impostata.
Ecco come può risultare un pc windowsXP controllato da un pc windows 2000
http://img82.imageshack.us/img82/6360/vncssh4gq.png
Nota:
E' possibile usare un qualunque sistema client che supporti un terminale ssh e che abbia un client vnc.
Nell'esempio riportato ho usato mandriva2006 free per collegarmi al server windowsXP.
Da shell ho digitato:
ssh 192.168.100.123 -l archim3de -L 12345:127.0.0.1:5900
e alla richiesta di password ho digitato la password dell'utente archim3de nel pc windows XP.
In questo modo il tunnel ssh è creato, non resta che sfruttarlo:
da un'altra sessione shell ho digitato:
vncviewer 127.0.0.1::12345
Attenzione ai doppi ":" che indicano la porta dove connettere il viewer!
In questo caso alla richiesta di password, bisogna digitare la password impostata nel server vnc.
http://img82.imageshack.us/img82/2333/vncsshmdk4yj.png
Attività avanzate per necessità particolari
Secondo lo stesso principio utilizzato per connettersi in maniera "sicura" via vnc, potremmo creare e sfruttare nuovi tunnel per altri servizi che lavorano su protocolli TCP/IP!!
Un'attività molto interessante potrebbe essere quella di collegarsi ad un terzo pc dove è attivo un certo servizio, senza che questo sappia nulla di cosa è un tunnel.
Un esempio potrebbe essere il seguente:
Dal pc locale (client SSH), vogliamo connetterci ad un server web interno che non sarebbe altrimenti, direttamente accessibile, e comunque vogliamo una connessione "sicura"!
Pssiamo sfruttare il tunnel creato tra li "client SSH" e il "Server SSH" il quale provvederà a inoltrare le richieste al "server Web"
http://img211.imageshack.us/img211/4965/tunnel3pc0gu.png
Questa è la configurazione del tunnel da fare in putty sul "client SSH":
http://img220.imageshack.us/img220/7269/tunnel3pcputty2eu.png
E' possibile utilizzare un sistema alternativo di autenticazione dove anzichè dover digitare ogni volta le password, le tue "estremità" facciano un'autenticazione "automatica" tramite RSA, ma questo sarà oggetto di un tutorial a se stante!
Conclusioni
In sintesi: il vantaggio di creare un tunnel ssh sta nel fatto che il traffico tra i due host (siano essi in rete locale o che passano via internet), viene cifrato dal protocollo ssh stesso!
Se le necessità sono limitate, questa configurazione può sostituire una vpn dalle piene funzionalità di "tunneling".
L'implementazione di un tunnel di questo genere è piuttosto semplice, e le potenzialità sono notevoli: possiamo incapsulare qualunque tipo di traffico vogliamo!
Se il server ssh è dietro ad un router, è sufficiente abilitare il portforward della porta TCP 22 verso l'ip locale del server ssh! Non è necessario dare accesso da nessun'altra "porta" TCP.
Una volta che abbiamo configurato a puntino il server ssh e i vari servizi di cui vogliamo usufruire, da qualunque parte del mondo con un semplice client ssh e un client per il servizio cui vogliamo usufruire (negli esempi sopra un client vnc o un browser), possiamo accedere tranquillamente in sicurezza al nostro server privato o aziendale.
Gli svantaggi: ovviamente se pretendiamo di cifrare tutto il traffico di tutti i nostri servizi, le prestazioni potrebbero degradarsi, in quei casi è preferibile implementare una vpn.
Problemi possibili
Se abbiamo degli errori nella connessione via SSH, dobbiamo accertarci che
- il server SSH sia attivo
- gli utenti siano muniti di password e autorizzati nel server ssh
- sull'eventuale firewall sia consentito il traffico in entrata sulla porta 22
Se abbiamo problemi a collegarci col vnc attraverso il tunnel creato, dobbiamo accertarci che:
- il tunnel sia creato correttamente verificando le pore e gli ip (o nomi computer) inseriti
- nelle impostazioni del server vnc, sia abilitata la connessione nell'interfaccia "loopback": il server crede che sia un viewer locale a collegarsi a se stesso, non sa che è una connessione "tunnelizzata"!!
Per dubbi, perplessità e difficoltà, porre i quesiti del caso nella sezione "Software per Networking, Internet, mail, etc etc" --> http://forum.wininiz...p?showforum=180 <--
Archim3de

Connettiti
Registrati
Aiuto


archim3de Complimenti!! Veramente bello questo wininzio 2.0

MultiQuote

