En un anterior tutorial, foo bar nos llevó por la instalación de dnscrypt-proxy para hacer posible que el tráfico de resolución de nombres de dominio a direcciones ip’s fuera cifrado, desde el cliente, hacia el servidor que ejecutase dnscrypt-wrapper.
El inconveniente que se plantea ante este arquetipo, es que el servidor dnscrypt-wrapper sí hace peticiones en plano DNS, para poder entregar al cliente, en cifra, las respuestas hacia sus peticiones.
De todas maneras es un concepto muy válido si traemos del recuerdo bloqueos gubernamentales contra internet, basados en la invalidación de los servidores DNS de los ISP’s de un país, como ocurrió en Turquía, en días del despertar de la conciencia.
También evita la recolección, por parte de los funcionarios de control poblacional de tu país, de listados de emparejamientos de datos «ip persona => dominios que visita».
Yecheng Fu, si existe realmente como persona, residente en China, posiblemente un día, cansado de que su gobierno le impidiera resolver el nombre de dominio tiosbuenos.com después de tomar su taza de café de la mañana, con el peligro de acabar en una cárcel y que hicieran gel antiarrugas con él para los consumidores europeos; ideó dnscrypt-wrapper.
El guión para instalarlo en un servidor debian fuera de tu país y ofrecer un servicio de DNS cifrado:
cd /opt apt-get update && apt-get install git libevent-dev autoconf gcc bind9 mkdir dnscrypt cd dnscrypt/ #### INSTALAR libsodium wget https://download.libsodium.org/libsodium/releases/libsodium-0.7.0.tar.gz --no-check-certificate tar -zxvf libsodium-0.7.0.tar.gz cd libsodium-0.7.0/ ./configure make && make check make install ldconfig #### INSTALAR dnscrypt-wrapper cd .. git clone --recursive git://github.com/Cofyc/dnscrypt-wrapper.git cd dnscrypt-wrapper make configure ./configure make install dnscrypt-wrapper -v cd .. mkdir llaves cd llaves dnscrypt-wrapper --gen-provider-keypair dnscrypt-wrapper --gen-crypt-keypair dnscrypt-wrapper --crypt-secretkey-file crypt_secret.key --crypt-publickey-file=crypt_public.key --provider-publickey-file=public.key --provider-secretkey-file=secret.key --gen-cert-file #### PUESTA EN MARCHA dnscrypt-wrapper -r 127.0.0.1:53 -a 0.0.0.0:54 --crypt-secretkey-file=crypt_secret.key --crypt-publickey-file=crypt_public.key --provider-cert-file=dnscrypt.cert --provider-name=2.dnscrypt-cert.elbinario.net -VV
Este último comando del script, pone el servidor a la escucha y nos devuelve la huella pública que deberá ser pasada como parámetro en dnscrypt-proxy
dnscrypt-proxy -a 127.0.0.2:53 --provider-name=2.dnscrypt-cert.elbinario.net -r ipdetuservidordnscrypt-wrapper:54 --provider-key=HUELLA
Se presenta como una capa fina de seguridad, interesante, que no evita si tus paquetes van en claro por las redes de tu país, recolección de peticiones y respuestas desde tu ip a otras ip’s
Fantastico. Justo la parte que faltaba. Buen trabajo.