sábado, 23 de marzo de 2013

Sincronizar nuestra ip con un host gratuito de noip

Muchas veces, necesitamos tener acceso a nuestra red desde Internet. Para ello existe una forma muy simple de conseguirlo y gratuita. De entre todos los servicios similares para esto, siempre he usado noip.

Primero que nada tenemos que crearnos una cuenta en noip y generar un dominio disponible, el mio es de la forma ****.no-ip.info. En la mayoría de conexiones ADSL, la ip es dinámica, por tanto es muy útil usar este tipo de servicio, para tener acceso a tu red.

Una vez tenemos la cuenta creada, necesitamos de algún modo comunicarle cada cierto tiempo al servicio nuestra ip, por si cambia. Para ello, se puede usar un software como el que proporciona noip o bien, creo que mucho más divertido, hacerlo nosotros. Para ello he creado un simple script en bash que hace el cometido. Basicamente es un bucle infinito que le comunica la ip al servidor de noip y espera 300 segundos. Esto se repite de forma indefinida.

El script que hace esto es:


#!/bin/sh
USER="" #Aquí va nuestro usuario, en el caso de noip, es el correo electrónico
PASS="" #Aquí la contraseña
HOSTNAME="" # El host que hemos generado
while [ true ]
do
wget -O - /etc/retornoCambioIp --user=$USER --password=$PASS http://dynupdate.no-ip.com/nic/update?hostname=$HOSTNAME 2> /dev/null
sleep 300
done

Si lo guardamos con el nombre de actualizaIP.sh, le deberíamos dar permisos de ejecución de la forma:

chmod u+x actualizaIP.sh

y finalmente si queremos que arranque cada vez que iniciamos el sistema se podría poner al fichero $HOME/.bashrc (este fichero, se ejecuta cada vez que hacemos login con el usuario). Por tanto en este fichero añadiríamos al final del mismo una línea que ponga ./actualizaIP.sh


Aunque esto último no es del todo seguro, es rápido de hacer pero no es del todo seguro. Voy a poner una alternativa que le da más seguridad, ya que como hemos visto tenemos que guardar la contraseña en texto claro. Así que llegados a este punto, sería mucho mejor, guardar el script en /etc/default,

sudo mv actualizaIP.sh /etc/default

Luego asegurarnos que el propietario sea root, de la forma

sudo chown root:root /etc/default/actualizaIP.sh

y finalmente quitarle todos los permisos que no son necesarios:

sudo chmod o-r,o-w,o-x /etc/default/actualizaIP.sh

Una vez hecho esto, lo ponemos en /etc/rc.local (es el último script del sistema de inicialización que se ejecuta).

IMPORTANTE: lo tenemos que poner en ese fichero de la siguiente forma:

/etc/default/actualizaIP.sh &

No se debe olvidar el &, sino el sistema no iniciaría, ya que rc.local nunca terminaría de ejecutarse.

Con esto tendríamos el problema solucionado, lo correcto debería ser convertir este script en un demonio de inicialización, pero para salir del paso, con esto me sirve.





No hay comentarios:

Publicar un comentario