Home

"I'm brave but I'm chicken shit"

Creare tunnel con OpenSSH

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.


Pubblicato

in

da

Commenti

21 risposte a “Creare tunnel con OpenSSH”

  1. Avatar kOoLiNuS

    tnx
    in serata metto su il tutto 😀

  2. Avatar 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!

  3. Avatar flevour

    PS: Il link all’articolo � questo

  4. Avatar malex

    Ne avevo gi� scritto anch’io uno simile sul mio blog, ma specifico per Linux. 😀

  5. Avatar pino
    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

  6. Avatar alessandro
    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

  7. Avatar ale82x
    ale82x

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

  8. Avatar ale82x
    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

  9. Avatar Ricky
    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.

  10. Avatar ale82x
    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!

  11. Avatar ale82x
    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!!!!

  12. Avatar ale82x
    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

  13. Avatar Ricky
    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

  14. Avatar Chronos
    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…

  15. Avatar Claudio
    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

  16. Avatar Claudio
    Claudio

    Ho risolto
    grazie a tutti

  17. Avatar ale
    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

  18. Avatar Dome
    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?

  19. Avatar lukettopre
    lukettopre

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

  20. Avatar Riccardo
    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