miércoles, 14 de diciembre de 2016

Actualizaciones dinamicas de DNS mediante DHCP



DNS Dinamico

Es el mecanismo mediante el cual modificamos la información contenida en los ficheros de registros de recursos de las zonas definidas como primarias en un servidor DNS, mientras este se encuentra en ejecución, sin tener que editar ningún fichero de zona.

Mediante este sistema podemos configurar el servidor DNS para que reciba actualizaciones dinámicas que el servidor DHCP le enviará cuando asigne una direccion IP a un cliente.

El cliente informará al servidor DHCP de su cual es su nombre y el servidor DHCP le cede una IP. Por tanto, el servidor DHCP cuenta con la información tanto de la IP como del nombre del equipo cliente, y puede entonces solicitar al sercidor DNS que incluya un registro tipo A que asocie ese nombre con la IP en el dominio de resolucion directa y la IP con el nombre en un registro PTR en la zona de resolución inversa.

Por ejemplo, si el cliente se llama portatil y la IP que le ha sido asignada dinamicamente mediante DHCP es 192.168.100.199 dentro de la red 192.168.100.0/24 y el dominio aulaser.com entonces se deberia añadir un registro de tipo A a la zona de resolucion directa del dominio y un registro de tipo PTR en la zona de resolcion inversa.


En aulaser.com.

portatil IN A 192.168.100.199

En 100.168.192.in-addr.arpa.

199 IN PTR portatil.aulaser.com.

Para que una zona sea dinamica basta con configurar que permite actualizaciones como opcion en la definicion de la zona.

allow-update { }

Si la zona es dinamica estará sufriendo modificaciones, y para asegurarnos que no se pierden cuando queramos realizar nuevas modificaciones manuales en el fichero debemos previamente congelar la zona.

Paso 1. Crear una clave dnssec

Mediante el siguiente comando:

sudo dnssec-keygen -K /etc/bind -a HMAC-MD5 -b 128 -n USER dhcpupdate

opciones:
K - directorio donde guarda los ficheros con las claves
a - algoritmo
b - tamaño en bits
n - tipo de clave
y finalmente el nombre de la clave

Cuando termina nos hará un eco del nombre del fichero .key

Kdhcpupdate.+157+05787.key

Lo abrimos para ver la clave y el token

dhcpupdate. IN KEY 0 3 157 isgrJD32SZV0f0zaWIS7pw==


Paso 2. Configurar BIND

Ahora configuraremos el named.conf de BIND

Añadimos la siguiente entrada

key dhcpupdate {
    algorithm hmac-md5;
    secret "isgrJD32SZV0f0zaWIS7pw==";
    };

Podemos hacerlo desde la opcion DNS Keys en Webmin

Paso 3. Permitir actualizacion a las zonas

En el fichero named.conf.local añadir la opcion

allow-update { dhcpupdate };

dentro de la configuracion de la zona



zone "aulaser.com" {
    type master;
    file "/var/lib/bind/aulaser.com.hosts";
    allow-transfer {
        192.168.100.11;
        };
    allow-update {
        key dhcpupdate;
        };
    };

zone "100.168.192.in-addr.arpa" {
    type master;
    file "/var/lib/bind/192.168.100.rev";
    allow-update {
        key dhcpupdate;
        };
    };

No olvidarse de actualizar la configuracion del servidor

Paso 4. Prueba

Para probar que el servidor DNS permite actualizaciones automaticas de DNS
tenemos el comando

nsupdate

lo usaremos en modo interactivo y le iremos enviando comandos

>server servidor.aulaser.com
>key dhcpupdate isgrJD32SZV0f0zaWIS7pw==
>zone aulaser.com
>update add prueba.aulaser.com. 3600 IN A 192.168.100.199
>send
>zone 100.168.192.in-addr.arpa
>update add 199.100.168.192.in-addr.arpa. 3600 IN PTR prueba.aulaser.com.
>send

Salimos del programa nsupdate  con el commando
>quit

y hacemos un

>dig prueba.aulaser.com

y un

>dig -x 192.168.100.199


Paso 5. Configuración de DHCP

En dhcpd.conf

ddns-update-style interim;
update-static-leases on;

key dhcpupdate {
    secret isgrJD32SZV0f0zaWIS7pw==;
    algorithm hmac-md5;
    }

# Zona de resolucion directa aulaser.com
zone aulaser.com. {
    primary servidor.aulaser.com;
    key dhcpupdate;
    }

# Zona de resolucion inversa de aulaser.com - red 192.168.100.0/24
zone 100.168.192.in-addr.arpa. {
    primary servidor.aulaser.com;
    key dhcpupdate;
    }


# Aula de SER
subnet 192.168.100.0 netmask 255.255.255.0 {
    allow unknown-clients;
    allow client-updates;
    ddns-rev-domainname "in-addr.arpa";
    ddns-domainname "aulaser.com.";
    default-lease-time 60;
    ddns-updates on;
    option domain-name-servers 192.168.100.254;
    option domain-name "aulaser.com";
    option broadcast-address 192.168.100.255;
    option subnet-mask 255.255.255.0;
    option routers 192.168.100.254;
    pool {
        range 192.168.100.101 192.168.100.150;
        }

    }


Los cambios de IP no surtiran efecto inmediato ya que se guardan las resoluciones en cache local de los equipos, para vaciar/limpiar la cache ejecutamos el comando

>sudo systemd-resolve --flush-caches


Fuentes:

http://www.semicomplete.com/articles/dynamic-dns-with-dhcp/#id2255993

https://lani78.com/2012/07/23/make-your-dhcp-server-dynamically-update-your-dns-records-on-ubuntu-12-04-precise-pangolin/

https://lani78.com/2008/08/12/dhcp-server-update-dns-records/

http://www.zytrax.com/books/dns/ch9/dhcp.html

http://www.cyberciti.biz/faq/howto-linux-renew-dhcp-client-ip-address/

https://askubuntu.com/questions/2219/how-do-i-clear-the-dns-cache






viernes, 7 de octubre de 2016

Iniciar, detener, recargar la configuración y mostrar el estado actual de servidor DNS BIND

Ademas de poder hacer todas estas acciones desde webmin, debemos saber que podemos realizarlas desde la linea de comandos.
Para ello tenemos 2 opciones:
  1. Utilizar el comando service bind opcion
  2. Mediante la orden  /etc/init.d/bind9 opción

Como opciones tenemos:
- start: iniciar el servicio DNS
- stop: detener el servicio DNS
- restart: reiniciar el servicio DNS
- reload: recargar los cambios habidos en el fichero de configuración y los ficheros de zonas
- status: Ver información del estado actual del servicio

Fuente:
http://www.cyberciti.biz/faq/start-stop-restart-bind9-linux-command/

Ver información de log relacionada con la actividad del servidor BIND

El servidor DNS Bind registra todos sus mensajes de actividad en fichero /var/log/syslog del sistema.

Podemos ver las ultimas lineas de este fichero desde webmin si desplegamos el grupo System y vamos a la opción System logs. Una vez ahí, elegimos el enlace que dice "ver" de la fila correspondiente al fichero syslog.

Tambien podemos ejecutar el comando cat para visualizar el contenido de un fichero

>cat /var/log/syslog

o abrirlo en un editor de texto con

>leafpad /var/log/syslog

Y buscar información detallada sobre los posibles errores que puedan estar ocurriendo en el servicio.

El servidor local de DNS bind9 no resuelve consultas DNS externas

El problema radica en que tenemos habilitado el DNSSEC en la configuración inicial tras la instalación de BIND.

Para deshabilitarlo debemos acceder al fichero de configuración /etc/bind/named.conf.options y cambiar las opciones de dnssec para que queden así:

dnssec-enable no;
dnssec-valitation no;

Aplicar la configuración y listo.

Fuente:
https://spectlog.com/content/BIND_named:_error_(no_valid_DS)_resolving

domingo, 11 de septiembre de 2016

Como comprobar si tenemos instalada una determinada herramienta en nuestro Lubuntu e instalarla

En ocasiones debemos hacer uso de una herramienta o aplicación, pero es posible que está no se encuentre por defecto instalada en nuestro equipo.

Para gestionar las aplicaciones tenemos intaladas en nuestro sistema podemos hacer uso de una herramienta grafica como el gestor de paquetes de Synaptic.


Una vez en ella podemos buscar proporcionado el nombre de la herramienta, en este caso introducimos dconf.

La casilla de verificación nos indica si ya la tenenmos instalada o por el contrario todavia no se encuentra disponible en nuestro equipo. Por tanto, si marcarmos y seguidamente hacemos click en el boton de Aplicar se prodecera a la descarga e instalación de los paquetes necesarios para instalar dicha herramienta.

Cómo reestablecer una notificación del Network Manager

Que pasa si haceis click en el boton de "No volver a mostrar este mensaje de nuevo" que el Network Mamager de Ubuntu muestra cuando, por ejemplo, se establece o se deshabilita una conexión de red?

Obviamente, la notificación no volverá a aparecer cuando se vuelva a repetir la misma operación. Pero y si queremos que se vuelva a mostrar de nuevo:

En ese caso si lo que hemos deshabilitado es la notificación de establecimiento de conexiones entonces debemos ejecutar el siguente comando:

gsettings set org.gnome.nm-applet disable-connected-notifications "false"

Si, en cambio hubiéramos desabilitado la notificación de desconexiones entonces el comando es el siguiente:

gsettings set org.gnome.nm-applet disable-disconnected-notifications "false"


También podemos apoyarnos en una herramienta de configuración gráfica, que nos hará esta tarea mucho más sencilla. La herramienta es dconf-editor

El primer paso será comprobar si la tenemos instalada en nuestro equipo, y si no instalarla.
Comprobar si tenemos una apliacion instalada e instalarla con un gestor de paquetes.

Una vez abierta la aplicación dconf-editor tenemos que navegar por el arbol de configuración bajando por la rama org > gnome > nm-applet y y desmarcar los checkboxes que queramos.


Fuente: http://askubuntu.com/questions/150406/how-do-i-re-enable-disabled-network-notifications-in-gnome-shell