Ti trovi qui : Linux » [HOWTO] Come condividere files e cartelle in maniera sicura, facile, veloce, pratica :-)

[HOWTO] Come condividere files e cartelle in maniera sicura, facile, veloce, pratica :-)

Errata Corrige 18/3/2008: Corretta una mia svista e modificato leggermente il tutorial per maggior chiarezza.

Se siete maniaci come me ed avete un vostro piccolo serverino personale, o più semplicemente vi serve qualcosa di pratico per lavorare con i dischi del vostro desktop appena arrivate a casa e accendete il portatile, questa soluzione è adattissima e richiede soltanto 5 minuti per essere attuata, una volta per tutte.

L’articolo prende come esempio 2 box: una Debian Sid e una Arch Current, ma con poche modifiche il tutorial è utilizzabile su qualsiasi distribuzione vogliate. Da questo momento consideriamo (per praticità) Server la macchina in cui avete i dischi e/o le cartelle da condividere e Client la macchina sulla quale volete usufruire dei suddetti dischi.

Preparazione del Server (Debian Sid)

Installiamo (se non è già presente) un server SSH (secureshell) che ci servirà per accere alla macchina da remoto e condividere le risorse.

$ sudo apt-get install openssh-server

Preparazione del Client (Arch Current)

Installiamo client ssh e sshfs (secureshell file system)

server$ sudo pacman -S openssh sshfs

Adesso generiamo una coppia di chiavi, di cui una andrà sul server e una rimarrà qui. Con questo semplice sistema, possiamo accedere alla macchina server senza aver bisogno di password. Il tutto è sicuro perchè funzionerà soltanto se l’ip del client e lo user name usato per connettersi al server non varieranno. Nota: Il comando che segue (ssh-keygen) chiederà una password - che non ha niente a che vedere con le password degli utenti -. Nel nostro esempio non la utilizziamo quindi premiamo invio in risposta a questa richiesta.

client$ ssh-keygen -t dsa -f .ssh/id_dsa client$ cd .ssh client$ scp id_dsa.pub username@ipserver:/home/username/.ssh/

sostituite a username il nome utente del server e a ipserver l’indirizzo ip del server. Vi verrà richiesta la password (soltanto questa volta se tutto andrà per il meglio) Ora accediamo al server tramite ssh e sistemiamo la chiave che abbiamo trasferito. In pratica saremo collegati al nostro pc tramite una shell remota:

client$ ssh username@ipserver server$ cd .ssh server$ cat id_dsa.pub >> authorized_keys2 server$ chmod 640 authorized_keys2 server$ rm id_dsa.pub server$ exit client$

A questo punto non abbiamo più bisogno di password per entrare da remoto sul server. Il tutto è a nostro pieno vantaggio, torniamo alla situazione descritta in apertura: avvio il portatile e mi ritrovo il disco remoto sul server già bello e pronto da sfruttare esattamente come fosse locale (salvo velocità della lan). Nota: Naturalmente i permessi di lettura/scrittura per il disco/cartella che intendiamo condividere devono essere correttamente settati per l’utente che effettua accesso al server. La risorsa deve essere quindi anche pronta e montata.

SSHFs

Utilizziamo adesso SSHFs, che è appunto un filesystem che sfrutta il protocollo di comunicazione ssh che abbiamo fino ad adesso utilizzato. Ci occorre un punto di mount come qualsiasi altro disco/risorsa. Creiamone uno:

client$ mkdir dati-server

Sfruttiamo anche un piccolo script bash molto utile in questo caso.

#!/bin/bash if ping -c1 ipserver |grep '1 received'; then sshfs username@ipserver:/percorso dati-server/ fi

lo script è molto semplice: controlla se il server è in linea tramite un ping ed eventualmente monta la risorsa. Sostituiamo ovviamente username e ipserver come prima; /percorso è la cartella da condividere (quindi può essere anche un punto di mount). Rendiamo eseguibile lo script e inseriamolo in esecuzione automatica:

client$ chmod +x sshfs-server.sh client$ sudo echo 'su username -c "/home/username/sshfs-server.sh &"' >> /etc/rc.local

Nota: Fate caso alla forma usata subito qui sopra: su username -c “comando”. Abbiamo detto che l’accesso con la coppia di chiavi è valida soltanto per l’utente che le genera, inserendo un comando in /etc/rc.local, questo verrebbe eseguito come fosse utente root. Utilizziamo quindi su username -c “comando” per fare in modo che sia l’utente interessato ad eseguire il comando. Naturalmente essendo system boot (id 0) a chiamare il comando tramite su, la password dell’utente non viene richiesta :) Proviamo se il tutto funziona come dovrebbe:

client$ ./sshfs-server.sh

Se tutto è andato bene non visualizzeremo alcun errore dallo script. A questo punto, la nostra risorsa è montata in dati-server/ e perfettamente accessibile :D ogni qualvolta avviamo il portatile.

convert this post to pdf.<
/a>

lunedì,
marzo 17 2008
Taggato come Arch, Debian, Linux, Tutorial, bash

Scritto da LuNa







CHI E' L'AUTORE?



Casinò Games Loan Casinò Poker Mutui Prestito Language Identification
Twitter Whois
Tumblr Sitemap
TopOfBlogs TopOfBlogs