Docker Privoxy: un proxy web para mejorar la privacidad

carracho

Privoxy es un proxy web sin almacenamiento en caché con funciones avanzadas de filtrado para mejorar la privacidad, modificar los datos de las páginas web y las cabeceras HTTP, controlar el acceso y eliminar anuncios y otra basura molesta de Internet. Privoxy tiene una configuración flexible y puede personalizarse para adaptarlo a las necesidades y gustos individuales. Tiene aplicación tanto para sistemas autónomos como para redes multiusuario

¿Qué es esto?

'Docker Privoxy' es un proyecto personal. Viene con 'Privoxy' compilado para que filtre también HTTPS. Además de ofrecer una configuración base para que todo funcione sin mucha complicación:

  • Las autoridades certificadoras de confianza se descargan de curl.se (muchos otros servicios que usáis diariamente usan esta fuente).
  • Se genera el 'ca-bundle' para poder ser instalado a nivel de sistema o navegador.

Nota: De las otras imágenes que podréis ver publicadas en 'Docker Hub' no he visto ninguna compilada para usar HTTPS (tampoco las he visto todas). Piensan que si, pero ni el binario ni la configuración está habilitada. La imagen que yo ofrezco sigue las pautas documentadas por privoxy para compilar y ejecutar.
La funcionalidad de HTTPS es todavía experimental (yo de momento no he tenido ningún problema).

¿Cómo se usa?

Levantar Servicio

Básicamente seguir los pasos descritos en: https://hub.docker.com/r/ghtardo/docker-privoxy-https

docker run -d --restart unless-stopped --name privoxy -p 8118:8118 -v privoxy-ca:/usr/local/etc/privoxy/CA ghtardo/docker-privoxy-https

** Yo lo tengo funcionando con traefik sin problema. Algo como...

Ejemplo simple, labels traefik

Obtener 'ca-bundle'

docker cp privoxy:/usr/local/etc/privoxy/CA/privoxy-ca-bundle.crt .

Instalar 'ca-bundle'

Esto dependerá de como vayas a usar el proxy HTTP/S... si es a nivel de sistema o a nivel de navegador/aplicación. Lo más cómodo es a nivel de navegador... en chrome (y derivados) sería ir a la configuración y buscar 'Gestionar certificados' irse a la pestaña 'Entidades Emisoras' y añadir el 'ca-bundle' generado anteriormente.

Habilitando el proxy (navegador)

Una vez tenemos todo listo, ya podemos decirle al navegador que trabaje usando nuestro proxy... esto dependerá del navegador. En chrome el uso de proxies no viene habilitado... yo para esto uso la extensión 'Proxy SwitchyOmega'.
Simplemente debemos tener en cuenta que tenemos el proxy trabajando en el puerto 8118.

Comprobar que todo funciona

Simplemente intenta entrar aquí: https://config.privoxy.org/show-status
Ese es el panel de Privoxy, podrás ver algunas estadísticas y configuraciones.

También podrás ver que el certificado de las páginas ha cambiado...

¿Algo más?

Iré completando y comentado a medida que vaya trabajando en 'privman'... son recibidas aportaciones, comentarios, etc...

3
HeXaN

De aquí a un año me cuentas.

3 3 respuestas
Kaledros

hostia puta

2
newfag

#2 pero qué dices ? me alegro de que estés de vuelta mamonazo

Exor720

Por un momento pensé que era un post de hace 4 años xD #2

3
Soltrac

#2 Q ganitas tengo de verte dialogar con @desu

2
Zireael

what

Leagrove

Que hijos de puta como le habéis robado la cuenta...

D10X

Q sentido tiene un proxy en tu red local?

1 respuesta
carracho

#9 La idea es tener algo como 'AdBlock' pero sin usar 'AdBlock'. Privoxy no tiene que pelearse con las API's del navegador.

Al final he encontrado un script que traduce reglas de AdBlock a Privoxy... en principio voy a meter estas listas (y no todo el tipo de reglas):

** Tengo ver aún como se comporta privoxy con todo esto...

carracho

Actualizada la imagen... toda la info en: https://hub.docker.com/r/ghtardo/docker-privoxy-https

He actualizado la configuración para unos estándares más actuales que los que propone la documentación. Solucionando así algunos problemas que he tenido por ejemplo con github o soundcloud...

He metido el script de https://github.com/Andrwe/privoxy-blocklist para pasar de reglas adblock a privoxy... no es perfecto y de hecho los filtros que afectan a clases hace que el proxy trabaje lentísimo... por lo que estoy viendo el script genera "regex" enormes.
Lo que tengo pensado es crear un 'filtro externo' y tirar de https://github.com/adblockplus/libadblockplus ... así que todo esto del 'traductor' de adblock a privoxy es temporal. Es algo que no he visto en profundidad y no se hasta que punto privoxy funciona con los "filtros externos"... así que toda la idea se puede derrumbar :D
Sea como fuere, el tema de los filtros de adblock necesita trabajo para dejarlo "usable" más que para filtrar por dominio (que para eso no hace falta la inspección HTTPS xD)

Luego están temas como cosas generadas "al vuelo" por la página... o websockets más allá del "upgrade". Vamos, que un adblock instalado, de momento, te da mejores resultados de bloqueo que privoxy (al menos hasta donde yo llego actualmente)...

Al menos está siendo entretenido :B

2
carracho

Pequeño inciso que estoy viendo...
Yo uso uBlock junto con esta imagen de Privoxy... y aún con uBlock activado (el cual bloquea ya ciertas peticiones salientes 'net::ERR_BLOCKED_BY_CLIENT')... privoxy está interceptando el 1.21% de las peticiones (de momento).

Usuarios habituales

  • carracho
  • D10X
  • Leagrove
  • Zireael
  • Soltrac
  • newfag
  • Kaledros