Duck DNS es un servicio de DNS dinámico gratuito, lo cual quiere decir que nos permitirá registrar un dominio (en realidad subdominio de duckdns.org) y apuntarlo a nuestra ip, por ejemplo, si montamos un servidor casero o contamos con algún proveedor en la nube, teniendo la posibilidad de actualizar la ip si ésta cambia.
Lo mas común es usar este tipo de servicios cuando se desea exponer algún servicio que tengamos en casa y nuestro proveedor de internet nos proporcione solamente una ip dinámica (como lo hacen la gran mayoría de estos)
Actualmente ya existen muchos routers que podemos configurar para que automáticamente actualicen la ip de nuestro dominio con este tipo de servicios, pero aquí vamos a ver como se puede configurar a nivel del sistema operativo linux ( en realidad esta será unicamente una traducción a las instrucciones que proporciona Duck DNS en la sección de instalación ).
Preparación de nuestro dominio.
Lo primero será registrarnos para obtener una cuenta (el servicio proporciona varias opciones, usar un correo electrónico, cuenta de google, twitter, github, etc).
Una vez que iniciamos sesión con una cuenta, se nos mostrará un panel de administración de dominios (tenemos por defecto derecho a 5).
Veremos los siguientes campos:
- account: Es el usuario con el que nos hemos registrado, por lo general nuestro correo electrónico.
- type: el tipo de cuenta, por defecto gratuita.
- token: Este es importante ya que lo usaremos para autenticar las peticiones de actualización de ip.
- token generated: La fecha de generación de nuestro token.
- created date: Fecha de creación de nuestra cuenta.
En la sección de domanis debemos escribir el dominio que deseamos y en seguida hacemos click en el botón de add domain.
Esto agregará el dominio a la tabla de abajo (por defecto pondrá la ip desde la que estamos realizando la operación).
Configuración del nuestro servidor linux.
Ahora vamos a nuestro servidor y realizaremos los siguientes pasos.Lo primero es asegurarnos que está ejecutando el servicio cron, lo podemos revisar con siguiente comando:
sudo systemctl status cron
Ejecutamos el comando curl para asegurarnos que está instalado:
curl
Ahora crearemos un directorio oculto en donde pondremos el script que se encargará de actualizar automáticamente la ip:
mkdir ~/.duckdns
cd .duckdns/
Creamos el script duck.sh:
vi duck.sh
Agregamos la siguiente línea y guardamos:
echo url="https://www.duckdns.org/update?domains=eldominio&token=jkl4d0ad-114e-40ef-ba1d-d217904kjjkuh&ip=" | curl -k -o ~/duckdns/duck.log -K -
Dónde:
- domains=eldominio es nuestro dominio registrado.
- token=jkl4d0ad-114e-40ef-ba1d-d217904kjjkuh es nuestro token generado.
Ahora hay que darle permisos de ejecución:
chmod +x duck.sh
Programamos el cronjob:
crontab -e
Agregamos la siguiente línea y guardamos:
*/5 * * * * ~/.duckdns/duck.sh >/dev/null 2>&1
Ejecutamos el script para actualizar la ip en caso de que no sea la correcta:
./duck.sh
Si todo ha ido bien, podremos acceder a nuestro servidor usando nuestro nuevo dominio, ya sea que lo hagamos por ssh, htttp, https, etc...
Nota. Recuerda configurar correctamente tu firewall para exponer el servicio que desees.
Comentarios