Sincronización de archivos y directorios con un Sheevaplug como servidor

  • Plug Computer

El Plug Computer se basa en la idea de tener un ordenador de enchufe como su propia traducción indica. Estos miniordenadores son de tamaño sumamente reducido, pero su gran utilidad les hace atractivos para instalarlos en oficinas pequeñas o en viviendas, ya que tienen un coste reducido y su consumo es mínimo. Están diseñados para ser utilizados como servidores pequeños, como por ejemplo:
  1. Alojar paginas web con poco trafico.
  2. Servidores de archivos (FTP)
  3. Acceso remoto


  • Sheevaplug

Para comentar lo que es un sheevaplug dejamos dos direcciones web donde viene bien explicado sus características y sus funcionalidades:

Sheevaplug en Wikispaces - Wiki dedicada al Sheevaplug
Sheevaplug en Wikipedia - Wiki dedicada al Sheevaplug


  • DNS Dinámico

El DNS Dinámico se trata de un servicio, por el cuál podremos actualizar en tiempo real la información de un servidor de nombres de dominio(DNS). Este servicio nos permitirá la asignación de una IP a un nombre de dominio. Al ser una asignación dinámica, podremos cambiar la dirección tantas veces como queramos ya que el dominio se actualizará continuamente. Esto nos permite utilizar por ejemplo un Sheevaplug como servidor portátil, y poderlo conectar a cualquier toma de Internet sin necesidad de tener que configurar ningún dominio cada vez que se realiza el cambio.
Además, otra opción que nos da el DNS Dinámico es poder acceder mediante escritorio remoto a través de un dominio, y sin necesidad de tener la necesidad de saber la dirección IP del equipo remoto.
Para realizar estas asignaciones dinámicas, habitualmente, se utilizan clientes DDNS (Dynamic Domain name System), aunque también cabe la posibilidad de realizar está asignación a través del router. Esta documentación esta centrada en la asignación dinámica para dispositivos portátiles, ya sea un equipo portátil o un Sheevaplug.


  • Ddclient VS Dyndns-client

Tanto Ddclient como Dyndns-client son clientes de DNS dinámicos. Ambos van registrando la IP del domino cada cierto tiempo. Cuando realizamos un cambio de IP o nuestro ISP nos cambia la IP, ambos clientes envían una señal al servidor, y el propio servidor se encarga de registrar la nueva dirección IP. Esta IP se le asigna al dominio que tengamos configurados en el cliente.

Las principales ventajas que nos ofrece el cliente Ddclient contra Dyndns son:
  1. Sencillez en la instalación.
  2. Fácil configuración.
  3. Servicio mejorado: El paquete dyndns da problemas con las cuentas gratuitas en www.dyndns.com, denegandote el servicio de DNS dinámico debido al gran cambio de IPs que realiza.

También hay que decir que existen más clientes para la asignación dinámica de dominios, como por ejemplo, inadyn que es un cliente multiplataforma.


  • Instalación y funcionamiento de ddclient

Antes de empezar a instalar nada, debemos registrarnos por ejemplo en www.dyndns.com, obtener un usuario, una contraseña y un dominio. Esto nos permitir elegir y administrar el dominio, mediante interfaz web. Cuando los hayamos obtenido. Vamos al equipo que queramos utilizar como servidor e instalamos el paquete ddclient. (La instalación se realizará mediante un equipo Sheevaplug, instalado con Debian Squeeze y a través de consola). Iremos a sistema y escribimos.
root@debian:~# aptitude install ddclient
Una vez instalado el cliente, iremos al fichero de configuración. Normalmente este fichero se encontrará situado en /etc/ddclient.conf. Para ver el fichero de configuración utilizaremos nano.
root@debian:~# nano /etc/ddclient.conf
Obtendremos un fichero de la siguiente manera:
# Configuration file for ddclient generated by debconf
# /etc/ddclient.conf
 
protocol=dyndns2
use=web, web=checkip.dyndns.com, web-skip='IP Address'
server=members.dyndns.org
login= *********
password='*********'
Fully Qualified Domain Name ************
Los únicos campos que deberemos cambiar serán los últimos. Como vemos es su configuración es muy simple, solo deberemos configurar el usuario (login), la contraseña (password) y el dominio (Fully Qualified Domain Name) que queremos que sea asigne dinámicamente. (Sustituir los * por la información del usuario)

Una vez configurado, iniciaremos el servicio.
root@debian:~# /etc/init.d/ddclient start
Una forma fácil de comprobar el correcto funcionamiento del dominio es realizando un ping al nombre de dominio, que se nos ha asignado.
root@debian:~# ping dominio.dyndns-home.com
Si vemos que el ping responde es que tenemos correctamente realizada la instalación y la configuración del paquete.


  • Rsync

Rsync es un servicio utilizado para la sincronización de archivos y directorios. Este servicio fue creado para la transferencia eficiente de datos y para minimizar el volumen de los datos transferidos. Esto se puede realizar ya que divide el archivo en bloques. Aunque disminuyamos el ancho de banda, se aumenta el consumo de CPU en ambos equipos.
Rsync actúa como un servidor escuchando en por el puerto 873, pudiendo servir archivos de forma nativa o vía escritorio remoto mediante SSH. Habitualmente es utilizado para realizar backup junto con cron que sirve para automatizar tareas en un sistema.


  • Instalación y funcionamiento de Rsync

Habitualmente el paquete Rsync viene instalado por defecto dentro del conjunto del sistema operativo, por lo que, seguidamente pasamos a configurar el servicio. Para ello tendremos que configurar el fichero alojado en /etc/rsync.conf. Para ello lo abrimos con nano.
root@debian:~# nano /etc/rsyncd.conf
Obtendremos un fichero de la siguiente forma:
use chroot = no
max connections = 1 #(por defecto 5)
secrets file = /etc/rsyncd.secret
log format = %h %o %f %l %b
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
read only = no
list = yes
uid = root
gid = root
 
[publico]
comment = Archivos publicos del sheevaplug
path = /home/publico/
 
[privado]
path = /home/privado/
comment = Archivos para compartir del Sheevaplug
auth users = usuario
En el tentemos que configurar algunos parámetros, para que funcione como nosotros queramos.
En primer lugar comentaremos las configuración para proteger nuestro servidor:
  1. No dejar que la utenticación de Rsync se realice como administrador, por ello en la línea de use chroot pondremos la opción de no.
  2. No permitir muchas conexiones entrantes. Esto nos asegurará que no se sature el servidor por conexiones entrantes. Max connections = 1.
  3. Configurar un fichero secreto, donde albergar los posibles usuarios y sus contraseñas. Para ello tendremos que configurar la ubicación del fichero secret file.
En segundo lugar configuraremos los directorios a las cuales se podrá acceder para la sincronización. Crearemos una parte pública, sin necesidad de autenticación, como una privada, con autenticación de usuario.

Parte publica:
En esta parte crearemos una sección en la que se muestra un comentario de la zona a la que se ha accedido, y en la que se configura el path del directorio y subdirectorios a los que se puede acceder.

Parte privada:
Igual que en caso anterior se crea una sección, pero en este caso se necesita autenticación para poder sincronizar los archivos. Para ello es necesario, poner uno o varios usuarios, que se hayan configurado con anterioridad en el fichero secret_file.

Una vez explicado esto, continuaremos la instalación configurando el fichero rsyncd.secret, para incluir los usuarios y las contraseñas para acceder a la parte privada. El fichero lo abriremos de la siguiente forma.
root@debian:~# nano /etc/rsyncd.secret
Obtenemos un fichero de la siguiente forma, en la debemos incluir el usuario y la contraseña.
usuario:pass
A continuación realizaremos varios ejemplos para ver que el servicio que hemos instalado funciona correctamente. Primeramente, visualizaremos, las zonas accesibles que hemos configurado para ello realizaremos, la siguiente operación.
iker@iker-Studio-XPS-1340:~$ rsync url-del-dominio::
publico            Archivos publicos del sheevaplug
privado            Archivos para compartir del Sheevaplug
De esta forma vemos que estan configuradas dos secciones una privada y una pública. Para ver sus contenidos de ambas secciones tendremos que añadirle lo siguiente a la invocación anterior:
iker@iker-Studio-XPS-1340:~$ rsync lsc2011.dyndns-home.com::privado/
Password:
drwxr-xr-x        4096 2011/05/01 14:31:39 .
-rw-r--r--           7 2011/05/01 14:31:39 prueba.txt
 
iker@iker-Studio-XPS-1340:~$ rsync lsc2011.dyndns-home.com::publico/
drwxr-xr-x        4096 2011/05/01 17:11:02 .
-rw-r--r--           7 2011/05/01 17:11:02 prueba.txt
Finalmente para realizar una sincronización de archivos en ambas secciones realizaremos la siguiente llamada. Para realizar una sincronización de archivos de fuera del servidor hacia dentro seria de la siguiente forma:
rsync /path_origen/* rsync://url-dominio/seccion/
Para realizar la sincronización de archivos desde dentro del servidor hacia fuera seria de la siguiente manera:
rsync url-dominio::seccion/* /path_destino/


  • Presentación Power Point




  • Enlaces Externos e información adicional


Plug Computer - Wiki y Foro sobre Plug Computer
Sheevaplug en Wikispaces - Wiki dedicada al Sheevaplug
Sheevaplug en Wikipedia - Wiki dedicada al Sheevaplug
Servicio de DNS dinámico - Página web dedicada al servicio de DNS Dinámico
DNS Dinámico - Wiki sobre DNS Dinámico
Rsync - Wiki sobre Rsync