Tor + polipo + privoxy

Navegar a través de tor puede ser una experiencia anónima mas no necesariamente rápida, para mejorar un poco la velocidad y aumentar la seguridad vamos a utilizar dos programas.

El primero se llama polipo, el cual es un proxy ligero que hará un pequeño cache de las paginas visitadas a través de tor mejorando así la velocidad de carga la próxima vez que visitemos el sitio.

El segundo se llama privoxy, es un proxy que no hace cache y cuya función es filtrar el contenido no deseado además de mejorar la privacidad.

índiceComo podrá observar hay que hay que hacer una cascada con los proxy que permita al usuario disfrutar las ventajas de cada uno de los sistemas.

Esta es la forma final que tendrán las conexiones:

navegador ==> privoxy ==> polipo ==> tor ==> internet

Antes de comenzar a modificar las configuraciones debemos instalar el software que necesitamos además de cambiar algunos permisos, esto lo haremos mediante los siguientes comandos como root:

# echo "deb http://deb.torproject.org/torproject.org/ sid main" > /etc/apt/sources.list.d/tor.list
# echo "deb-src http://deb.torproject.org/torproject.org/ sid main" >> /etc/apt/sources.list.d/tor.list
# gpg --keyserver http-keys.gnupg.net --recv 886DDD89
# gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -
# apt update
# apt install deb.torproject.org-keyring
# apt update
# apt install polipo privoxy tor tor-arm
# mkdir -p /var/cache/polipo
# mkdir -p /var/lib/tor
# mkdir -p /var/log/polipo
# mkdir -p /var/log/tor
# adduser --system --no-create-home debian-tor debian-tor
# chown debian-tor:debian-tor /var/log/tor /var/lib/tor
# chmod 600 /var/lib/tor /var/log/tor
# chmod u+x /var/lib/tor /var/log/tor
# chgrp debian-tor /etc/tor/ /etc/tor/*
# chmod g+rw /etc/tor/ /etc/tor/*
# rm -f /usr/share/tor/tor-service-defaults-torrc
# ln -sv /etc/tor/torrc /usr/share/tor/tor-service-defaults-torrc

Ahora abrimos la configuración de tor en /etc/tor/torrc y borramos el contenido para luego colocar este:

## SocksPort para trafico generico
SocksPort 9050 IsolateDestAddr IsolateDestPort
## SocksPort para el navegador
SocksPort 9151

RunAsDaemon 1
DataDirectory /var/lib/tor
CookieAuthentication 1
LearnCircuitBuildTimeout 1
EnforceDistinctSubnets 1
WarnUnsafeSocks 1
SafeSocks 1
DownloadExtraInfo 0
OptimisticData auto
UseMicrodescriptors auto
UseNTorHandshake auto
NumCPUs 0
ServerDNSDetectHijacking 1
ServerDNSRandomizeCase 1
PIDFile /run/tor/tor.pid
AvoidDiskWrites 1
VirtualAddrNetworkIPv4 10.192.0.0/10
DNSPort 9053
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit,.onion
TransPort 9040
User debian-tor
DisableDebuggerAttachment 0
ControlSocket /run/tor/control
ControlSocketsGroupWritable 1
CookieAuthFileGroupReadable 1
CookieAuthFile /run/tor/control.authcookie
Log notice file /var/log/tor/log

Ahora modificaremos la configuración de polipo en /etc/polipo/config con el mismo procedimiento que el anterior, borramos y colocamos el siguiente contenido:

logSyslog = true
logFile = /var/log/polipo/polipo.log
socksParentProxy = localhost:9151
socksProxyType = socks5
proxyAddress = "127.0.0.1"
proxyPort = 8123
allowedClients = 127.0.0.1
allowedPorts = 1-65535
diskCacheRoot = "/var/cache/polipo/"
cacheIsShared = false
localDocumentRoot = ""
proxyName = "localhost"
disableLocalInterface = true
disableConfiguration = true
dnsUseGethostbyname = yes
dnsQueryIPv6 = no
disableVia = true
#censoredHeaders = from,accept-language,x-pad,link
#censorReferer = maybe
maxConnectionAge = 5m
maxConnectionRequests = 120
serverMaxSlots = 8
serverSlots = 2
tunnelAllowedPorts = 1-65535
pidFile = /run/polipo.pid

Como puede observar en la linea numero 3 y 4 se encuentra la conexión con tor, permitiendo que el trafico entrante en polipo tenga su salida a través de la red tor. Ahora realizaremos el mismo procedimiento con privoxy, abriendo /etc/privoxy/config y colocando lo siguiente:

user-manual /usr/share/doc/privoxy/user-manual
confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action
actionsfile default.action
actionsfile user.action
filterfile default.filter
filterfile user.filter
logfile logfile
hostname privoxy
listen-address  :8118
toggle  1
enable-remote-toggle  0
enable-remote-http-toggle  0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 4096
enable-proxy-authentication-forwarding 0
forward   /               127.0.0.1:8123
forward         192.168.*.*/     .
forward            10.*.*.*/     .
forward           127.*.*.*/     .
forwarded-connect-retries  0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
tolerate-pipelining 1
socket-timeout 300

En este caso privoxy se conectara a tor a través de polipo como puede verse en la linea 19, luego de realizar estas modificaciones solo falta configurar nuestro navegador para utilizar privoxy agregando los siguientes parámetros a su configuración:

  • Dirección: 127.0.0.1 o la ip de la maquina donde estén tor, polipo y privoxy
  • Puerto: 8118

Adicionalmente debe confirmar que las siguientes carpetas existan y sean accesibles:

  • /var/cache/polipo/
  • /var/lib/tor/
  • /var/log/polipo/

Para iniciar los servicios correspondientes solo debemos ejecutar los siguientes comandos (como root).

# service tor start
# service polipo start
# service privoxy start

Para apagar los servicios correspondientes solo debemos ejecutar los siguientes comandos (como root).

# service privoxy stop
# service polipo stop
# service tor stop

NOTA: Se recomienda desactivar su servidor SSH (en caso de que exista) antes de iniciar tor y hacer un respaldo de los archivos de configuración antes de comenzar.

Mas información:

ACTUALIZACIÓN: Puede utilizar el script tor-strong para automatizar el proceso de instalación de tor + polipo + privoxy.

Anuncios

6 pensamientos en “Tor + polipo + privoxy

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s