si estas leyendo esto es xq estas preocupado x cuidar tu privacidad mientras navegas (o haces cosas q no deberias), en cualquiera de los casos es una sana preocupacion ya q cada vez es mayor la cantidad de datos q dejamos x ahi y las ganas de los gobiernos y grandes corporaciones de ponerles las manos encima para cruzarlos con los suyos propios con oscuros propositos...
en españa x ejemplo ya se aprobo la ley SINDE, entre cuyas atribuciones esta la de cortar el acceso a internet a los users q violen derechos de autor. mas alla de la ridiculez de la medida contra el usuario final q baja un mp3, tengan en cuenta q hay toda una organizacion q checkea logs, pide mas logs y va a buscar gente a la casa para cortarle la conexion a internet. ellos saben todo lo q estas haciendo te guste o no, cuando piden esos registros ahi no esta solo el link del mp3 sino completamente todo lo q navegaste o hiciste.
obviamente en todos lados se guardan logs pero afortunadamente en la mayoria de los paises se necesita de una orden judicial y una buena razon para obtenerlos y cuando digo "buena razon" no me refiero a alguien bajando musica o un capitulo de "walking dead".
pero dejemos de divagar y vamos al tema...
servidores proxy
el metodo mas difundido y comun para ocultar nuestra direccion IP son los proxies. un proxy es un servidor q cumple la funcion de intermediario en una conexion, por ejemplo en una empresa el proxy es la maquina que da acceso a internet a las de la red interna. desde ahi podemos controlar trafico, aplicar permisos a los clientes y muchas otras cosas, pero lo importante para lo q estamos viendo es la funcion de hacer de "puente" hacia afuera.
supongamos q queremos abrir xxxx.com. la pc de la red interna hace la peticion al proxy y este a su vez la hace a xxxx.com despues de analizarla y checkear en sus reglas si la procesa o no. "xxxx", como cualquier web server, guarda logs de las IPs que lo visitan, en este caso la IP q queda en el log es la del proxy y no la de la maquina interna q ni siquiera posee conexion directa hacia afuera. de esta forma cualquiera q sea la pc en la red interna q haga una peticion a xxxx siempre va a quedar en sus logs la IP del proxy.
solo tenemos q pasar esto a nivel de internet y vemos claramente lo q hace un proxy. la peticion sale de la pc hacia nuestro ISP (Internet Service Provider), va hacia el proxy y el la hace devolviendonos el resultado. la finalidad en este caso no es "salir" a internet sino usar el "puente" para esconder nuestra direccion IP original.
haciendo una rapida busqueda en google pueden encontrarse muchas listas de proxies. si bien en teoria todo funciona como explique antes, los proxies tambien guardan logs y ante una orden judicial la mayoria de estos los entregan a las autoridades correspondientes. una solucion usada durante muchos años es "encadenar" proxies, haciendo q la peticion pase x varios de ellos antes de llegar a destino. esto no hace imposible seguir el rastro de los paquetes pero si lo hace mas dificil al tener q conseguir y analizar logs de varios lugares, dependiendo de leyes locales y otros factores.
en todo caso es la solucion de seguridad mas rapida ya q se puede configurar practicamente en cualquier navegador y sistema (incluyendo moviles) rapidamente y sin tener q instalar absolutamente nada. solo una lista de proxies q funcionen...
tor
TOR fue originalmente diseñado para encriptar comunicaciones gubernamentales de la "us navy". es una red formada x nodos a traves de los cuales viaja nuestra informacion x rutas aleatorias. esta ruta, ademas de la info q viaja a traves de ella, esta encriptada y cada uno de los relays en la red solo sabe de cual viene la info y a cual va, no conoce el destino final ni el origen. la idea es crear un ruteo complicado, cambiarlo cada 10 minutos y no mantener logs.
el sistema parece perfecto... y es bastante bueno, pero esta lejos de proteger 100% nuestra privacidad. los sitios web toman bastante mas info como el tipo de browser, sistema, resolucion de pantalla, referals, etc, etc, etc.
ademas de esto, x la estructura de la red tor es posible sniffar datos en texto plano con bastante facilidad. no voy a explicar en detalle como xq se extiende mucho el tema pero la vulnerabilidad se basa en el ultimo tramo de la ruta, del ultimo nodo al server de destino, donde la informacion viaja sin encriptacion alguna. solamente hay q setear tor como "exit node" para ser ese ultimo eslabon y ponernos a sniffar todo el trafico q pasa x el...
privoxy
en la mayoria de los tutoriales de instalacion de TOR se incluye PRIVOXY. esto se debe a q con este ultimo podemos ocultar mucha de la informacion que entregan nuestras aplicaciones cuando se conectan a internet pero tambien a q en firefox hay un problema con el soporte para socks (q usa tor) q genera timeouts, lo cual resulta en paginas q no cargan aleatoriamente y ese tipo de problemas. simplemente firefox a veces no espera q se complete el circuito en la red y... timeout!
otro serio problema con tor son los "DNS leaks" o fugas dns. antes de enviar los datos se hace una peticion normal a un server DNS para resolver el nombre para recien entonces encriptarlos y enviarlos. el trafico sigue estando a salvo pero no la actividad q es facilmente rastreable. esto se soluciona usando privoxy q justamente evita los dns leaks.
la idea entonces es instalar privoxy, q este "limpie" todos estos datos segun el nivel en q se lo pidamos y le pase la peticion a tor. este crea el circuito, la envia y despues de atravesarlo llega a destino.
la aplicacion se puede configurar con un simple editor de texto o desde una intuitiva interfaz web. tiene infinidad de opciones... es cosa de darle un rato pero con la configuracion casi x default sale andando.
al final instalamos y configuramos todo... ;)
proxychains
el problema viene muchas veces cuando queremos anonimizar una conexion de consola. en un browser es facil de configurar y aunque en linux se le puede poner proxy casi a todo, siempre hay algo q falta o no es comodo andar editando archivos de configuracion todo el tiempo para usarlos solo un rato. con proxychains no solo podemos pasar cualquier cosa a traves de un proxy sino q facilmente podemos crear cadenas como las q hablabamos al principio o simplemente redirigirlo a tor.
en caso de usar propios las listas pueden encadenarse de 3 tipos distintos. aleatorio, orden exacto o dinamico q es capaz de identificar y sacar de la cadena proxies muertos.
puede usarse practicamente con cualquier aplicacion de consola, nmap, ssh, wget... o lanzar aplicaciones graficas, simplemente:
# proxychains ssh root@.....
# proxychains nmap -sT .....
# proxychains pidgin
instalando y configurando todo
la explicacion va para debian y sus derivados, obviamente sirve perfecto para ubuntu q es lo q usa la mayoria (yo sigo prefiriendo el original... je). empezamos x descargar e instalar las 3 aplicaciones q se encuentran en los repositorios:
# apt-get install tor privoxy proxychains (con sudo en ubuntu)
tor no necesita mayor configuracion para el uso normal asi q ya esta corriendo y escuchando conexiones en el puerto 9050. como prueba pueden agregar en el navegador los datos de proxy socks como localhost en ese puerto y ya deberia estar funcionando. en firefox vamos a:
edit -> preferences -> advanced -> network
en "connections" hacemos click en "settings" y completamos los campos:
el siguiente paso es configurar privoxy. nos vamos a /etc/privoxy/ y editamos el archivo "config", al final agregamos la linea:
forward-socks4a / localhost:9050 . (con el punto al final incluido)
con esto lo q hacemos es redirigir el trafico de privoxy a tor. privoxy corre en el puerto 8118, de manera q con esos datos configuramos ahora el navegador pero en lugar de "socks host" usamos "http proxy" y checkemos "use this proxy server for all protocols".
para configuracion mas fina se puede usar la interfaz web a la q se accede x medio de la url:
http://config.privoxy.org/
de ahi vamos a:
"View & change the current configuration" (http://config.privoxy.org/show-status) y podemos modificar muchisimas opciones, desde cambiar el user-agent hasta sacar las animaciones a los GIFs.
otra opcion interesante es hacer q privoxy escuche conexiones de toda la lan, pudiendo asi tener una sola maquina corriendo tor y privoxy para usarla desde cualquiera en la red. para eso agregamos al final la linea:
listen-address x.x.x.x:8118
donde x.x.x.x es la ip de la pc local q esta corriendo privoxy. despues de esto se puede configurar como proxy en cualquier pc conectada a la lan.
finalmente nos queda proxychains para usar aplicaciones de consola. vamos a /etc/ y editamos "proxychains.conf". al final agregamos (o descomentamos):
socks4 127.0.0.1 9050
enviando el trafico a tor. por las dudas asegurense de q strict_chain y proxy_dns esten descomentados. si quieren poner una lista de proxies este tambien es el lugar en el formato q esta arriba.
epilog...
todo esto sirve para tener una seguridad aceptable pero tampoco significa q seamos "inrastreables" ni mucho menos ante una investigacion "seria". para ser completamente anonimos en una accion puntual lo mejor es usar un sistema operativo en un CD/DVD booteable y conectarse a una red publica bien lejos de cualquier lugar q pueda relacionarse con la persona q la realiza.
si vas a hacer algo en algun punto "ilegal", no te sientas intocable x usar tor... si vas a hacer algo ilegal... mejor no lo hagas. ;)