Se ha publicado la versión 83 del servidor proxy de caché y antispam para uso personal con configuraciones flexibles.
Funciones principales (todo se configura):
- filtración de contenido no deseado (listas blancas/negras en URLs, prohibición de cookies);
- caché forzado y perpetuo de los datos recibidos (principalmente conveniente para imágenes y scripts);
- modificación de contenido de páginas web en tiempo real (modificando la fuente en C, hay un ejemplo para reemplazar el contenido de páginas clonadas de stackoverflow con un enlace al original);
- listas negras/blancas de certificados y fijación de certificados por lista;
- suplantación de dirección IP/dominio/ruta/protocolo de la solicitud HTTP según configuración (una versión ampliada de /etc/hosts);
- sniffer http/https.
Es ideal para navegar por sitios a través de una conexión a internet lenta o en un dispositivo lento (gracias a los puntos 1 y 2, para los cuales se creó todo esto), pero en general es útil en cualquier caso.
El servidor proxy se divide en tres partes por razones de seguridad y para simplificar la lógica de trabajo: servidor TLS (que termina las conexiones del navegador), módulo central del proxy y cliente, que termina las conexiones salientes.
El programa está diseñado para uso personalizado, es decir, todas las configuraciones y el directorio con los datos actuales del servidor proxy están vinculados a un usuario específico, o incluso a un perfil específico del navegador. Ejecutar el proxy como un demonio del sistema es técnicamente posible, pero en tal forma es difícil utilizar una de sus principales funciones: la caché agresiva de todo, ya que los datos en caché pueden ser diferentes para cada perfil de navegador y deben estar aislados entre sí por razones de seguridad.
Ejemplo de lista de bloqueos:
deny nosub all share.yandex.ru browser-updater.yandex.net deny nosub all a.ria.ru # ? deny nosub spec vk.com query \/share.php deny nosub spec yastatic.net query \/pcode\/adfox\/loader.js query \/share2\/share.js deny nosub spec www.youtube.com query \/subscribe_widget deny nosub spec pano.img.ria.ru query \/adriver\/flashplagin\/movie.swf deny nosub spec a.ria.ru query \/ping deny nosub spec n-ssl.ria.ru query \/polling deny nosub spec apis.google.com query \/js\/plusone.js deny nosub spec yandex.ru pref \/clck\/safeclick\/ pref \/clck\/click\/ pref \/clck\/jclck\/ deny all spec query \/tnc # index.ru contador proxy exact \/tnc.js # index.ru contador proxy query \/pixel.gif # algunos spammers usan esto
Ejemplo de lista de enrutamiento:
https://my.local.site set proxy none set target http://127.0.0.1:1234/localsite set http_host new.host:1234 .intel.com resolve off set proxy socks5://127.0.0.1:3333
En caso de una actualización desde una versión anterior a la 78, se debe convertir la caché: ingresar al directorio de trabajo del servidor proxy del usuario (uid/gid) del servidor proxy y ejecutar fproxy-cacheconv-78 (por defecto, este programa no se compila).
Cambios desde la última versión publicada (80):
- fproxy-dashboard ahora tiene la opción de mostrar los tamaños de contenido en bytes en lugar de kilobytes;
- soporte para servidores defectuosos que ignoran el encabezado «Connection: close»;
- soporte para servidores defectuosos que devuelven un encabezado incorrecto «Content-Encoding: identity»;
- envío de la opción TLS ALPN;
- mejoras en el funcionamiento del terminador TLS del lado externo (cliente): ahora admite no solo TLS, sino también conexiones normales, funciona como un demonio independiente que acepta solicitudes del proxy principal a través de la red, y también puede enviar sus conexiones salientes a través de otro proxy, permitiendo así dividir tareas de manera flexible entre nodos en condiciones de mala conexión a Internet y/o necesidad de organizar la «salida» del tráfico en un servidor remoto de diferentes niveles de confianza; la nueva versión también es más fácil de usar manualmente desde la línea de comandos como cliente TLS de consola con soporte de proxy;
- compilación simplificada, ahora hay un Makefile en lugar de scripts de shell
- paquetes .deb precompilados organizados en el repositorio (para versiones de Debian 8-12)
- cambios en el archivo de configuración, incompatibles hacia atrás
- nueva configuración para gestionar el enrutamiento de solicitudes, que combina las configuraciones anteriores de resolv y la opción de reenvío de conexiones salientes a un servidor remoto, además de recibir una serie de nuevas opciones: ahora se puede elegir para cada URL (protocolo, dominio, puerto, ruta) a través de qué cliente, qué proxy se enviará, a través de qué servidor DNS se determinará su dirección IP (incluyendo la opción de delegar esta tarea a un servidor proxy externo http o socks5), o especificar la dirección manualmente, además de cambiar el protocolo, puerto o prefijo de ruta de la URL.
- se agregó soporte para certificados SAN para direcciones IP tanto en el cliente como en el servidor (los navegadores desde hace un tiempo dejaron de aceptar direcciones IP en CommonName)
Planes futuros:
- soporte CGI/FastCGI/.so hooks para la manipulación mitm del contenido recibido de los sitios
- gestor de perfiles y configuraciones de proxy
- control interactivo para la verificación de certificados de sitios remotos y listas de bloqueo
Fuente: linux.org.ru
