¡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.
Tabla de contenidos
¿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 *
- 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.
- 192.168.1.200 le pregunta a 192.168.1.53 ¿cómo llego a cibernomadas.es?
- 192.168.1.53 no lo sabe, preguntará a 8.8.8.8 por cibernomadas.es
- 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)
- 192.168.1.53 le dice a 192.168.1.200 que cibernomadas está en la IP w.x.y.z
- 192.168.1.200 ya puede enviar peticiones HTTP a la IP w.x.y.z para navegar
- 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.
¿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.
Vamos a modificar el fichero /etc/hosts y a añadir cibernomadas.es para que quede de la siguiente manera:
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
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:
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:
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):
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.
¡Nos vemos pronto muchachada!