Portada del sitio > Alter > Informática >

No-IP: Instalación y Configuración de un servicio dinámico de DNS

Actualizar nombres de dominio utilizando No-IP

Martes 11 de octubre de 2016, por laura

Conseguir que un mismo servidor web gestione varios dominios es fácil usando un servicio de como el de No-IP. Aquí se explicará cómo instalarlo y configurarlo adecuadamente para que se active en cada reinicio del sistema donde está instalado.

Instalar y Configurar el servicio dinámico de DNS de no-ip.com

Si disponemos de una conexión a Internet mediante IP variable y queremos disponer de un dominio para dar algún tipo de servicio externo(web, ftp, ssh...) necesitaremos de la ayuda de un servicio externo de Dynamic DNS que conecte nuestra dirección IP [1] con el dominio que hayamos creado, facilitando así el acceso a nuestro servidor externamente.

Para ello nos registraremos en alguna de las empresas que realizan este tipo de servicios, y aunque hay otras empresas que gratuitamente también ofrecen el Dynamic DNS, en este caso trabajaremos con no-ip.org. En concreto, el cliente no-ip2 de actualización de DNS dinámico comprueba, de manera continua y silenciosa, si hay cambios en la dirección IP, además de actualizar automáticamente el DNS en No-IP cuando éste cambia.

Una vez en la página web de no-ip.org lo primero que debemos hacer es registrarnos, de este modo podremos crear un dominio gratuito en su web, por ejemplo:

midominio.no-ip.org

En su web explican con detalle este proceso de registro y creación de un dominio gratuito en Cómo crear un dominio que dependa de no-ip.org.

Cuando ya esté el dominio dado de alta, pasaremos a instalar el script que nos actualizará la dirección IP siguiendo estos pasos:

  1. Abrimos una consola o shell en nuestro sistema.
  2. Accedemos al directorio
    cd  /usr/local/src.
  3. Bajamos el archivo comprimido tar.gz de la página : http://www.noip.com/download?page=linux. o bien ejecutamos la descarga desde la línea de comandos:
    wget http://www.noip.com/client/linux/noip-duc-linux.tar.gz
  4. Lo descomprimimos:
    tar xzf noip-duc-linux.tar.gz
  5. Entramos a la carpeta que se ha creado, en este caso:
    cd noip-2.1.9-1/  
  6. Compilamos, para ello escribimos en la consola:
    make.
    • - Si a la hora de ejecutar make, nos surge algún problema y nos sale un error similar a este:
      laura@host:~/noip-2.1.9-1$ make
      gcc -Wall -g -Dlinux -DPREFIX=\"/usr/local\" noip2.c -o noip2
      make: gcc: No se encontró el programa
      Makefile:25: fallo en las instrucciones para el objetivo 'noip2'
      make: *** [noip2] Error 127

      es debido a que nuestro equipo no tiene instalado el ’make’. Si se dispone de una máquina con Linux i686 o un x86_64, en la carpeta no-ip-2.1.9-1/binaries/ se encuentran los binarios que necesitaremos en función del tipo de procesador que tenga nuestro ordenador. Una vez sepamos cual nos corresponde copiaremos el binario correspondiente en el directorio no-ip-2.1.9-1 en el que estamos trabajando:
      cp binaries/noip2-TIPO noip2

  7. A continuación ejecutamos en la shell el comando make install con permisos de superusuario root. Al ejecutar make install el programa nos hará algunas preguntas para preparar los archivos que instalará en nuestro sistema. Esta es la salida del instalador por la consola:
    laura@host:~/noip-2.1.9-1$ sudo make install
    [sudo] password for laura:
    if [ ! -d /usr/local/bin ]; then mkdir -p /usr/local/bin;fi
    if [ ! -d /usr/local/etc ]; then mkdir -p /usr/local/etc;fi
    cp noip2 /usr/local/bin/noip2
    /usr/local/bin/noip2 -C -c /tmp/no-ip2.conf

    Auto configuration for Linux client of no-ip.com.

    Multiple network devices have been detected.

    Please select the Internet interface from this list.

    By typing the number associated with it.
    0        enp2s0
    1        wlp3s0
    0
    Please enter the login/email string for no-ip.com  usuario@correo.com
    Please enter the password for user 'usuario@correo.com'  ********

    Only one host [midominio.no-ip.org] is registered to this account.
    It will be used.
    Please enter an update interval:[30]  5
    Do you wish to run something at successful update?[N] (y/N)  n

    New configuration file '/tmp/no-ip2.conf' created.

    mv /tmp/no-ip2.conf /usr/local/etc/no-ip2.conf

Configuración del cliente

Con este proceso ya tenemos configurado el cliente de no-ip. Si por alguna razón quisiéramos volver a repetir el cuestionario y rehacer el archivo de configuración podremos realizarlo a posteriormente ejecutando:

/usr/local/bin/noip2 -C

donde la opción -C crea desde cero un archivo de configuración por defecto.

Durante la ejecución de este comando nos pedirá el usuario y la contraseña que nos da acceso al servicio de No-IP, así como los nombres de dominio que queremos actualizar. Hay que tener cuidado al responder la pregunta: “Do you wish to update all hosts?”, es decir, "Desea actualizar todos los nombres de dominio?". Al responder afirmativamente todos los dominios que tengamos registrados con la misma cuenta apuntarán todos hacia el mismo lugar, hacia la misma IP, lo cual puede generarnos problemas si los demás dominios debieran apuntar hacia otras direcciones IP.

Cuando termina la ejecución de este script el cliente de no-ip está instalado y configurado. Tan solo resta ejecutar el script mediante este comando:

sudo /usr/local/bin/noip2

Así se activará el programa de No-IP para actualizar la ip de los dominios que hayamos configurado.

Guía rápida de uso del script para noip

Este es el listado de operaciones más utilizadas:

/usr/local/bin/noip2 -C    configura el cliente

/usr/local/bin/noip2         ejecuta el cliente

/usr/local/bin/noip2 -S     despliega información acerca de los clientes en ejecución

/usr/local/bin/noip2 -D pid   cambia el estado de depuración para el pid del cliente

/usr/local/bin/noip2 -K pid   termina el pid del cliente

/usr/local/bin/noip2 -M -c archivo  si tiene más de un dispositivo de acceso a internet

Automatización de la actualización de la IP

Además si queremos que la actualización se realice automáticamente en cada reinicio del sistema para mantener siempre actualizada IP, deberemos situar en el arranque el script apropiado a nuestro sistema operativo.

¿Qué es y cómo funciona el proceso de arranque en Linux?

En Linux el proceso de arranque es aquel proceso mediante el cual se inicializa el sistema operativo y se asignan los recursos de la máquina a los demás programas que se ejecutan.

Hasta hace poco el sistema de arranque en Linux estaba dirigido por el llamado System V. Actualmente, al menos en Debian Stretch (testing), está siendo utilizado el sistema systemd. Con este cambio de proceso de arranque, el método para instalar un script en el arranque de la máquina ha cambiado en gran medida.
¿Cómo saber si se tiene uno o el otro instalado?
Sencillo, en una shell escribimos el siguiente comando:
$ dpkg -S /sbin/init
Cuando se trata de un sistema systemd la salida es como esta:
systemd-sysv: /sbin/init

Por el contrario si nuestro sistema todavía funciona con System V, en la shell veremos algo similar a esto:
SysVinit-2.86-17.el5

Instalando noip2 en sistemas con systemd

El sistema systemd es un administrador de sistemas y servicios para los sistemas operativos Linux. Cuando es ejecutado se ocupa de cargar los controladores, montar el sistema de archivos e inicializar todos los servicios configurados en el sistema. Para instalar en el arranque el script de noip2, en este sistema systemd deberemos seguir los siguientes pasos:

  1. Accedemos a la cuenta del usuario root.
  2. Accedemos al directorio : root@host:/~# /etc/systemd/system/
  3. Creamos un nuevo archivo de texto: touch noip2.service
  4. Editamos el fichero y copiamos las siguientes líneas de código:
  5. Guardamos y salimos del editor.
  6. Llamamos al systemd para que lo reconozca como script de inicio:
    root@host:/etc/systemd/system# systemctl enable noip2.service
  7. Arrancamos el servicio con:
    root@host:/etc/systemd/system# systemctl start noip2.service
  8. Verificamos el estado del servicio con el comando: root@host:/etc/systemd/system# systemctl status noip2.service
    cuya salida por la shell debe parecerse a esta:

Configurando noip2 en sistemas con System V

Hasta hace poco el sistema de arranque típico en Linux era el sistema conocido como System V. En él Linux empezaba arrancando el proceso init, cuyo fichero de configuración era /etc/inittab, donde se determinaba qué tipo (runlevel) de arranque se requería en cada caso y por lo tanto el orden de ejecución de los diversos scripts que tengamos instalados en el sistema operativo. Por ello, para estos sistemas operativos que aún estén basados en System V, los pasos a seguir serán los siguientes:

Antes de guardar el script, deberemos saber donde se ubican los scripts de arranque de nuestro sistema operativo. Para localizar dicho directorio hay dos opciones, una es ejecutar en la consola el siguiente comando:

grep initdefault /etc/inittab |awk -F: '{print $2}'

Este comando nos dará un número, X, en el caso de ser Linux/Debian, el resultado es un 2, esto quiere decir que el directorio de inicio corresponde con el /etc/rc2.d.

Alternativamente también se puede leer con un editor el archivo /etc/inittab y buscar las líneas:

# The default runlevel.
id:2:initdefault:

Como vemos el número de runlevel que hemos encontrado es exactamente el mismo que antes.

En otros sistemas, el directorio donde se guardan los scripts a ejecutar en cada reinicio de la máquina puede variar, es posible que este directorio esté en otras ubicaciones como por ejemplo:
/etc/init.d/rcX.d
o quizá en
/sbin/init.d/rcX.d  

donde la X se ha de sustituir por el resultado obtenido anteriormente para hallar el directorio de inicio.

Una vez localizado el directorio de inicio, accedemos a él y creamos un archivo el cual debe contener en su interior estas líneas:

################################
#!/bin/sh
#./etc/rc.d/init.d/functions    #descomente/modifique para su killproc
case "$1" in
 start)
   echo "Iniciando noip2..."
   /usr/local/bin/noip2
 ;;
 stop)
   echo -n "Apagando noip2..."
#   killproc -TERM /usr/local/bin/noip2
for i in `noip2 -S 2>&1 | grep Process | awk '{print $2}' | tr -d ','`
 do
   noip2 -K $i
 done
 ;;
 *)
   echo "Uso: $0 {start|stop}"
   exit 1
esac
exit 0
##################################

Cerramos y guardamos un nombre que sea fácil de identificar como que pertenece al script de noip2. Este script lo deberemos situar en el directorio de inicio que corresponda al runlevel de nuestra máquina. Es decir, si sabemos que el runlevel de inicio es 2, deberemos situar dicho script en el directorio de inicio: /etc/init.d/rc2.d para el caso de Debian.

¿Un mensaje, un comentario?

moderación a priori

Aviso, su mensaje sólo se mostrará tras haber sido revisado y aprobado.

¿Quién es usted?
Añada aquí su comentario
  • Este formulario acepta los atajos de SPIP, [->url] {{negrita}} {cursiva} <quote> <code> y el código HTML. Para crear párrafos, deje simplemente una línea vacía entre ellos.

= Frases Olvidadas =

Recopilaci

http://frasesolvidadas.es