DNSmasq en Debian 8

¡Hola nómadas! ¿Como va esa lectura?

Hoy os traemos un artículo más sencillo de digerir: Instalar DNSmasq en Debian 8 (o Debian Jessie).

En nuestro caso, vamos a utilizar como prueba nuestro servidor VPS, que nos servirá más adelante para securizar nuestro WordPress combinándolo con OpenVPN. Ya lo veremos cómo … ahora vamos al lío con DNSmasq.

dnsmasq_cabecera

¿Qué es?

Antes de continuar, ya sabemos que no os gusta mucho, pero un poquito de teoría que no está de más.

DNSmasq es un servicio DNS/DHCP ligero para sistemas basados en GNU/Linux. Esto significa que, con pocos recursos, podemos tener un servidor DNS/DHCP en nuestro VPS con Debian. Además, este servidor hará de caché DNS, para no estar continuamente preguntando a los DNS externos.

Pequeño ejemplo:

* Servidor DNS con DNSmasq tiene IP: 192.168.1.53 *

* Servidor DNS externo de nuestro ISP, pongamos los de google, 8.8.8.8 *

  1. Un ordenador (192.168.1.200) de nuestra organización pregunta por el dominio www.cibernomadas.es pero, es la primera vez que alguien navega por este blog.
  2. 192.168.1.200 le pregunta a 192.168.1.53 ¿cómo llego a cibernomadas.es?
  3. 192.168.1.53 no lo sabe, preguntará a 8.8.8.8 por cibernomadas.es
  4. 8.8.8.8 le dice a 192.168.1.53 que cibernomadas.es está en la IP w.x.y.z (una ip pública)
  5. 192.168.1.53 le dice a 192.168.1.200 que cibernomadas está en la IP w.x.y.z
  6. 192.168.1.200 ya puede enviar peticiones HTTP a la IP w.x.y.z para navegar
  7. Ahora, cuando otro equipo de la red le pregunte a nuestro dns 192.168.1.53 por cibernomadas.es, éste le dirá que en w.x.y.z porque se lo preguntó recientemente a Google (8.8.8.8) y sabe cuál es su IP.
Te puede interesar  Usa y configura SSH "like a boss"

¿Qué conseguimos con esto? Reducir ancho de banda porque cada vez que alguien pregunte por un dominio conocido y que esté en la caché de DNSmasq, no será necesario preguntarle a Google (8.8.8.8).

Instalando DNSmasq

Ya sabéis por dónde tenemos que empezar, ¿verdad? Actualizando nuestro repositorio de paquetes y nuestro sistema. ¡Siempre con cuidado de no romper NADA! 😉

Nos conectamos a nuestro servidor SSH like a boss:

ssh cibernomadas

Una vez dentro, necesitamos hacernos root con su

actualizamos repositorio y sistema con

apt-get update

apt-get upgrade

A continuación, cuando todo el proceso haya finalizado, instalamos dnsmasq

apt-get install dnsmasq

Configurando DNSmasq

Ahora vamos a configurar con ciertos parámetros nuestro servicio DNSmasq para que escuche en una interfaz concreta, definirle los DNS externos a los que consultar, etc.

1) Cambiando dns externos

Tan sencillo como editar el fichero /etc/resolv.conf y modificar los DNS que tiene el sistema. Sencillo, ¿verdad? Nosotros vamos a dejar  los que tenemos por defecto. Vosotros podréis cambiarlos (si queréis) por los que tenga vuestro ISP, los de Google, OpenDNS, etc. ¡A vuestro gusto!

Significa que cuando nuestro servidor DNS no sea capaz de resolver un dominio, éste le preguntará a los dns que tenga configurado en dicho fichero.

2) Añadiendo dominios e IP a los que resuelve

Para nosotros, dado que hemos instalado una VPN vamos a configurar DNSmasq para que resuelva cibernomadas.es por la IP del servidor 10.8.0.1. De esta forma, cuando nos conectemos a la VPN y naveguemos hacia cibernomadas.es, las peticiones no saldrán hacia internet, se quedarán en nuestra red privada virtual. Con esto, podremos securizar un poco nuestro blog como os hemos contado al principio. Pero eso vendrá en otro post.

Te puede interesar  instalar VPN con OpenVPN en un servidor VPS

Vamos a modificar el fichero /etc/hosts y a añadir cibernomadas.es para que quede de la siguiente manera:

fichero hosts

3) Configurando DNSmasq en interfaz tun0 (VPN) OpenVPN

Ahora, para decirle a DNSmasq que únicamente escuche peticiones a través de la interfaz de la VPN (tun0) modificamos el fichero /etc/dnsmasq.conf

Interfaz tun0 dnsmasq

4) Deshabilitando DHCP en DNSmasq

El siguiente paso, como no queremos utilizar el servicio DHCP que nos ofrece, vamos a deshabilitarlo para la interfaz tun0, la única donde estará escuchando DNSmasq:

No DHCP tun0

5) (opcional) No Hosts

Si queremos que nuestro servicio DNS sea únicamente para caché, que no queremos que haga resolución de nombres, tenemos que quitar el comentario (#) de esta linea:

Opcional DNSmasq no hosts

Nosotros lo vamos a dejar así, porque sí queremos que haga resolución de nombres.

6) (opcional) registrar todas las peticiones DNS

Nosotros no lo vamos a hacer, pero si queréis registrar todas y cada una de las peticiones que recibe y pasan por DNSmasq, tenéis que habilitar la siguiente linea (quitar # del comentario):

opcional log peticiones dns

7) Configurando OpenVPN

¿Qué pinta OpenVPN aquí? Es porque tenemos que modificar el fichero server.conf para que, cada vez que se conecte un cliente, le diga qué DNS utilizar. Por defecto, en nuestra instalación, dejamos los de Google. Vamos a cambiarlo:

vi /etc/openvpn/server.conf

y, cambiar las siguientes lineas:

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

para que quede tal cual:

push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DNS 8.8.8.8"

Aplicando cambios

Una vez hecho los pequeños cambios, sólo nos queda reiniciar los servicios DNSmasq y OpenVPN y empezar a hacer las pruebas correspondientes. No os perdáis la siguiente entrada donde pondremos a prueba nuestro servidor DNS.

Te puede interesar  Drone.io CI/CD en Docker y Raspberry Pi

¡Nos vemos pronto muchachada!

 

DNSmasq en Debian 8
Etiquetado en:                             

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *