#4sysadmins

Inicio » GNU/Linux » Compartir archivos en Linux mediante HTTP

Compartir archivos en Linux mediante HTTP

Últimas Entradas

Follow #4sysadmins on WordPress.com

 

¿Porqué quizás necesitemos compartir archivos mediante HTTP?

Normalmente recurrimos a compartir archivos con http cuando instalar y configurar un servidor SAMBA o NFS es demasiado “costoso” para nuestros objetivos, por ejemplo, estamos en casa o en la oficina y algún compañero nos pide que le compartamos una serie de archivos con los que necesita trabajar. El adjuntarlo a un correo se hace casi imposible por el peso de estos, no tenemos acceso a los recursos compartidos de la empresa e instalarnos SAMBA o montar un NFS (si es que nuestro compi utiliza Linux como nosotros) se vuelve demasiado “jaleoso” para la ocasión, entonces, lo mejor será improvisar con HTTP.

Podemos compartir archivos mediante HTTP de diferentes maneras, todas igual de rápidas y sencillas. Aquí veremos algunas de ellas.

 

Compartir archivos con XAMPP

Si incluso instalar y configurar un apache o nginx (en caso de que no lo esté ya) en nuestro ordenador es demasiado tedioso, (queremos compartir ya!), quizás XAMPP nos ayude.

IMPORTANTE: Existen versiones bastante mas nuevas que la que vamos a utilizar aquí (1.6.6/24MB) de echo a día de escribir esta entrada la mas reciente es la 5.6.11/128MB pero me parece que es demasiado pesada y con demasiadas funcionalidades que no necesitaremos. Ya escribiré otro post con todas las ventajas, instalación y configuración de las nuevas versiones, pensadas para instalar sobre ella un WordPress, Joomla, etc..

Descargamos… // web descarga http://sourceforge.net/projects/xampp/files/XAMPP%20Linux/

$ cd /opt
$ sudo wget downloads.sourceforge.net/project/xampp/XAMPP%20Linux/1.6.6/xampp-linux-1.6.6.tar.gz

Instalamos…

$ sudo tar xf xampp-linux-1.6.6.tar.gz

Compartimos…

Lo que vamos hacer es indicar en el archivo de configuración de apache que la raíz del servidor sea la carpeta que queremos compartir, de esta forma podremos acceder a la carpeta y a cualquier subcarpeta de esta, para esto hacemos lo siguiente:

$ sudo /opt/lampp/etc/httpd.conf

Y modificamos:

DocumentRoot "/carpeta/a/compartir"
<Directory />
Options Indexes FollowSymLinks ExecCGI Includes
</Directory>

Iniciamos el servidor…

$ sudo /opt/lampp/lampp start
Starting XAMPP for Linux 1.6.6...
XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
XAMPP for Linux started.

Accediendo al contenido compartido…

http://localhost

 

Compartir archivos con SimpleHTTPServer de Python

Quizás la forma mas rápida, solo tenemos que ir al directorio donde tenemos los archivos a compartir, ejecutar el comando y acceder a la ip por el puerto 8000.

$ cd /home/nebul4ck/compartido
$ python -m SimpleHTTPServer

Accedemos…

http://localhost:8000

 

Compartir archivos mediante webfs

Webfs es un servidor web muy simple que nos permitirá compartir contenido a través del protocolo HTTP. Su web oficial es http://linux.bytesex.org/misc/webfs.html

Nos permitirá varias opciones como por ejemplo compartir un directorio de nuestro equipo con tan solo ejecutar un comando, descargar el contenido a través del comando wget desde la terminal, correrlo como demonio (background), hacer que sea necesario ingresar un usuario/contraseña y ejecutarlo bajo SSL.

Descargando e instalando webfs…

$ cd /opt
$ sudo wget https://www.kraxel.org/releases/webfs/webfs-1.21.tar.gz
$ sudo tar xf webfs-1.21.tar.gz
$ cd webfs-1.21.tar.gz
$ sudo make
$ su -c "make install"

Desplegando la ayuda…

$ webfsd -help

Iniciando webfs en segundo plano

$ webfsd -r /home/nebul4ck/compartido/

Nota: Basta con añadir -F para hacerlo correr en primer plano. Podremos matar el servidor con Ctrl+c

Accediendo al contenido compartido…

http://localhost:8000

Nota: Por defecto corre en el puerto 8000 podemos modificarlo con la opción -p <puerto>

Iniciando webfs con usuario/contraseña…

$ webfsd -r /home/nebul4ck/compartido -b osiris:l4m3t0b1en

Nota: El usuario y contraseña no tiene porque coincidir con ninguno del sistema. Las credenciales se quedan cacheadas.

Iniciando bajo SLL…

Lo primero es tener un certificado, así que si no lo tenemos pues lo creamos:

$ cd
$ mkdir mykey;cd mykey

Generamos llave RSA (sin contraseña, opcional):

$ openssl genrsa -out myserver.key 1024

Creamos la petición de certificado:

$ openssl req -new -key myserver.key -out myserver.csr
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:Andalucia
Locality Name (eg, city) []:Sevilla
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:myserver
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Nota: Lo anterior es opcional, si lo vais a rellenar pues poner lo que se os antoje :D

Creamos un certificado válido para 360 días y firmado por nosotros mismo:

$ openssl x509 -req -days 360 -in myserver.csr -signkey myserver.key -out myserver.crt

Ahora levantamos webfsd:

$ webfsd -S -C /home/alberto/mykey/myserver.crt -r /home/nebul4ck/compartido

Y finalmente accedemos:

https://localhost:8000

 


Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: