SSHFS: montare una risorsa remota sfruttando FUSE ed SSH: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m (→‎Introduzione: link glossario)
Riga 1: Riga 1:
{{stub}}
== Introduzione ==
==Introduzione==
Ho deciso di fare questa guida poich� ho avuto molta difficolt� a creare una connessione remota sicura fra una macchina Windows ed una Linux in una LAN (o in una WAN) in quanto la maggior parte delle guide, degli How-To e delle FAQ che ho trovato in Internet esamina tale connessione fra due macchine Linux.


La connessione remota sicura, che esaminero`, e` una connessione che usa il protocollo [http://it.wikipedia.org/wiki/Ssh SSH (Secure SHell)] e, perci�, � detta '''connessione SSH''' la quale si basa sulla [http://it.wikipedia.org/wiki/Crittografia_asimmetrica criptografia asimetrica] detta anche '''criptografia a coppia di chiavi''' o, piu` semplicemente, '''a chiave pubblica/privata''' (o, semplicemente, '''a chiave pubblica''') che consiste nella generazione di una coppia di chiavi (chiamate [http://it.wikipedia.org/wiki/Chiave_privata chiave privata] e [http://it.wikipedia.org/wiki/Chiave_pubblica chiave pubblica]). In pratica, la '''chiave pubblica''' codifica la communicazione mentre la '''chiave privata''' decodifica tale comunicazione e vengono generate usando degli algoritmi asimetrici che sono [http://it.wikipedia.org/wiki/RSA RSA] e [http://en.wikipedia.org/wiki/Digital_Signature_Algorithm DSA] e le connessioni che usano tali coppie di chiavi prodotte da questi algoritmi asimetrici sono dette '''connessioni SSH'''. Tali algoritmi, per�, servono soltanto per instaurare una connessione criptata fra il client SSH e il server SSH in quanto, per il trasferimento vero e proprio dei dati, si usano degli algoritmi simmetrici, come AES o 3DES, che sono molto pi� efficenti per questo scopo ovvero per cifrare la comunicazione. Quindi:
Questo HOWTO mostrer� come installare i driver '''eagle-adsl''' su Debian GNU/Linux.


Una '''connessione SSH''' � una connessione cifrata che utilizza gli algoritmi asimetrici RSA o DSA soltanto per verificare se una chiave pubblica, memorizzata sul Server, derivi da una chiave privata salvata sul Client (in modo da garantire la reciproca autenticita` del Server e del Client) in modo da essere utilizzata, per l'intera sessione, per la cifratura simmetrica con algoritmi come AES o 3DES.
Questi driver supportano i seguenti modem:
* [[Modem adsl Telindus ND220|Telindus ND220]]
* [[Modem adsl Sagem Fast 800|Sagem Fast 800]]
* [[Modem adsl Aethra Starmodem|Aethra Starmodem]]: solo con chipset ADI


==Scelta del software==
Vedere le rispettive pagine per ulteriori informazioni.


Ora, dopo aver fatto questa introduzione per chiarire i termini che user� in seguito, spiegher�, in pratica, come si crea una connessione SSH da Windows a Linux. Per far ci�, occorre scegliere un server-software SSH sulla macchina Linux (che funge dal Server) ed un client-software SSH su una macchina Windows (che funge da Client). Ora, per scegliere un server-software SSH per Linux, non esiste alcun problema in quanto la communit� Open Source ha creato un ottimo prodotto che, ormai, tutte le distribuzione lo installano come default. Questo prodotto � il software [http://www.openssh.com/ OpenSSH Server]. Ora, siccome Windows (in tutte le sue edizione per il Desktop) non ha nessun client-software SSH, occorre cercarne uno. Il pi� semplice client SSH con licenza certificata Open Source � [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] ma, chi volesse usare soprattutto la Shell di Linux ed avere qualche comodit� in pi� sullo stile di Windows, dovr� valutare programmi commerciali come [http://www.vandyke.com/products/securecrt/ SecureCRT] o [http://www.ssh.com/products/tectia/client/ SSH Tectia Client] che, per fortuna, si possono prelevare le versioni di valutazione completamente funzionanti prima dell'acquisto.
I driver funzionano molto bene, soprattutto nelle ultime versioni. Ricordatevi soltanto che quando riavviate dovrete staccare per qualche secondo il modem per evitare problemi di sincronia (e quindi lunghe attese al boot).


{{Box | Nota |I client SSH permettono soltanto di accedere alla Shell di Linux per poter eseguire comandi su un terminale a caratteri di questo sistema operativo. Per poter accedere anche al suo server grafico [http://it.wikipedia.org/wiki/X_Window_System X Window System] o '''X11''' o soltanto '''X''' (e, quindi, per poter controllare i vari ambienti grafici ed i programmi di X), occorre anche un [http://it.wikipedia.org/wiki/VNC client/server VNC]. Ora, niente paura in quanto, grazie alla funzionalit� [http://en.wikipedia.org/wiki/Tunneling_protocol Tunneling] di questi tre client SSH, � possibile controlare anche X sempre in modo sicuro.}}
==Pacchetti da installare==
Questo � il passaggio pi� difficile dato che dobbiamo installare i pacchetti senza disporre di una connessione ad internet. Ci sono due possibili strade da seguire, a seconda di cosa avete a disposizione:


==Configurazione dell'OpenSSH Server==
# Effettuare una connessione ad internet provvisoria, ad esempio tramite scheda di rete. Io ad esempio disponevo di un secondo pc sul quale il modem era gi� installato � ho fatto in modo di condividere la connessione ad internet (vedere: [[Modem_adsl_Telinus_ND220#Condividere la connessione|Condividere la connessione]]). Alternativamente potreste andare a casa di un amico che dispone di connessione ad internet tramite scheda di rete ethernet, o ancora, farvi prestare un modem adsl ethernet. Una volta connessi, per�, l'installazione dei pacchetti e di tutte le dipendenze diventa una cosa banalissima.
# Scaricare i pacchetti manualmente, tramite un'altro sistema o pc connesso ad internet. Questa strada � pi� macchinosa perch� non � facile trovare e scaricare tutte le dipendenze (dipende molto da cosa si � gi� installato). Per risolvere parzialmente il problema si potrebbe usare '''apt-zip''' (vedere: [[Apt-zip: aggiornamenti senza una connessione veloce]]) ma anche questo programma si deve prima installare. Questa strada si dovrebbe usare come ultima spiaggia.


Una volta installato l'OpenSSH Server sulla macchina Linux, occorre configurarlo per scegliere il modo di authentificazione che volete che le macchine Client usano per accedere a questa macchina Linux.
Ok, supposto che in un modo o nell'altro abbiate una connesione ad internet, i pacchetti da installare sono in primo luogo i driver del modem:


Le varie autentificazione che OpenSSH Server pu� offrire sono:
* eagle-usb-data
* eagle-usb-utils


#Autentificazione tramite '''password'''
Durante l'installazione di '''eagle-usb-utils''' verranno richieste:
#Autentificazione '''ChallengeResponseAuthentication''' o '''Keyboard-Interactive'''
#Autentificazione '''a chiave pubblica'''
#Autentifiazione '''GSSAPI'''


'''L'autentificazione tramite password''' utilizza la Username e la Password dell'utente (le stesse usate per l'autentificazione in locale) per verificare se l'utente � autorizzato ad accedere da remoto alla macchina Linux.
* Il vostro provider internet
* Nome utente e password per la connessione ad internet
* Quando avviare automaticamente la connessione: all'avvio del sistema, quando il modem viene collegato al pc oppure mai (avvio manuale).
* Se usare i [[DNS]] forniti da telecom oppure usare dei [[DNS]] statici impostati manualmente (veder dopo:  [[Modem_adsl_Telinus_ND220#Impostare i DNS|Impostare i DNS]])


'''L'autentificazione ChallengeResponseAuthentication o Keyboard-Interactive''' utilizza una serie di autentificazioni caratterizzate da richieste, fatte dal server SSH, che devono essere confermate dalle risposte mandate dal client SSH. Se le risposte coincidono a quelle memorizzate sul Server, l'utente � autorizzato ad accedere da remoto alla macchina Linux altrimenti questi non pu� entrare in tale macchina Linux.
Se volete riconfigurare il pacchetto in un secondo momento baster� usare il comando:


'''L'autentificazione a chiave pubblica''' verifica se la chiavi pubblica, memorizzata sul Server, '''derivi''' dalla chiave privata memorizzata sul Client dell'utente. Se tale verifica ha esito positivo, l'utente pu� accedere alla macchina Linux altrimetri no. Siccome la chiave privata � praticamente un file, che autorizza chiunque entra in possesso ad entrare in un Server SSH, � consigliabile protteggerla con una '''passphrase''' che, in sostanza, � una password che occorre inserirla ogni volta (o quasi) che si effettua una connessione verso tale Server SSH.
<pre>
# dpkg-reconfigure eagle-usb-utils
</pre>


Ora (e qu viene il grosso) dovremo installare tutta una serie di pacchetti per poter compilare il modulo del kernel '''eagle_usb''' che serve per gestire il modem:
* eagle-usb-module-source
* module-assistant
* kernel-package
* libc6-dev
Se avete una connessione ad internet, baster lanciare '''module-assistant''' e questi permetter di installare gli eventuali altri pacchetti mancanti, di compilare il modulo mettendolo in un pacchetto, ed infine di installare il pacchetto del modulo.
Se non avete invece una connessione ad internet provvisoria sullo stesso sistema dovrete scaricare oltre ai precedenti pacchetti con tutte le loro dipendenze, anche gli header del kernel corrente ed eventuali altri pacchetti qualora module-assistant fallisse a compilare il modulo.
==Compilare il modulo del kernel==
Come detto il modulo del kernel necessario per gestire il modem '''eagle_usb''' che portroppo non incluso in nessun kernel ufficiale debian.
Per compilare i moduli debian fornisce un comodo tool '''module-assistant'''. Basta lanciarlo:
<pre>
# module-assistant
</pre>
e ci verra presentata una interfaccia che permette di:
* Preparare il sistema installando eventualemte gli header del kernel corrente
* Scegliere il modulo da compilare e scaricare automaticamente i sorgenti
* Compilare il modulo
* Installare il pacchetto
Una volta installato il modulo si potr fare partire la connessione con:
<pre>
# adslstart
</pre>
==Impostare i DNS==
Nel mio caso i [[DNS]] mandati da Telecom Italia, in fase di connessione, risultano lentissimi. Per vedere se una connessione lenta a causa dei [[DNS]] si pu usare un comando del tipo:
<pre>
nslookup www.google.it
</pre>
Tipicamente si dovrebbe avere una risposta nel giro di un secondo o anche meno. Se la risposta arriva dopo diversi secondi allora i [[DNS]] sono troppo lenti e conviene impostarne degli altri.
Per impostare i [[DNS]] basta inserire in cima a '''/etc/resolv.conf''':
<pre>
nameserver 151.99.125.2
nameserver 151.99.125.3
</pre>
Dove 151.99.125.2 e 151.99.125.3 sono gli indirizzi dei [[DNS]] che ho trovato essere molto pi veloci nel mio caso. A questo punto la velocit del comando nslookup dovrebbe essere migliorata parecchio (e anche l'apertura della pagine internet di conseguenza). Se i [[DNS]] sono ancora lenti cercatene degli altri fino a quando non ne trovate di abbastanza veloci.
Si possono anche aggiungere delle ulteriori opzioni:
<pre>
options rotate
options timeout 1
</pre>
che servono per mandare alternativamente le richieste all'uno o all'altro [[DNS]] e per impostare ad 1 secondo il timeout da attendere prima di rifare la richiesta sull'altro [[DNS]].
Ora dobbiamo fare in modo che il file /etc/resolv.conf non venga pi sovrascritto quando si effettua la connessione.
A tal scopo basta riconfigurare il pacchetto '''eagle-usb-utils''':
<pre>
# dpkg-reconfigure eagle-usb-utils
</pre>
e scegliere di non usare i [[DNS]] forniti dal provider.
A questo punto il file /etc/resolv.conf non dovrebbe venire pi sovrascritto. Per maggior sicurezza, tuttavia, consiglio di conservare una copia del resolv.conf funzionante in un posto sicuro (ad es. in /root) in modo da poterlo ripristinare facilmente all'occorrenza con un semplice cp.
== Connettersi e Disconnettersi Manualmente ==
Per connettersi manualmente basta usare il seguente comando:
<pre>
# adslstart
</pre>
Invece per disconnettersi da internet:
<pre>
# adslstop
</pre>
==Condividere la connessione==
Se avete pi di un computer, potreste avere la necessit di collegarvi contemporaneamente ad internet con pi computer.
Se ad esempio avete due computer, potrete collegarne uno a internet tramite il modem usb e fare si che l'altro condivida la connessione. Per far ci ogni pc deve essere dotato di una normalissima scheda di rete ethernet e deve essere usato un cavetto cross (incrociato) per connetter i due pc.
Se avete pi di due pc dovrete usare un switch per collegarli tutti tramite scheda di rete.
Fatto ci non vi resta che seguire questa guida su come condividere la connessione ad internet:
* [[Condividere la connessione a internet]]
== Kernel 2.6.10 o superiori ==
A partirte dal kernel 2.6.10 i package '''eagle-usb-data''' e '''eagle-usb-utils''' sono sostituibili con '''ueagle-atm''' e '''ueagle-utils'''.
Il pacchetto ''ueagle-atm'' compiulato nel kernel Debian di default (>= 2.6.10): per verificarlo digitate...
<pre>
$ lsmod | less
</pre>
...e verificate che il modulo ''ueagle-atm'' sia nella lista. Ricordate che per e eguire tale comando, prima del boot il modem usb deve essere stato collegato al computer in modo da attivare il sistema [[Udev_e_Debian#Il_sottosistema_hotplug|hotplug]] (obbligatorio per questa soluzione).
Se il modulo compare nel listato di ''lsmod'', non resta che far caricare il firmware per il modem.
Il firmware si trova all'indirizzo http://eagle-usb.org/ueagle-atm/non-free/. Si deve scaricare il pacchetto '''ueagle-data-X.tar.gz''' (X la versione del pacchetto, al momento della scrittura della pagina X = 1.3).
Supponiamo di avere scaricato il pacchetto in ''/home/mioutente''.
Diventiamo root.
<pre>
$ su
</pre>
Scompattiamo il pacchetto
<pre>
# tar -xvzf ueagle-data-1.3.tar.gz
</pre>
Entriamo nella cartella che si creata dopo aver lanciato il comando ''tar''.
<pre>
$ cd eagle-data ''(o un nome simile..)''
</pre>
Spostiamo i file del firmware nella cartella ''/lib/firmware'' in modo che [[Udev_e_Debian#Il_sottosistema_hotplug|hotplug]] riesca a caricarli.
<pre>
$ mv *.fw /lib/firmware
</pre>
A questo punto non ci resta che ricaricare il modulo ueagle-atm o aspettare il prossimo riavvio ed il gioco fatto.
== Note Finali ==
{{Warningbox|Se si vuole staccare fisicamente il modem dalla porta usb, conviene scaricare prima il modulo '''eagle_usb''' altrimenti potrebbe avvenire un errore che non permette pi la riconnessione senza riavviare il pc. Per scaricare il modulo:
<pre>
sudo modprobe -r eagle_usb
</pre>
}}
; NOTA : In alcuni casi hotplug pu non essere in grado di riconoscere il modem se questo viene spostato da una porta all'altra. Per evitare problemi si consiglia di collegare il modem sempre alla stessa porta usb.


----
----


: [[Utente:Balubeto|Balubeto]] 04:46, 29 Mag 2006 (EDT)
Autore principale: [[Utente:TheNoise|~ The_Noise]]
Autori secondari: [[Utente:Ramingo]]
[[Categoria:Hardware]]
[[Categoria:Modem ADSL]]