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