Muy pocos usuarios se preocupan por la seguridad de sus conexiones a Internet, y poco les importa si su propio proveedor de acceso a Internet les espía. Salvo los Hackers súper paranoicos y celosos de su anonimato y privacidad, el resto de los usuarios navega ingenuo sin imaginar que espían sus comunicaciones. Primero, te hago un par de advertencias. Cualquier cosa que hagas en la red de internet deja registros, rastros, huellas, pistas que pueden ser encontradas por expertos. Segundo, si cometes algún tipo de delito informático, este puede ser detectado por las autoridades, y por orden judicial, acudir a tu Proveedor de Internet y pedir la lista de registros de conexiones (Logs) desde tu equipo a cualquier IP a la que te hayas conectado. De ese modo sabrán si has enviado correos electrónicos, si has estado conectado a un chat, y que has descargado, y que paginas has visitado.
¿Cómo lo hacen?
Aquí el problema es que si quieres estar conectado con el resto del mundo estas forzado a tener una conexión Telefónica y a Internet, en la que existe el registro de tu nombre, DNI, dirección, y numero de teléfono. Cuando conectas tu Router, ese Router llama por la linea de teléfono y establece una conexión con el ISP (Morrange, Pajazztel, Timofonica, Ñoño, Vegafone, el que sea), entonces transcurridos unos segundos tu Proveedor de Internet te entrega una IP dinámica que es la que te sirve para que puedas navegar por todo Internet durante el tiempo que estés conectado. Cualquier cosa que hagas quedara registrado en los servidores de tu proveedor por varios parámetros: Hora de conexión, IP dinámica, numero de Teléfono, usuario (Con todos sus datos) y nodo de conexión (centralita del bucle telefónico desde el cual accedes a los servidores de Internet), y como ves, tu propio proveedor de Internet sabrá muchas cosas sobre ti.
¿Como pueden espiarte sin que te des cuenta?
¿Has oído alguna vez la expresión MITM?, pues mira el gráfico y lo comprenderás de forma sencilla. El MITM es un ataque en el que “alguien que tiene la oportunidad de acceso” también tiene la capacidad de leer, insertar y modificar a voluntad, los mensajes entre dos partes sin que ninguna de ellas conozca que la conexión entre ellos ha sido pinchada. La forma mas fácil que un ISP puede espiar tus comunicaciones sucede de forma silenciosa y clandestina cuando entras con tu navegador Internet Explorer, o Firefox, y haces una petición de un servicio web o te conectas a una pagina como por ejemplo Google.
Todas las peticiones de paginas web se realizan a través de tu Proveedor de Internet. Pero antes de que recibas la pagina web que has pedido en tu navegador, tu ISP debe traducirla de un formato numero de dirección IP 85.90.86.102), a un formato web www.mipeticionweb.com. Para ello utiliza sus propios servidores DNS. Una vez que esos servidores DNS han traducido la dirección IP a un formato web, la conexión entre tu equipo con esa pagina web se establece sin problemas.
Lo que te importa saber de este proceso es que tu propio proveedor de Internet actúa como intermediario (esta en medio de todas las conexiones) entre tu equipo y el servidor de la pagina web (Las paginas web que tu quieras visitar) con la que tu te quieres conectar.
¿Y que peligro hay con eso?
Si tu entras en Internet sin que tus conexiones estén encriptadas tu propio ISP y alguien mas interesado podrán leer sin problemas todo tu trafico. Cualquier Agencia o autoridad Gubernamental sabrá que has estado haciendo. Pero si reflexionas sobre como proteger tus conexiones a internet, me refiero a cifrar tu navegación entre tu equipo y tu proveedor de Internet, al interponer contra medidas te proteges de varios posibles ataques:
1- Te saltas cualquier posible baneo (restricción) que tu Proveedor de Internet haga sobre tu navegación.
2- Impides que alguien meta las narices en tus comunicaciones porque están encriptadas y no puede leerlas.
3- Evitas los ataques MITM (Man In The Middle). ¿Si la conexión esta encriptada, para qué meterse en medio a espiarlas si no hay modo de entender nada?
Cifrar nuestra conexión DNSCrypt.
¿Para qué molestarse en encriptar nuestro trafico de Ubuntu hacia Internet? Bueno, al cifrar tu conexión a Internet impedirás que tu propio ISP o un Agente del Gobierno este escuchando el tráfico entre tu y el, y no importara qué paginas visites porque no podrá leerlas. Para ello podemos usar un Software que esta disponible de forma gratuita para los siguientes sistemas operativos: OSX, OpenBSD, Bitrig, NetBSD, Dragonfly BSD, FreeBSD, Linux, iOS, Android, Solaris y Windows; y que es conocido entre los profesionales como DNSCrypt. Este software es una herramienta que nos permite cifrar todo el tráfico entre nuestro computador y el Proveedor de Acceso a Internet porque emplea el servicio de resolución de nombres de dominio de OpenDNS de forma predeterminada.
Tengo Linux Ubuntu 14.10, ¿cómo instalo la encriptacion de mis conexiones a Internet?
He usado DNSCrypt desde la versión 12.10, y te puedo garantizar que funciona de maravilla. Por eso estoy en condiciones de escribir este post con todo detalle y decirte que actualmente, sigo usando DNSCrypt en Ubuntu 14.10 sin problemas. Y como anécdota mi equipo es un Intel Pentium de 32 bits. Sin embargo advierto que la instalación supone una cierta dificultad, es de nivel medio o alto para el usuario Linux Ubuntu. Pero esto no tiene porque desanimar al principiante, aunque si que debe ser prudente con lo que haga, cuando siga los pasos que aquí se describen.
El sistema de cifrado se basa en la instalación de dos paquetes para Linux conocidos como libsodium-0.4.5, y dnscrypt-proxy-1.3.3. Por desgracia actualmente no existe ningún paquete.deb, o repositorio conocido que se pueda utilizar para su fácil instalación. Y aquí nos encontramos con la primera dificultad técnica. Es necesario recurrir a la compilación de su código fuente desde el Terminal Linux. La compilación supone que nos hará falta instalar desde el terminal Linux los paquetes necesarios para lograr compilar la aplicación y sus dependencias.
PARTE 1
Por tanto si estas en Linux Ubuntu teclea Ctrl+Alt+T y se te abrirá el terminal Linux. Debes loguearte como root, con tu nombre de usuario y contraseña. En este ejemplo veras mi nombre de usuario de una instalación virtual de Virtual Box, no lo uses, solo debes teclear las ordenes como sudo -s y todas las demás que estén a la derecha del root. Para ello haces la siguiente operación escribiendo en tu terminal...
[email protected] :~$ sudo -s
password for darkode: (Escribe tu pasword)
[email protected] :~# sudo apt-get install build-essential
Instalamos build-essential, porque como he dicho no existe ningún paquete debian extensión punto deb que se pueda instalar de manera fácil, y porque build-essential es un paquete que contiene todas las herramientas de compilacion que necesitamos para convertir el código fuente en el software que deseamos usar.
El siguiente paso es compilar las dos librerías: dnscrypt-proxy, y libsodium, y convertirlas en paquetes que podamos instalar en nuestro Linux. Para ello nos vamos a estos enlaces:
http://download.libsodium.org/libsodium/releases/
http://download.dnscrypt.org/dnscrypt-proxy/
Y descargamos los dos archivos. Es preferentemente recomendable descargar la versión más reciente de cada archivo. Eso se sabe mirando cual es la ultima versión que esta almacenada en el sitio. Y otra cosa, debes bajar la versión que corresponde a tu sistema operativo. Para Linux Ubuntu lo sabrás porque tiene la fecha 2014 y la extensión tar.gz En cuanto a que lugar de Linux Ubuntu hacer la descarga de esos dos archivos, recomiendo que lo hagáis en la carpeta de descargas, porque es allí donde se hará la instalación.
Ahora empieza la parte complicada del asunto, que es donde muchos se quejan siempre de que algo no sale bien. Yo en esto quiero ser muy conciso y por eso os daré las instrucciones del terminal con todo detalle. Tenemos que descomprimir primero el archivo.tar.gz y a continuación comenzar el proceso de compilación. Con tu terminal Linux, y con tu usuario root activo, escribe las ordenes siguientes que están a la derecha del root:
[email protected] :~# cd /home/darkode/Descargas
[email protected] :~/Descargas#
Con estas dos ordenes lo que hacemos en situarnos en la ruta donde están descargados desde internet los dos archivos que necesitamos compilar. Como es lógico, ahora deberemos averiguar el nombre exacto de cada archivo, para poder escribirlo correctamente mas tarde en el terminal y hacer la compilación.
Ahora hacemos un ls para listar todos los archivos que tenemos en nuestra carpeta de descargas.
[email protected] :~/Descargas# ls
dnscrypt-proxy-1.3.3.tar.gz
libsodium-0.4.5.tar.gz
Y efectivamente, vemos los nombres de nuestros dos archivos recién descargados. Bueno, ahora hay que compilar el primer archivo. Esto lo he dividido en seis pasos, que hay que hacer en este orden. Después de escribir una orden en el terminal, hay que hacer un ENTER. Primero la descompresión, que es el primero paso, esperas a que termine, y entonces haces el paso siguiente.
Paso 1 hacemos tar -xvzf libsodium-0.4.5.tar.gz
Paso 2 hacemos cd libsodium-0.4.5
Paso 3 hacemos ./configure
Paso 4 hacemos make
Paso 5 Verificamos que todo se encuentre en orden, haciendo make check
Paso 6 Si en este punto no habéis tenido ningún problema, hacéis make install
Luego, cuando termine todo el proceso salís del terminal tecleando exit. Y es recomendable hacer un reboot del sistema (escribe reboot) desde el terminal para que todos los archivos se afiancen.
PARTE 2
Bueno doy por hecho que todo ha salido bien, y que después del reboot (reinicio del sistema) estas otra vez en tu escritorio de Ubuntu a la espera de continuar con este complicado proceso. Volvemos a hacer un Ctrl+Alt+T y abrimos un terminal. Nos logueamos como root.
[email protected] :~$ sudo -s
password for darkode: (Escribe tu pasword)
[email protected] :~#
Ya estamos en la consola de Linux Ubuntu. Antes de comenzar a compilar DNSCrypt es necesario escribir en el terminal lo siguiente:
ldconfig
A continuación debemos volver por el terminal hacia la ruta que nos guía a la carpeta de Descargas. Esto lo hacemos porque es allí donde se realizara la operación de descompresión y luego la compilación, y porque allí es donde quedaran las capetas de este software.
[email protected] :~# cd /home/darkode/Descargas
[email protected] :~/Descargas#
Hacemos un ls para ver los nombres de archivos que tenemos y buscamos dnsproxy.
[email protected] :~/Descargas# ls
dnscrypt-proxy-1.3.3.tar.gz
libsodium-0.4.5.tar.gz
Ahora hacemos la descompresión del tar de dnscrypt. Esto lo haremos paso por paso, para que algunos usuarios aprendan de paso el tedioso proceso de instalar un paquete desde el terminal. Quiero decir, que esta experiencia, os ayudara mucho en el futuro para aprender a instalar paquetes desde el terminal.
Paso 1 hacemos tar -xvzf dnscrypt-proxy-1.3.3.tar.gz
Paso 2 hacemos cd dnscrypt-proxy-1.3.3
Paso 3 hacemos ./configure
Paso 4 hacemos make
Paso 5 hacemos make install
Paso 6 hacemos exit
Después de alcanzar el éxito en todos estos pasos (Ya te veo sonriendo por ser la primera vez que la instalación. manual de un paquete te funciona en Ubuntu.) hay que hacer un reboot, con el propósito de que todos los archivos se afiancen en el sistema. Regresamos al escritorio después del reinicio, abrimos el terminal Ctrl+Alt+T y nos logueamos de nuevo como root. Todo lo que hagamos a de ser como Root.
Configuración de nuestra interfaz de red
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exec /usr/local/sbin/dnscrypt-proxy --daemonize --pidfile=/run/dnscrypt-proxy.pid --edns-payload-size=4096
exit 0
Usuarios de Windows7
Para los usuarios de Windows7, es posible usar OpenDNS sin demasiadas complicaciones simplemente configurando sus adaptadores de red, para que en vez de usar las DNS que os suministra vuestro proveedor de Internet, utiliceis estas dos, y estaréis navegando con el trafico protegido.