sábado, 20 de febrero de 2016

Instalación y Configuración de dnscrypt-proxy + dnsmasq en Archlinux

Introducción: 
  

¿Qué es dnscrypt-proxy?
- DNSCrypt encrypta y autentifica el tráfico DNS entre el usuario y la resolución DNS, previene la suplantación local de las consultas DNS, asegurando que las respuestas DNS son enviadas por el servidor de eleccion. (Wiki)

¿Qué es dnsmasq?
- dnsmasq proporciona servicios como caché DNS y como servidor DHCP. Como un servidor de nombres de dominio (DNS), puede almacenar en caché las consultas DNS para mejorar las velocidades de conexión a los sitios visitados anteriormente, y, como un servidor DHCP, dnsmasq puede ser utilizado para proporcionar direcciones IP internas y rutas a los equipos de una LAN. Uno, o ambos de estos servicios, se pueden implementar. dnsmasq es considerado ligero y fácil de configurar; está diseñado para su uso en un ordenador personal o para su uso en una red con menos de 50 ordenadores. También viene con un servidor PXE.  (Wiki)


¿Qué utilicé?:
- Para editar los archivos de configuración usé nano.
- En todo momento lo hice con mi cuenta de root, pero si tienen configurado sudo, pueden utilizarlo tranquilamente.
- Para chequear la caché con el comando dig, éste se encuentra en bind-tools
dentro de los repositorios oficiales, pacman -S bind-tools :)


Instalación:

- Como root o usando sudo en nuestro terminal o tty instalamos los paquetes dnscrypt-proxy y dnsmasq asi:


* El mensaje de advertencia es porque ya los tengo instalados, ustedes sólo tienen que confirmar presionando Enter:


Configuración:

1 - Vamos a habilitar dnscrypt-proxy (recuerden como root o usando sudo):



2 - Ahora editamos el archivo /etc/resolv.conf y en nameserver borramos lo que está y colocamos 127.0.0.1 (si quieren pueden hacer un backup del archivo) y debería quedar así:



- Teniendo en cuenta que NetworkManager escribe el archivo resolv.conf, lo que vamos hacer es protegerlo contra escritura con la siguiente orden:



3 - Ahora lo que vamos hacer es buscar un server que esté lo más cerca de nuestra ubicación, sinó pueden usar el que viene por defecto que es dnscrypt.eu-nl, la lista la podemos abrir con localc se encuentra aquí: /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv de ésta manera:


* Si queremos modificar el server que resuelve el dns por defecto podemos editar asi:


* Al final del archivo en la sección [Service] modificamos lo que está seleccionado en gris y colocamos el server que ya seleccionamos en el listado:



4 - Por defecto dnscrypt-proxy utiliza el puerto 53, ya que dnsmasq también, asi que lo que vamos a hacer es cambiarlo utilizando nuevamente con:
systemctl edit dnscrypt-proxy.service.socket --full y en la sección [Socket] lo dejamos como a continuación:


Guardamos los cambios y cerramos.


5 - Ahora configuramos dnsmasq, vamos a editar el archivo /etc/dnsmasq.conf y agregamos éstas tres líneas al final:

no-resolv
server=127.0.0.1#40
listen-address=127.0.0.1

Guardamos los cambios y cerramos.


6 - Ahora hacemos lo siguiente:
- Reiniciamos dnscrypt-proxy:
systemctl restart dnscrypt-proxy
- Activamos dnsmasq:
systemctl enable dnsmasq
- Ejecutamos dnsmasq:
systemctl start dnsmasq
- Reiniciamos nuestra conexión de internet:
systemctl restart NetworkManager


7 - Bueno ahora probamos si realmente queda funcionando con un ping por ejemplo a google.com.ar:



8 - Nos fijamos si funciona el caché de dns con el comando dig:


- Aquí tenemos en cuenta que el primer dig que hago hay una demora de 349 msec y cuando hago nuevamente la consulta con dig que pasa? 0 msec, osea cachea correctamente.


9 - Listo dnscrypt-proxy y dnsmasq configurados y funcionando correctamente.!


Nota: Quiero aclarar luego de buscar en varios lados no me funcionaba de ninguna manera que mostraban en la wiki de arch, la versión en español está mal traducida (será cuestión que alguien traduzca bién o lo haré yo en algún momento) asi que usé la versión en inglés. Asi que básicamente me basé en dicha wiki, todos los créditos para ellos. En éste caso son los pasos que utilicé y me funcionó A MI.
Cualquier consulta o inconvenientes que tengan me avisan y lo vamos charlando hasta que les quede funcionando!

En el caso que quieran mirar el video en YouTube también dejo link:



Abrazo de gol! :D