TOR: Proxificando la salida a Internet en Linux

Publicado por Diego Córdoba en

Hoy hablaremos sobre cómo podemos proxificar o, en la jerga, «torificar», toda la salida a Internet de nuestro ordenador utilizando la red TOR.

Seguramente alguna vez nos ha pasado que hemos necesitado conectarnos a servicios remotos en alguna red que restringe todo trafico excepto web y dns, cierto?

tor

Sin ir más lejos, y como a varios de ustedes debe pasarles, a veces he necesitado conectarme con pidgin a mis cuentas xmpp, o con claws-mail o seamonkey a mis cuentas de correo electrónico, por ejemplo, porque no me gusta acceder a los servicios de webmail.

Pues bien, ¿qué podemos hacer si la red en la que estamos conectados nos restringe estos puertos? (y el administrador demora media vida en resolvernos el inconveniente 😛 )

Una solución es conectarse utilizando la red TOR, que cifrará nuestro tráfico y podremos conectarnos a cualquier servicio sin que la red actual nos restrinja!

Sabido es que esta red nos permite conectarnos a sitios web manteniendo en privado nuestra ubicación e ip de conexión. Esto lo hacemos gracias a que instalamos un cliente en nuestro sistema, y lo utilizamos para conectarnos a la red cifrada, o bien utilizamos un navegador con un cliente incorporado, como es el TOR Browser Bundle.

Navegando en torproject.org me encuentro con un link más que interesante de cómo proxificar todas las salidas a Internet, y así, no solo navegar anónimamente, sino también conectarse a cualquier servicio por medio de la misma red tor! De esta manera, además de salir de manera anónima a Internet, podremos conectarnos a los servicios que nos interese, por más que nuestra red de origen esté cerrada 🙂

Requerimientos

Vamos a utilizar un script que hace uso de un cliente tor, y de iptables (netfilter en Linux), por lo que tendremos que tener instalados los paquetes.

Netfilter/iptables ya viene instalado en la mayoría de las distribuciones, y en el caso de Debian, podremos instalar el cliente de la siguiente manera:

Ahora procederemos a configurar nuestro cliente para habilitarlo en modo transporte.
Para ello editaremos el archivo /etc/tor/torrc y añadiremos las siguientes líneas:

Configurando el cliente TOR

Configurando el resolver dns

También deberemos configurar nuestro servicio de resolución de nombres al equipo local, de modo que las consultas dns también salgan a Internet utilizando el proxy:

Configurando iptables

Luego tendremos que configurar nuestro iptables para permitir las conexiones de todos los servicios hacia Internet por medio de nuestro proxy local TOR.

Afortunadamente, para quienes no quieran aprender iptables desde cero ahora, podrán configurar y lanzar un simple script provisto por los amigos de torproject.org.

El script, un poco modificado por mi, es el siguiente:

Poniendo en marcha el script

Una vez que hayamos escrito nuestro script de iptables para lanzar nuestro cliente tor en modo transporte, y suponiendo que le hemos puesto de nombre «proxy_tor.sh», podremos lanzarlo de la siguiente manera:

Luego de lo cual podremos verificar el acceso a los servicios navegando en sitios como «miip.net«, o tratando de conectarnos con nuestros clientes habituales de mensajería, correo, y demás.

Update 20190322

Como agregado al artículo original, cabe agradecer a Javier Obregón y a todo el equipo de EterTics por mencionar este artículo en los scripts que implementaron en su distro para proveer privacidad a los usuarios!

Javier implementó una serie de scripts bash a los que cargó una interfaz gráfica para diálogos con Zenity que permite activar y desactivar de una manera muy simple las configuraciones para torificar la salida a Internet.

Gentilmente me compartió los enlaces al paquete .deb del torificador que utiliza Etertics. Si bien la distro original está basada en Devuan, yo he probado los scripts y la GUI en Debian 9 y corre perfectamente.

Si usan distros basadas en Debian/Devuan, pueden descargar tanto el .deb como la verificación por hash MD5 desde estos enlaces:

Y no tienen más que instalarlo en el sistema con:

Si falla la instalación porque no se cumplen dependencias (en mi caso no tenía instalado zenity) pueden instalarlas con apt y luego ejecutar nuevamente el dpkg para completar la instalación del torificador:

Espero que les sea de utilidad!! Hasta la próxima!

Cualquier sugerencia o comentario por favor hacerlo en el artículo, así todo el que lo lea puede aprender más!


Diego Córdoba

- Ingeniero en Informática - Mg. Teleinformática - Tesis pendiente - Docente universitario - Investigador