MegaLab.it
Stampa Articolo
Aperiodico gratuito di informatica
 
20081015094818_1244452505_20081015094759_2054515424_server_ssh.png

Come predisporre un server SSH in Windows

a cura di Zane
12/01/2009 - articolo
Tecniche Avanzate - Guida passo per passo all'installazione e configurazione di OpenSSH su piattaforma Microsoft.

Fra le funzionalità presenti nel mondo Linux/UNIX che ho sempre invidiato di più come utente Windows, il protocollo SSH è indubbiamente in cima alla lista.

In questo articolo mostrerò come sfruttare Cygwin per predisporre un server SSH perfettamente funzionante sotto Windows, in grado di fare "tunneling", ricevere comandi da remoto, scambiare file in modo sicuro e molto altro ancora.

L'argomento in se è intrinsecamente complesso, e richiede una certa dimestichezza con l'utilizzo del PC e delle tecnologie di rete in generale: raccomando quindi la lettura di questa guida soprattutto ai power user ed utenti "smanettoni" in generale.

La guida sarà quanto più possibile passo-passo nei punti critici, ma procederà spedita nei passaggi più semplici: darò quindi per scontato che chi legge sappia installare un programma, compiere altre operazioni di base con il file system e con le funzionalità di Windows.

Che cosa è SSH? Perché dovrebbe interessarmi?

Secure Shell (SSH) è un protocollo di livello applicazione proprio del mondo Linux/UNIX che consente di accedere ad un calcolatore remoto sfruttando un canale sicuro: tutte le informazioni veicolate via SSH sono infatti crittografate e teoricamente inaccessibili ad un qualsiasi aggressore che dovesse riuscire ad intercettare la comunicazione.

SSH è nato principalmente per consentire di lanciare comandi ed accedere alle risorse di workstation e server remoti con la stessa semplicità con cui si accede ad un sistema fisico. Nel corso degli anni però, l'uso di questa tecnologia si è evoluto, ed oggi SSH consente di realizzare canali protetti all'interno dei quali possono essere veicolate informazioni di qualsiasi tipo.

Una volta predisposto un server SSH sul vostro PC di casa, potrete sfruttarlo da remoto per:

E molto altro ancora.

Questo articolo rappresenta il punto di partenza: vedremo qui come predisporre il server, ed in una serie di articoli successivi come sfruttarlo da remoto per i nostri scopi.

Pronti? Si parte

Installare Cygwin

Qualche problema con Cygwin? Niente paura. possibile realizzare un server SSH anche con un altro programma gratuito ad interfaccia grafica. Abbiamo dettagliato la procedura in "Predisporre un server SSH su Windows via interfaccia grafica".

Cygwin è un pacchetto open source che rende disponibili sotto Windows una serie di strumenti e funzionalità native del mondo Linux/UNIX. Fra queste vi è anche OpenSSH, il programma necessario per predisporre il server ad accettare connessioni SSH. Cygwin_as_admin.jpg

Il primo passo da compiere per preparare il nostro server SSH è quello di scaricare ed avviare l'installazione di Cygwin. L'eseguibile di partenza è un piccolo file di circa 400 kB che consente la mera selezione delle caratteristiche da installare: una volta espressa la propria preferenza, i file verranno effettivamente scaricarti ed installati dalla rete.

Una volta lanciato l'installatore con i privilegi di amministratore, selezionate Install from Internet, specificate il percorso in cui installare i file (c:\cygwin di default), il percorso in cui scaricare temporaneamente i file necessari per l'installazione (il desktop è l'impostazione predefinita), la modalità di connessione Rete (Direct Connection è la scelta di rito in ambito domestico) e quindi il mirror da cui prelevare i file: ricordate che uno geograficamente vicino migliorerà la velocità di download.

Arriveremo quindi alla prima schermata realmente interessante: la scelta delle funzionalità (pacchetti) da installare. Espandete il ramo Net e individuate la voce openssh: cliccate quindi sulla corrispondente voce skip per manifestare la volontà di installare questa funzionalità

Cygwin_install_openssh.jpg

Allo stesso modo, aggiungete il pacchetto tcp_wrappers.

Portatevi quindi nel ramo Utils e abilitate l'installazione del pacchetto diffutils.

Una volta cliccato su Avanti, partirà il download dei pacchetti e l'installazione dell'ambiente Cygwin.

Terminata l'installazione, potete lanciare Cygwin cliccando sull'apposita icona creata sul desktop o nel menu Start.

Cygwin_first_run.jpg

Ora, è giunto il momento di configurare ed abilitare il nostro server SSH.

Tranquilli: nemmeno io amo particolarmente interagire con la linea di comando, ma fortunatamente si tratta solo di pochi passaggi (a rendere ulteriormente noiose le cose, ci si mette anche il mancato supporto al copia-incolla da parte di Cygwin: tutti i comandi dovranno quindi essere digitati a mano!).

Slamdunk (che ringrazio) ha segnalato che è possibile accedere alla funzionalità "incolla" cliccando con il pulsante destro del mouse sulla barra del titolo della finestra di Cygwin, e selezionando quindi Modifica -> Incolla

Paste.jpeg

Assegnare i privilegi

Digitate per prima cosa chown Zane:root /var/log (sostituendo a Zane il vostro username, visibile (in verde) nella parte alta del terminale, prima della chiocciola) e premete invio. In questo modo, la cartella /var/log diverrà proprietà del vostro utente e del gruppo degli amministratori: un prerequisito per procedere alla configurazione del nostro server.

È necessario ora attribuire una serie di privilegi: Digitate i seguenti comandi, premendo Invio fra ognuno di essi

  1. chmod a=rwx /var/log
  2. chmod +r /etc/passwd
  3. chmod +r /etc/group
  4. chmod 777 /var

Avviare la configurazione vera e propria

Eseguite queste operazioni preliminari, digitate ssh-host-config -y e premete invio. Scorreranno ora una serie di comandi e informazioni, che vi informano circa le operazioni in corso.

Se utilizzate un sistema operativo successivo a Windows XP, è necessario creare un utente separato per l'esecuzione del server: la procedura di configurazione appena lanciata si fermerà, chiedendovi di digitare il nome del nuovo account da creare: digitate cygwin_server (o qualsiasi altro nome vi piaccia) e premete invio

Cygwin_create_user.jpg

Inserite nuovamente il nome scelto per confermarlo.

Digitate e confermate infine la password per il nuovo utente. La procedura di configurazione preliminare sarà così conclusa.

Cygwin_finish_ssh.jpg

Potete avviare ora il vostro server SSH, digitando net start sshd all'interno della finestra di Cygwin oppure in un prompt di comando.

Cygwin_start_service.jpg

A questo punto il servizio sarà installato e configurato per partire automaticamente ad ogni avvio del PC. Potete modificare questo comportamento o controllare l'esecuzione del servizio stesso selezionando Start -> Esegui -> services.msc e cercando la voce CYGWIN sshd

Cygwin_service.jpg

Sinceratevi che la voce Stato riporti la dicitura Avviato, prima di proseguire.

Aprire la porta sul firewall

Arrivati a questo punto il server SSH dovrebbe essere in attesa di connessioni sulla porta 22. Quasi sicuramente però, il firewall non sarà ancora configurato per accettare connessioni in entrata su tale porta.

La procedura per abilitare la comunicazione cambia a seconda del firewall in uso. Supponendo che abbiate in adozione Windows Firewall (incluso in Windows XP SP2, Windows Server 2003 SP1, Windows Vista e Windows Server 2008), fate riferimento alla guida "Come aprire determinate porte su Windows Firewall", ricordando che la porta da aprire è la numero 22.

In caso aveste adottato invece un firewall di terze parti, dovrete consultare invece alla documentazione del programma.

Aprire e rilanciare la porta sul router

In caso vi connetteste ad Internet utilizzando un router, dovrete inoltre rilanciare la porta 22 del router verso il vostro server SSH.

La funzionalità si chiama port forwarding, ma, sfortunatamente, la procedura per abilitarla è differente in ogni modello di router in circolazione: dovrete quindi fare riferimento alla guida del vostro specifico router, o, in alternativa, al sito PortFowarding.com per ultimare la procedura.

Ottenere un indirizzo

Dovrete ora fare in modo che il vostro server SSH sia raggiungibile mediante un nome a dominio dinamico: a tale scopo, assicuratevi di registrare un account su NO-IP, come illustrato in questa guida.

Testare il servizio

La procedura di configurazione del vostro server SSH dovrebbe essere conclusa.

Spostatevi ora sul client da cui desiderate connettervi al servizio e fate una prova utilizzando il fido Telnet: il comando da utilizzare sarà telnet nomepc 22.

Se tutto andrà per il verso giusto, la configurazione del server è conclusa: complimenti!

Configurare il client SSH

Una volta sinceratisi che il server sia pienamente operativo, passiamo a configurare il client che dovrà connettersi via SSH.

Windows non fornisce alcun programma che consenta di collegarsi ad un server SSH. È quindi indispensabile scaricarne uno Rete.

Due sono le principali alternative. Sebbene solo una delle due sia effettivamente necessaria, raccomando di renderle disponibili entrambe: verranno sicuramente utili in futuro.

In primo luogo, potete installare anche sul PC client il già citato Cygwin, sincerandovi questa volta di non installare il server openSSH o gli altri pacchetti aggiuntivi. Per impostazione predefinita, Cygwin installa un client SSH da riga di comando. Per utilizzarlo, aprite un prompt di comando e quindi digitate ssh indirizzo-del-vostro-server-ssh. Se si tratta della prima connessione, rispondete yes alla richiesta di confermare la volontà di aggiungere indirizzo-del-vostro-server-ssh alla lista dei calcolatori conosciuti, e poter così stabilire la connessione. Digitate infine la password per l'utente, e la connessione sarà stabilita

Cywin_ssh_client_logged.jpg

PuTTY

Molto più interessante rispetto all'uso di Cygwin è l'utilizzo di PuTTY, un emulatore di terminale che offre una serie di interessanti funzionalità aggiuntive, fra cui la gestione di profili di connessione differenti e la possibilità di predisporre un tunnel SSH in modo davvero semplice (funzionalità che si rivelerà preziosa nelle nostre guide future).

Scaricate il programma (ne esiste anche una pratica versione portable, che consente di salvare tutte le impostazioni nella cartella del programma, invece che nel registro di sistema, consentendo di muovere agevolmente l'applicazione fra PC differenti) ed avviatelo con un doppio click

PuTTY_start.jpg

Andremo ora a creare un nuovo profilo, che conterrà tutte le informazioni necessarie per connettersi al nostro server SSH.

Digitate per prima cosa l'indirizzo del vostro server SSH nel campo Host Name ed assicuratevi che Connection type: sia effettivamente SSH.

Spostatevi nel ramo di opzioni Connection -> Data e digitate il nome utente con cui desiderate eseguire login sul server remoto nel campo Auto-login username: è lo stesso che era visibile (in verde) nella parte alta del terminale, prima della chiocciola, durante la configurazione del server SSH. Ricordate?

Tornate al ramo iniziale (Session) e assegnate un nome mnemonico a questa connessione nel campo Saved session. Premete quindi Save per aggiungerlo alla lista. D'ora in avanti, sarà sufficiente fare doppio click sul profilo appena creato per avviare immediatamente la connessione. Fatelo ora.

Trattandosi della prima connessione a tale host, PuTTY chiederà una conferma: selezionate Sì e potrete digitare la password dell'account.

PuTTY_rsa_unknow_first_connection.jpg

Se corretta, avrete accesso al sistema

PuTTY_connected.jpg

Cosa fare ora?

Lo scopo di questo articolo era predisporre un server SSH su un PC governato da un sistema operativo Windows. Se avrete seguito le istruzioni proposte, a questo punto il risultato doverebbe essere raggiunto.

Nelle prossime settimane, MegaLab.it proporrà una serie di guide che sfrutteranno, da remoto, il nostro nuovo server per compiere una serie di operazioni piuttosto interessanti. Restate sintonizzati..

MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .

Copyright 2008 MegaLab.it - Tutti i diritti sono riservati