Archivo de la etiqueta: anonimato

Tor+Privoxy en GNU/Linux con OpenRC

Quienes usamos OpenRC sabemos que al momento de instalar un paquete debemos tener en cuenta que por lo general existe una versión específica para este init. Además, en muchos casos no alcanza simplemente con instalar el paquete correspondiente, sino que también los archivos de configuración suelen requerir diferentes parámetros.

Este es el caso del sistema de enrutamiento por capas TOR, el que habitualmente instalo junto a Privoxy para integrarlo como una cadena de proxys.

Dado que actualmente uso Manjaro OpenRC, los comandos están enfocados en esta distribución.
$ sudo pacman -S tor-openrc privoxy-openrc proxychains torsocks lynx
Instalo los paquetes necesarios en su versión para OpenRC y además añado proxychains y torsocks para integrar los proxys al uso en consola de comandos.

Posteriormente, se edita el archivo de configuración de Privoxy, indicándole la dirección ip de escucha y añadiendo al final del archivo la línea de encadenamiento al proxy socks.

$ sudo nano /etc/privoxy/conf

/etc/privoxy/conf

[…]
listen-address 127.0.0.1:8118
[…]
forward-socks5 / 127.0.0.1:9050 .

Luego, hay que trabajar sobre la configuración de TOR. Para esto, se hace una copia de seguridad del archivo original y se crea un nuevo archivo que contenga las líneas requeridas para que OpenRC gestione el daemon.

$ sudo mv /etc/tor/torrc.bck

$ sudo nano /etc/tor/torrc

/etc/tor/torrc

User tor
PIDFile /var/run/tor/tor.pid
Log notice syslog
DataDirectory /var/lib/tor/data

Sólo resta añadir los servicios al inicio y arrancarlos.

$ sudo rc-update add tor default

$ sudo rc-update add privoxy default

$ sudo sudo service tor start

$ sudo service privoxy start

Por último, comprobamos que todo funciona correctamente.

$ proxychains lynx check.torproject.org 
Congratulations. This browser is configured to use Tor.
This page is also available in the following languages: [English____________________] Go

Congratulations. This browser is configured to use Tor.

Your IP address appears to be: xxx.xxx.xxx.xxx

Cifrado extremo en GNU/Linux (Segunda Parte)

Lo prometido es deuda y llega la Segunda Parte de este artículo sobre cifrado en GNU/Linux. En la entrada anterior escribí acerca de cifrado de datos en el disco duro y realicé una simulación sencilla para ayudarnos a entender un poco mejor cómo efectuar las tareas de cifrado utilizando las herramientas más comunes. Y aunque este tipo de cifrado digamos “local” es muy importante, hoy por hoy para casi todo lo que hacemos en nuestros equipos utilizamos una conexión a Internet y, por lo tanto, los datos e información transmitidos pueden ser interceptados por alguna persona, empresa, organismo gubernamental o simplemente un “bot” que esté a la espera de obtener algo valioso de nosotros. La necesidad de cifrar los datos que viajan a través de las redes es evidente. Esta vez escribiré acerca de esto, es decir, qué tratamiento en términos de cifrado debemos darle a las operaciones de navegación, correo electrónico, comunicación y conectividad en general.

Evitando filtraciones en las peticiones DNS

Cuando realizamos una petición DNS los datos transmitidos, tanto de ida como de vuelta, no siempre son anónimos ni están cifrados de manera predeterminada, independientemente si usamos Tor para navegar o si estamos visitando un sitio con seguridad SSL/TLS (https). Dado que las peticiones DNS representan uno de los principales eslabones de la cadena en una conexión web, es importante asegurarnos que los datos transmitidos sean cifrados. Para esto contamos con una herramienta muy útil: dnscrypt.

Dnscrypt funciona de manera análoga a un proxy, cifrando el intercambio de datos entre nuestro equipo y los servidores DNS.

Petición DNS (sin cifrar) -> dnsmasq -> dnscrypt (cifrado) -> Servidor DNS cifrado

Ahora bien, para implementar esta herramienta iremos a nuestra consola de comandos.

Como es habitual en el blog, trabajaré en Archlinux o derivadas.
$ sudo pacman -S dnscrypt-proxy dnsmasq

$ sudo nano /etc/resolv.conf

/etc/resolv.conf

# nameserver ip_servidor_dns_publico
# nameserver ip_router
nameserver 127.0.0.1

$ sudo chattr +i /etc/resolv.conf
En primera instancia, instalamos los paquetes necesarios. Luego, editamos el archivo /etc/resolv.conf comentando todas las líneas que apuntan a servicios DNS y agregamos la línea al final, de manera que las peticiones DNS se realicen de manera local, es decir, en el propio equipo o localhost. Luego de guardar el archivo, cambiamos sus atributos a sólo lectura para evitar que el gestor de conexiones de red (NetworkManager) sobre-escriba la configuración después de un reinicio. Si además hemos agregado DNS desde la interfaz gráfica de NetworkManager debemos borrarlos.
$ sudo systemctl enable dnscrypt-proxy

$ sudo systemctl edit dnscrypt-proxy.socket --full

dnscrypt-proxy.socket

[…]
[Socket]
ListenStream=127.0.0.1:40
ListenDatagram=127.0.0.1:40
[…]

Habilitamos el servicio y editamos el archivo del Socket en SystemD. Apuntamos al puerto #40 debido a que dnsmasq utiliza por defecto el puerto #53.
Por defecto, dnscrypt utilizara “dnscrypt.eu-nl” como servidor DNS externo. En caso que deseemos cambiar este servidor, debemos editar la unidad de servicio de SystemD de la siguiente manera.
$ systemctl edit dnscrypt-proxy.service --full

dnscrypt-proxy.socket

[…]
[Service]
[…]
-R nombre_del_servidor_DNS
[…]

Un listado de los servidores disponibles con sus características se encuentra en /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv.
$ sudo nano /etc/dnsmasq.conf

/etc/dnsmasq.conf

[…]
no-resolv
server=127.0.0.1#40
listen-address=127.0.0.1
[…]

Editamos el archivo de configuración de dnsmasq de manera que las peticiones sean redirigidas hacia dnscrypt. Luego, habilitamos e iniciamos los servicios en SystemD.
$ sudo systemctl restart dnscrypt-proxy.service

$ sudo systemctl enable dnsmasq

$ sudo systemctl start dnsmasq

$ sudo systemctl restart NetworkManager.service

 

Con esto bastará entonces para cifrar todo el tráfico DNS redirigiendo las peticiones a través de dnscrypt. Si deseamos realizar una prueba del funcionamiento, podemos ir al sitio https://dnsleaktest.com y ejecutar una Prueba Extendida. Además, si utilizamos Wireshark y ejecutamos un filtro con la dirección IP del servidor DNS externo, podremos verificar que la conexión está siendo cifrada.

Preparar y configurar tu navegador web

La mayoría de los navegadores soporta complementos o extensiones que nos permiten mejorar nuestra experiencia en la web. Muchos de estos complementos están enfocados en la seguridad y el cifrado. Por ejemplo, si sos de los que usan Firefox, seguramente tendrás instalado HTTPS-Everywhere, SSleuth. Descentraleyes, Greasemonkey con scripts tales como HTTP-to-HTTPS redirector o Green SSL Password Fields, entre otros.

Prestar atención al tipo de seguridad y cifrado que ofrecen los sitios por los que navegamos se vuelve una tarea imprescindible cuando se trata, por ejemplo, de la página de Banca en Línea del Banco, sitios de compras online, proveedor de correo electrónico con interfaz web y tantos otros sitios donde administramos información sensible.

Cifrado de correo electrónico y chat

GPG (GNU Privacy Guard) es sin duda la herramienta por excelencia para cifrado de correo electrónico y conversaciones de chat sobre XMPP en GNU/Linux, aunque eso no es todo, ya que permite cifrar el contenido de directorios y archivos, además de servir para gestionar claves y firmas de paquetes y medios de instalación (ISO’s) de distribuciones. Como si esto fuera poco, si tenés un gestor, depósito o cartera de contraseñas, podés cifrar esas claves mediante GPG.

En general, los clientes más comunes de correo electrónico y chat permiten configurar el agente para GPG por defecto, de manera que cada vez que redactemos un correo el propio cliente nos permitirá definir si este mensaje será cifrado y/o firmado o bien cuando recibamos un correo cifrado, el agente se encargará de descifrarlo para nosotros. En cuanto a los clientes de chat, habitualmente aparece un ícono con la forma de un candado para activar el cifrado de la conversación en la que nos encontramos.

Por su parte, las claves y firmas GPG en nuestro sistema pueden ser administradas con la herramienta homónima desde la consola o bien con un cliente GPG con interfaz gráfica como Kleopatra (orientado al entorno de escritorio KDE) que incluye integración para el gestor de archivos Dolphin, facilitando el cifrado de archivos.

Extra: el uso de una VPN

Las Redes Privadas Virtuales son una herramienta muy poderosa cuando de privacidad y anonimato se trata. Por supuesto, esto dependerá del servicio que utilicemos, cuya oferta es muy variada en cuanto a precio y prestaciones. Sin embargo, la mayoría de los servicios de pago más serios garantizan dos principios fundamentales. En primer lugar, al redirigir todo el tráfico que sale y llega a nuestro equipo a través de estas redes, nuestra dirección IP pública quedará “enmascarada” detrás de la VPN, manteniéndonos anónimos. En segundo lugar y no menos importante, una VPN cifrará los datos mediante el uso de algunos de los métodos que la mayoría conoce, a saber SSL/TLS, PPTP, L2TP, entre otros.

Por otra parte, gracias a proyectos como OpenVPN, podemos montar nuestro propio servidor para estos fines, teniendo el control completo del servicio y sus prestaciones, lo que representa una ventaja notable.

Extra extra: cifrado en teléfonos

Los dispositivos móviles del tipo Android, o su alternativa Cyanogenmod traen por defecto soporte para cifrado completo de los datos del equipo. Por su parte, dnscrypt nos explica en su sitio web cómo usar su herramienta para teléfonos de esta clase, pero en mi caso particularmente, no he tenido tiempo de probarlo, por lo que no entraré en detalles sobre esto. Lo que sí haré será darles una lista de algunas de las herramientas que uso en mi equipo con Cyanogenmod y que se encuentran en los repositorios de F-Droid, a saber:

  • OpenKeychain (GPLv3+): cliente para OpenPGP con integración para K-9 Mail, Conversations, oandbackups, cifrado y firmado de archivos, y más
  • OpenVPN for Android (GPLv2): cliente para gestionar conexiones VPN
  • K-9 Mail (Apache2): cliente de correo electrónico. Permite configurar OpenKeychain como agente GPG predeterminado
  • Conversations (GPLv3): cliente para XMPP. Además de OpenPGP tiene soporte para Cifrado end-to-end con OTR y OMEMO
  • Twik (GPLv3): aplicación que funciona como asistente para generar y almacenar contraseñas seguras
  • Silence (GPLv3): aplicación para enviar mensajes SMS cifrados

Dejaré el cliente de mensajería instantánea Telegram fuera de la lista debido a que, si bien es una aplicación libre (GPLv2+) con cifrado end-to-end, los servicios y protocolos detrás de la aplicación y que por lo tanto la hacen funcionar no son libres.

Bien, hasta acá el artículo. Seguramente habrán muchas cosas que quedaron en el tintero. Por razones de tiempo y espacio he decidido abreviar tanto como pude. Quedaré atento a sus sugerencias y comentarios. Recordemos que la fuerza y la grandeza de GNU/Linux está en la comunidad y son ustedes los que tienen la oportunidad de ampliar y mejorar esta entrada. Siéntanse en libertad de hacerlo.

Cuidá tu privacidad en la Red

Últimamente se habla mucho sobre privacidad y seguridad en las redes. De hecho, cada sitio o blog de los que visito a diario ha tocado el tema más de una vez en el último mes, ni hablar del último año, dejando evidencia de la importancia que ha alcanzado este asunto y la necesidad que tenemos los que defendemos la libertad de que la gente tome conciencia del tema. Por mi parte, quisiera aportar otro granito de arena para que sigamos construyendo.

Cuidá tus datos personales

El aspecto más importante en cuanto a la privacidad es lo que hacemos con nuestros datos, nuestra información personal. Nada más claro, y sin embargo, vemos a diario cómo las personas cuelgan en redes sociales los datos de dónde viven, su número telefónico, dónde estudian o trabajan y en qué horarios, qué lugares frecuentan, quienes son los demás integrantes de su familia, etcétera. Lo que me parece peor es que suben fotografías de sus hijos con la información de ellos también ahí a disposición de cualquiera, todo claro está, con nombre y apellido reales. No creo que haga falta decir más al respecto.

Por mi parte, en Internet nadie me conoce por mi verdadero nombre y nadie ha visto una fotografía que pueda asociar con mi cara. Es más, si alguien escribiera mi nombre y apellido reales en cualquier buscador, tampoco llegaría a nada, mi información personal no está en Internet. ¿Alguien más ha hecho la prueba con su nombre? Muchos se sorprenden al ver los resultados.

Cuida lo que hacen otros con tus datos personales

Hace unos días leí por acá una historia muy interesante al respecto y que deja este concepto muy claro. He sabido de algunos compañeros en las redes sobre problemas que tuvieron al respecto. La cuestión es simple: vos cuidás celosamente tu información, pero si alguien de tu entorno no lo hace probablemente terminarás afectado.

Pedíle a tu familia y amigos que respeten tu decisión de cuidar tu información personal explicándoles por qué crees que te están haciendo un daño al publicar tus datos, fotos, actividades en las redes. Por supuesto, no los podés obligar, pero si te aprecian, van a respetarte.

Cifrá tu información

Este es un tema que me apasiona. En la web hay mucha información por lo que no me voy a detener en los aspectos técnicos ni voy a profundizar sobre los mismos en este momento. Basta con que remarque la importancia de utilizar métodos de cifrado o encriptado de datos en tus comunicaciones y en tus archivos. Tarde o temprano nos podemos topar con una filtración de nuestra información en la web y que los datos “viajen” encriptados será decisivo para resguardar nuestra privacidad.

Navegá anónimo con Tor y sus consejos

Hay quienes defienden y quienes atacan a la red de navegación anónima Tor. En mi caso, lo uso siempre que puedo. Tor es un proyecto muy interesante para quienes nos preocupa la privacidad. Es cierto que se ha ganado la fama de que es la red ideal para terroristas, narcos y gente cuya actividad quiere mantener totalmente oculta de los ojos de la ley. Sin embargo, la red no se creó con la intención de ayudar a esa gente. Hay muchos sitios en Internet que rastrean tu actividad y tu ubicación basados en tu dirección ip. La mejor manera de evitar que alguien conozca es información es cubrirla con las “capas” que ofrece Tor.

Por otra parte, la web de Tor nos da una lista de consejos que podemos seguir para reforzar nuestro anonimato en la red. Algunos de ellos son: navegá utilizando el protocolo “https”, esto te asegura que los datos en tu navegación son encriptados; no usés torrent mediante Tor, esto quitaría tu anonimato y afecta el de los demás usuarios de Tor; abrí los documentos descargados fuera de línea (off-line) debido a que algunos documentos contienen recursos que pueden ser descargados fuera de la red Tor, exponiendo tu ip.

Cuidado con las redes WiFi públicas

Las redes WiFi públicas representan un gran peligro para la seguridad y la privacidad. Hay muchas cuestiones técnicas detrás de esto. Lo que queda más a la vista es que siendo una red pública es más fácil para cualquiera husmear(sniff) lo que pasa a través de esa red. Por mi parte, sólo me conecto a la red WiFi de mi casa y de amigos en quienes confío.

Pensá dos veces antes de hacer click

Por mucho que aseguremos nuestra navegación, tarde o temprano llegaremos a algún sitio donde peligre nuestra seguridad y privacidad. Por esto, tengo un bloqueador de anuncios en todos mis navegadores y muchos otros complementos de seguridad. Además, me cuido de los complementos que usan los sitios que visito y de trato de no utilizar webapps en mi navegador, tales como reproductores de música de emisoras de radio, almacenamiento en nube, etcétera a menos que confíe plenamente en ellos.

Aún así, nunca hago click en la poca publicidad que mi bloqueador no logra quitar, ni tampoco hago click en cuanto link aparezca en la página donde me encuentre. Muchos de esos banners, imágenes con links, etcétera contienen enlaces a sitios evidentemente maliciosos o bien sitios maliciosos encubiertos como sitios de confianza. Si vas a ingresar al sitio de tu banca online o vas a realizar compras por Internet, llegá hasta ahí desde la barra de dirección del navegador, nunca lo hagás mediante clicks en otros sitios.

Usá Software libre

Entre todos los beneficios que aporta el Software Libre, está el de ser software que habitualmente es auditado y que puede ser auditado en cualquier momento. Esto nos asegura saber qué hace un programa y cómo lo hace, permitiendo detectar funcionalidades maliciosas o sospechosas, puertas traseras, funciones que registran nuestros datos y los envían a algún sitio o servidor. Si nos arriesgamos a usar un programa que no es Software Libre, quedamos expuestos a la voluntad de los dueños del programa sobre lo que hagan con nuestros datos.

Quien tiene el código, tiene el poder sobre el software y la información que procesa y contiene dicho software. Si el programa es privativo, el poder lo tiene el dueño, si el programa es libre, el poder lo tienen el usuario y la comunidad.

Cambio de paradigmas

En muchas conversaciones sobre privacidad se oyen frases como: “¿para qué voy a preocuparme por alguna persona o máquina está espiando mi actividad en la red, mis conversaciones por correo electrónico o mis mensajes, en definitiva no tengo nada que ocultar? ¿Quién va a querer robarme a mí que tengo tan poco? ¿Qué provecho puede obtener con los datos de un “don nadie” como yo, una empresa tan gigante como…?

Mi reacción ante estas excusas es simplemente responder respetuosamente: en tu hogar tampoco tenés nada que ocultar y, sin embargo, mantenés las puertas cerradas y tapás las ventanas con cortinas. Si descubrieras a tu vecino mirando a través de un agujero en la pared lo taparías y denunciarías a tu vecino con la policía. Tampoco dejás a extraños ingresar para que vean lo que hacés a diario y estudiar tus hábitos, qué comés, a qué hora dormís. Si un desconocido te pidiera ver tus correos o tus mensajes se lo negarías de inmediato, es más, se lo negás normalmente a personas que son de tu confianza y nadie se escandaliza al respecto. ¿Por qué tiene que ser diferente con tu actividad en las redes? (esto salió de una conversación real que tuve con un amigo hace unos días)

Por otra parte, la mayoría de nosotros pasamos de largo cuando nos piden completar una encuesta en la calle. Sabemos que es para juntar datos para alguna campaña publicitaria que termina beneficiando económica o políticamente (o ambas) a alguien ya lo bastante beneficiado actualmente. En Internet, parece que a nadie le importa. Es más, algunos están felices de que rastreen su actividad para obtener mejores sugerencias de búsqueda, etcétera mientras la rueda del dinero sigue girando para alguien más.

La verdad es que hasta que no cambiemos el paradigma, la cosa no va a cambiar mucho. Necesitamos empezar por modificar nuestras ideas y actitudes para poder cambiar nuestro modo de actuar. Esto implica también vencer la costumbre. Por mi parte, me costó mucho trabajo dejar de usar ciertos servicios y ciertos programas. Pero al final, fue una experiencia liberadora.

Para finalizar, mientras redactaba el post me encontrado luchando con mi propio estilo: tratar de ser breve en un tema que da mucho para hablar al mismo tiempo que no quería entrar en temas técnicos ni dar demasiados ejemplos es difícil y lo he comprobado. Queda mucho por hacer. Queda lejos de ser la última palabra en cuanto al tema, estoy seguro que se puede hacer más, o bien hacerlo de otra manera. De momento, es la forma que yo conozco y que puedo implementar dentro de mis posibilidades. Me quedo satisfecho al menos por el hecho de poder comunicarles mi opinión personal y transmitirles mi experiencia.

Espero sus comentarios ¡Saludos a todos!