Andrea Beggi

Everything you need is already inside.

Creare tunnel con OpenSSH

A T T E N Z I O N E ! Questo post ha piu' di sei mesi. Le informazioni contenute potrebbero non essere aggiornate.

Dal sito di OpenSSH:

OpenSSH è una versione libera del protocollo SSH, suite dei tool per la connettività di rete…. Molti utenti che utilizzano telnet, rlogin, ftp e altri programmi simili forse non sanno che la loro password viene trasmessa attraverso la rete non criptata. OpenSSH cripta tutto il traffico (password compresa) per eliminare a tutti gli effetti l’ascolto passivo, l’hijacking della connessione e altri attacchi a livello di rete. In più, OpenSSH fornisce una miriade di possibilità di tunneling sicuro, così come una varietà di metodi di autenticazione.

Di questo ottimo prodotto open source ne esiste una versione per Win32, che installa il server OpenSSH, senza il bisogno di installare tutto il pacchetto Cygwin. Fornisce i servizi di SSH/SCP/SFTP, e l’accesso via terminale SSH presenta una shell del Prompt dei comandi.
E’ molto semplice installare il pacchetto e creare tunnel sicuri verso la macchina server, vediamo il solito esempio della connessione al desktop remoto(*). Funziona su tutte le versioni di Win32, tranne 95 e 98.
Procuratevi il pacchetto da installare sul server qui, e lanciate l’installazione. Accettate tutti i defaults e procedete fino alla fine. Aprite un prompt dei comandi e portatevi nella cartella di installazione (dovrebbe essere c:\Programmi\OpenSSH). Dovete decidere per quali utenti abilitare l’accesso, di solito è meglio per il solo amministratore. Fate un cd bin, e usate mkgroup e mkpasswd per assegnare i diritti, seguendo la sintassi che trovate nel file quickstart.txt. Terminate facendo partire il servizio: net start opensshd. Ricordate di aprire la porta TCP/22 sul router e/o firewall. Su XP SP2 aggiungete il servizio e la porta al firewall. Inoltre se non usate l’utente administrator e siete su un controller di dominio, ricordate di modificare le Group Policies in modo da permettere l’accesso all’utente desiderato.
A questo punto passiamo al client: procuratevi PuTTY, il client SSH che vi servirà per la connessione e la creazione del tunnel.
Spostatevi sul client, lanciate PuTTY, inserite l’indirizzo IP o il nome del server e nella sezione SSH –> Tunnels —> source port: 3389, destination: 127.0.0.1:3389, tipo: local.
Cliccate su Open, cliccate su Yes, se appare una dialog box che chiede di aggiungere la chiave, inserite poi nome utente e password. Se tutto è andato a buon fine vedrete il prompt dei comandi della macchina remota, sul quale potete lavorare tranquillamente.
Per sfruttare il tunnel creato usiamo la Connessione a Desktop Remoto, modificata come ho scritto qui. Lanciate il programma ed effettuate la connessione verso 127.0.0.1. Ecco il vostro desktop remoto, tunnellato su di una connessione sicura!
Per creare tunnel verso altri servizi è sufficiente aggiungerli prima della connessione, e poi dal client puntare all’indirizzo 127.0.0.1.
OpenSSH installa anche un server sftp, una versione sicura di ftp che non manda le password in chiaro, potete usare diversi client per connettervi, io uso WinSCP, open source. Si usa come un client ftp normalissimo.
Qualora si volesse creare un tunnel verso un PC diverso dal server OpenSSH, ma da lui raggiungibile, basterà creare il tunnel specificando l’indirizzo IP locale della macchina di destinazione.
La cosa bella è che il tunnel viene creato “al volo” sul client ad ogni connessione, e non devo configurare nulla sul server, comodo no?

(*) Naturalmente la connessione a desktop remoto su Windows NT non esiste.

21 Commenti

kOoLiNuS | #

tnx
in serata metto su il tutto 😀

flevour | #

Bell’articolo! Ne avevo scritto uno anchio simile sul mio blog (con la differenza che il tuo letto da pi persone). La mia impostazione pi cross-platform, mentre la tua specifica per Windows. Molto interessante l’uso di Putty per creare il tunnel (io da Windows mi sono creato uno script batch che esegue il comando vero e proprio). Ogni volta che scrivi qualche “chicca” da smanettone colpisci sempre nel segno! Grazie!

pino | #

Grazie per l’aiuto, funziona tutto ok, molto interessante.
sono un prolema quando faccio il loopback sulllo stesso pc.

sul lato remoto ho comunque tutto il disco c: in share.
dove sbaglio ocosa mi manca

alessandro | #

ciao,
io grazie a te sono riuscito a capire molte cose , ma riesco ad accedere solo tramite administrator, se
ti va mi diresti cosa dovrei cambiare in windows come
group policy?? ti ringrazio in anticipo
alessandro

ale82x | #

ma dove si impostano le cartelle che ogni utente può visualizzare nel server sftp?
grazie

ale82x | #

ho installato openssh, ma quando vado a scrivere
“mkgroup -d >> ..\etc\group”
mi da errore:
Cannot get PDC, code = 2453
che vuol dire???
e perchè se vado a scrivere:
“mkpasswd -d [-u ] >> ..\etc\passwd”
mi dice:
Impossibile trovare il file specificato.

grazie mille

Ricky | #

Ciao,

Ho appena finito di installare OpenSSH, ma qundo vado nella directory bin e faccio partire mkgroup e mkpasswd
mi trovo di fronte i seguenti messaggi:

———————————————————–
mkgoup -l>>..\etc\pippo –>Nessun errore
mkgoup -d>>..\etc\pippo –>cannot get pdc, code = 2453
———————————————————–
mkpasswd -l [-u pippo]>>..\etc\pippo
–>A domain name only accepted when -d is given
mkpasswd -d [-u pippo]>>..\etc\pippo
–>[2453] Impossibile trovare il controller di dominio per questo dominio(con opzione -d)
———————————————————–
Essendo un utente domestico mi chiedo innnanzi tutto se devo utilizzare l’opzione -l o -d e di conseguenza come fare per risolvere gli errori che ho precedentemente descritto.

Ringrazio fin d’ora tutti coloro che mi daranno una mano.

ale82x | #

ciao ricky, anch’io ho il tuo stesso problema…
non so come fare…. se qualcuno ha qualche informazione in merito o riesce a risolvere…
grazie mille!

ale82x | #

io non ci sono neancora riuscito…
però ho scoperto un mini server sftp che non s’installa nemmeno, lanci l’eseguibile e ti chiede user e passw e la cartella che vuoi condividere. e naturalmente la porta in ascolto (default 22) dai “start” e hai il tuo server sftp gratuito e semplicissimo da utilizzare. e per di più hai la sicurezza della crittografia dei dati!!!!

ale82x | #

eccomi tornato, ce l’ho fatta!!!
l’oprzione mkgoup -d>>..\etc\pippo
va usata solo se siete in un dominio (win 2k3)
invece su utenti “domestici”, quindi con xp io ho usato:
mkgoup -l>>..\etc\pippo
per attivare anche la password dovete avere un utente nel sistema con il nome che volete (in questo caso pippo) che deve avere impostata una password , a me senza non funzionava…
prima di iniziare fermate il servizio di openssh (se fosse avviato…)
quindi una volta creato l’utente pippo e la password andiamo nella cartella di openssh\bin
e facciamo:
mkgoup -l>>..\etc\pippo
mkpasswd -l [-u pippo]>>..\etc\passwd

tutto funziona ok, poi avviate openssh.
adesso se vi connetete con sftp sulla porta 22 potete accedere con username pippo e la password che avete impostato.
però ora ho un altro problema…. come si fa a dire quali sono le cartelle condivise per quell’utente???
io eseguendo il procedimento sopra descritto riesco ad accedere solo alla cartella c:\programmi\openssh\
non so il perchè….
grazie

Ricky | #

Grazie per l’aiuto ale82x, ma adesso ho un altro problema…
Quando mi connetto in remoto con il client Putty, dopo aver inserito username e password, mi compare il messaggio access denied.
Come risolvo il problema?

Grazie a tutti coloro che mi daranno una mano

Chronos | #

Ragazzi ma per utilizzare in remoto bisogna specificare l’opzione -l o -d?
Io ho provato con -l ma quando faccio collegare gli amici per testare mi dicono che non si collega affatto…
A cosa serve l’opzionie -d?

per quanto riguarda le cartelle condivise leggiti i doc quickstart c’e’ scritto qualcosa che potrebbe aiutarti se non erro…

Claudio | #

Ho bisogno di aiuto,
ho installato openssh su un winxp client di un dominio, tra i tanti tentativi
ho creato un utente locale nel pc e con putty mi sono collegato:
AL login inserisco nome utente e passwd,
ma la finestra di putty si chiude e mi butta fuori.

l’utente l’ho aggiunto con
mkpasswd -l -u “nome” >> ..\etc\passwd.
Che devo fare?
Grazie

Claudio | #

Ho risolto
grazie a tutti

ale | #

ma con openssh si possono solo abilitare utenti già esistenti in windows? cioè se io volessi creare in openssh un utente “prova” e dargli le limitazioni del caso devo per forza creare l’utente “prova” in windows? dal pannello di controllo per intenderci…
grazie

Dome | #

Blog molto utile!
Ho letto all’inizio che usi openssh anche come server sftp. Lo sto provando anch’io ed è tutto a posto. Però sai come/dove impostare le home directory alla connessione? Con winSCP si connette alla cartella dell’utente in Documents&Settings ed andando più sù (alla parent directory) va nella cartella di installazione di openssh. Vorrei evitare quest’ultima cosa e cmq cambiare la home directory. Ho provato a vedere in giro, ma non ho trovato niente…Tu che lo usi hai qualche suggerimento?

lukettopre | #

quando mi connetto da remoto con putty mi da access deneid…..in locale mi fa collegare

Riccardo | #

La creazione del tunnel con OpenSSH necessita obbligatoriamente di un ip pubblico statico in almeno una delle due macchine collegate? Io ho il server dove vorrei installarlo sotto rete Fastweb che, come noto, natta i suoi utenti. Ringrazio per la risposta