Minientrada

Dnsmasq: un servidor de DNS sencillo de instalar y configurar para Debian 10

En ocasiones, al comenzar a desplegar una nueva infraestructura, necesitamos contar rápidamente con un DNS server sencillo, liviano y fácil de configurar.

Precisamente es lo que dnsmasq puede ofrecernos, infraestructura de red sencilla de implementar para redes pequeñas.

Contenido
1. Requerimientos
2. Instalación de Dnsmasq
3. Configuración de Dnsmasq
4. Prueba de resolución de nombres
5. Links de referencia

1. Requerimientos

Lo necesario para utilizar esta guía, así como está detallada.

Debian 10
Dnsutils (opcional, solo para hacer pruebas)

2. Instalación de Dnsmasq

Desde la línea de comandos de Debian ejecutamos.

apt install dnsmasq -y

Por defecto dnsmasq reenvía las consultas al servidor DNS configurado en el sistema: /etc/resolv.conf

Vamos a hacer una prueba rápida para ver si ya está funcionando la resolución de nombres a través de dnsmasq ejecutando.

dig debian.org @localhost

Si este comando devuelve algo similar a esto, ya está funcionando.

...
;; ANSWER SECTION:
debian.org. 66 IN A 128.31.0.62
debian.org. 66 IN A 130.89.148.77
debian.org. 66 IN A 149.20.4.15
...

3. Configuración de Dnsmasq

Editamos el archivo de configuración de dnsmasq ejecutando.

vim /etc/dnsmasq.conf

Buscamos estas líneas.

# If you don't want dnsmasq to read /etc/resolv.conf or any other
# file, getting its servers from this file instead (see below), then
# uncomment this.
# no-resolv

Entonces descomentamos la línea # no-resolv.

Y creamos los registros que necesitamos siguiendo este formato:

address=/miregistro.midominio.local/dirección_ip

La configuración final debería verse parecida a este ejemplo.

...
no-resolv
address=/mint.local.domain/192.168.0.12
address=/win10.local.domain/192.168.0.18
address=/router.local.domain/192.168.0.1
...

Vamos a validar la sintaxis de nuestra configuración ejecutando.

dnsmasq --test

Si la salida se ve así, podemos continuar.

dnsmasq: syntax check OK.

Reiniciamos el servicio ejecutando.

systemctl restart dnsmasq

Y verificamos que haya levantado correctamente ejecutando.

systemctl status dnsmasq

Si todo sigue bien, deberíamos ver algo así.

* dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
  Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
  Active: active (running) since Sat 2020-06-27 10:20:39 -03; 21min ago
  ...

4. Prueba de resolución de nombres

Para probar la resolución de nombres voy a utilizar la línea de comandos de Windows. Al final del comando se indica la dirección IP del Debian donde se está ejecutando dnsmasq, en mi caso es: 192.168.0.40.

nslookup mint.local.domain 192.168.0.40

La salida debería ser similar a esta.

...
Name:   mint.local.domain
Address:  192.168.0.12

Ya tenemos el servicio de DNS funcionando.

Espero esta información te haya sido tan útil como a mi.

Para crear esta guía investigué en las páginas que indico debajo.

Dnsmasq

Debian WIKI: dnsmasq

How to install dig on Debian

Advanced Dnsmasq Tips and Tricks

Disclaimer: por favor utilizar este material bajo tu responsabilidad. No aplicar en ambientes productivos sin haberlo probado antes y asegurate de tener siempre una copia de seguridad.

Anuncio publicitario

Instalar WordPress utilizando un contenedor de docker en Debian 10

Esta es simplemente una receta de instalación que resume los pasos necesarios para implementar un WordPress container sobre un Debian 10. Cabe aclarar que esta entrada no tiene la intención de enseñarte acerca de ninguna de estas tecnologías, es simplemente un paso a paso que inicia con una Debian 10 (corriendo virtualizada sobre un VMware Workstation en mi caso) a la que le agrego Docker, luego se adiciona un container de MariaDB y finalmente el container de WordPress.

Instalar Curl

Si aún no tenés instalado curl entonces vas a tener que instalarlo con este comando.

sudo apt install curl

Instalar Docker

Todo listo entonces para instalar Docker.

sudo curl -fsSL https://get.docker.com/ | sh

Si todo va bien vamos a recibir un mensaje similar a este.

If you would like to use Docker as a non-root user, you should now consider adding your user to the «docker» group with something like: sudo usermod -aG docker leandro

Ejecutamos la línea de comando que nos pide. Acordate de modificarla agregando tu propio nombre de usuario.

sudo usermod -aG docker <usuario>

Cerramos nuestra sesión de usuario e ingresamos nuevamente para que se aplique el último comando.

Probar Docker

Vamos a probar que todo vaya bien hasta aquí.

sudo docker run hello-world

Como no tenemos la imagen aún en nuestra Debian, ese comando descarga la imagen y luego la ejecuta. Si todo va bien deberíamos ver una salida similar a esta.

Hello from Docker!

This message shows that your installation appears to be working correctly.

Instalar MariaDB container

WordPress necesita una base de datos.

Creamos primero un directorio para los archivos de la base de datos de WordPress.

sudo mkdir /srv/wordpress && cd /srv/wordpress

Ahora descargamos e instalamos el container de MariaDB con este comando. Deberías modificar la línea para ingresar tu propia contraseña. Yo estoy utilizando esta S3cretP@@5.

docker run -e MYSQL_ROOT_PASSWORD=S3cretP@@5 -e MYSQL_DATABASE=wordpress --name wordpressdb -v "$PWD/database":/var/lib/mysql -d mariadb:latest

Descargar el container de WordPress

Vamos a descargar la imagen de WordPress.

docker pull wordpress

Y finalmente vamos a ejecutar el container de WordPress. Deberías modificar la contraseña ingresando la que utilizaste en el paso anterior, durante la instalación de MariaDB.

docker run -e WORDPRESS_DB_PASSWORD=S3cretP@@5 --name wordpress --link wordpressdb:mysql -p 80:80 -v "$PWD/html":/var/www/html -d wordpress

Configurar WordPress

Abrimos un navegador e ingresamos la siguiente línea: http://192.168.0.40/wp-admin/install.php (deberías modificar ingresando la dirección IP que corresponda en tu caso).

Y simplemente seguimos los pasos de configuración.

Enlaces de interés

Disclaimer: IMPORTANTE utiliza esta información bajo tu responsabilidad, no me hago responsable de los resultados. No aplicar en ambiente productivo (1) sin haberlo probado antes y (2) sin tener copia de seguridad.