Copyright Copyright © José Luis Lara Carrascal 2008-2019 Sumario Introducción Características Instalación Crear un binario ejecutable nativo con GCJ Configuración rápida de Smart Cache Configurar el inicio de Smart Cache Configurar los clientes Iniciamos Smart Cache Controlar el tamaño de la caché de Smart Cache Iniciamos Smart Cache Enlaces Introducción Con este manual se completa el apartado dedicado a los proxys caché en Manualinux, los dos programas analizados, Polipo y el que vamos a tratar aquí, Smart Cache, son las mejores opciones que existen hoy en día para un usuario de GNU/Linux que necesite de este tipo de programas. El uso de uno u otro dependerá de las características particulares de cada uno, pero los dos cumplen de sobra lo que se debe de exigir a un programa de este tipo. Smart Cache es un proxy caché escrito en Java y, por lo tanto, multisistema. Se puede utilizar también en Windows (con unos resultados excelentes), sólo hay que modificar la ruta al directorio caché; el resto, sirve este mismo manual para su configuración y ejecución. Características * Bloqueo de todo tipo de publicidad al más puro estilo Privoxy. * Reemplazo de los enlaces bloqueados por una imagen al gusto del usuario. * 2 filtros de cookies para una mejor protección de nuestra privacidad. * Filtra los referer (las páginas en las que pinchamos para acceder a otras) para ocultar la procedencia de nuestras visitas a los sitios y que éstos no hagan un seguimiento de nuestra navegación. * Redirecciona las peticiones realizadas por el navegador en el caso de que escribamos dos direcciones diferentes para referirnos a un mismo sitio (http://www.manualinux.eu o https://manualinux.eu), no duplicando la caché y por lo tanto ahorrando una considerable cantidad de espacio en la misma. * Redirecciona mediante la creación de alias de las páginas que más visitemos reduciendo el nombre de las mismas. Ejemplo: Redirect http://miweb/* https://manualinux.eu/* * Mejora el uso interno de la caché de los navegadores, pudiendo eliminar ésta o reduciéndola a un tamaño muy pequeño, aumentando la velocidad de éstos. * Acceso seguro a la red, pueden compartirse navegadores y máquinas. * Uso del estilo CERN. para el almacenaje de los objetos de la caché, mostrando la jerarquía de los directorios de la misma forma que en el servidor web. * No modifica las extensiones ni los nombres de los archivos, convirtiendo de facto a la caché en un directorio de uso más del sistema donde encontraremos los archivos (.jpg,.zip,.txt,.rar,etc.) sin ninguna modificación de su contenido como tienden a hacer otros proxys caché. * Permite configurar los documentos que no queremos que sean almacenados en la caché. * Detiene de forma automática la descarga de la página al cancelar o detener la misma desde el navegador, reanudando su descarga cuando volvamos a visitarla. * Hace innecesaria la opción del menú del navegador "Guardar como..." a la hora de guardar elementos de las páginas web, permitiendo posteriormente la copia desde la caché del proxy. * Funciona siempre aún cuando no estemos conectados haciendo una simulación de internet muy buena. * No necesita activar la navegación offline como sucede con otros proxys, él mismo detecta cuando estamos conectados y cuando no. * Totalmente transparente, no tendremos ningún problema en actualizar de forma offline las páginas cacheadas. * No ejecuta el limpiador de la caché (Garbage Collection) cuando quiere. Es el usuario el que determina cuando se realizará una limpieza de la caché. * Limpiador de la caché (Garbage Collection) muy configurable, podemos ajustar qué páginas queremos que estén más tiempo en la misma. * Puede reparar la caché dañada sin perder todos los datos almacenados en ésta. * Interfaz de usuario HTML para búsqueda de páginas y configuración. * Integración de un gestor de descargas. * Soporte de compresión de los datos de la caché para un ahorro de espacio en el disco. * Integración de un capturador web, marca las páginas cuando está offline y las descarga después. * Soporte de conexiones persistentes HTTP/1.1 para un mejor rendimiento de la navegación. Instalación Dependencias Aplicaciones Entre paréntesis la versión con la que se ha instalado Smart Cache para la elaboración de este documento. * Java Runtime Environment (JRE) - (8u202) Descarga scache094.zip Extracción e Instalación como usuario Al ser una aplicación java y llevar los archivos de configuración dentro del mismo directorio de instalación y ejecución, lo más recomendable es instalarlo en nuestro directorio home. Por motivos de seguridad el proxy será ejecutado siempre por el usuario.
Crear el script de ejecución Como aplicación java que es, no permite ejecutarlo como un programa normal, así que crearemos un script de ejecución para no tener que entrar en el directorio del programa cada vez que vayamos a ejecutarlo, script cuyo ejemplo ya puse en el manual de Java. Abrimos un editor de texto y añadimos lo siguiente:
Lo guardamos en nuestro directorio ~/bin (si no existe lo creamos) con el nombre de scache y le damos permisos de ejecución (Se puede guardar en cualquier otro directorio /bin que esté en nuestro PATH).
Si utilizamos versiones anteriores de Java a la actual, las de la serie 1.5, el script quedaría de la siguiente forma:
En versiones de la serie 6 inferiores a la 6u18, el script quedaría de la siguiente forma:
Si queremos establecer un nivel de memoria mayor a utilizar por Java en el inicio del programa, simplemente cambiamos el valor numérico del parámetro '-ms5m' por otro mayor. Un ejemplo:
Crear el directorio de la caché El lugar habitual donde se ubican las cachés de los proxys es el directorio /var/cache, crearemos el directorio de la caché de Smart Cache dentro del mismo, y luego cambiaremos el dueño del directorio del root al usuario del sistema, en mi caso, jose:root, (usuario:el grupo al que pertenece).
Copiar los archivos de configuración de ejemplo Copiamos los archivos de configuración que vienen de ejemplo ubicados en el directorio samples al directorio raíz del programa.
Creación del archivo scache.desktop Para que Smart Cache sea detectado por los menús de entornos gráficos como XFce 4, o paneles como LXPanel o Fbpanel, abrimos un editor de texto y añadimos lo siguiente:
Lo guardamos con la codificación de caracteres UTF-8, y con el nombre scache.desktop. Luego lo copiamos a ~/.local/share/applications.
Crear un binario ejecutable nativo con GCJ
Descarga scache-0.94.tar.gz Extracción
Edición del archivo Makefile correspondiente para definir la versión de GCJ a utilizar Abrimos con un editor de texto, el archivo src/Makefile, y editamos lo que está en rojo. El ejemplo utilizado es para GCJ 6, utilizando el nombre asignado al binario ejecutable en el manual de instalación de GCC.
La ruta /opt/gcc6/share/java sólo es necesaria si utilizamos una versión de GCJ que no es la principal del sistema. Cambiar dicha ruta por la de la versión de GCJ que vaya a utilizar cada usuario y, si es necesario, cambiar también el nombre del ejecutable de GCJ. Compilación
Copiar el binario ejecutable creado al directorio de instalación de Smart Cache
Editar el script de ejecución de Smart Cache para que utilice la versión nativa creada con GCJ Abrimos con un editor de texto, el script de ejecución, y lo dejamos como aparece a continuación:
Consumo inicial de CPU y RAM de Smart Cache (versión nativa)
Consumo inicial de CPU y RAM de Smart Cache (versión bytecode)
Configuración rápida de Smart Cache A diferencia de Polipo en Smart Cache sí que es importante una óptima edición de los archivos de configuración, así que a continuación explico una manera rápida de configurarlo mediante la edición de éstos. 1) scache.cnf 2) gc.cnf 3) cookies.cnf 4) rfail.cnf 5) fail.cnf 6) pass.cnf 7) redir.cnf 8) rewrite.cnf 1) scache.cnf a) El puerto de conexión Abrimos este archivo con un editor de texto y establecemos en primer lugar el puerto que va a utilizar el proxy, por defecto es el 3128, en mi caso particular utilizo el puerto 8090. Línea 44
Esto implica automáticamente la edición del apartado que hace referencia a la interfaz web del proxy, que utiliza siempre un número por encima del puerto de conexión al mismo, en este caso sería el 8091. Línea 79
b) La ruta a la ubicación de la caché En el siguiente apartado establecemos la ubicación del directorio que contendrá la caché del proxy, que como ya hemos definido antes es /var/cache/scache. Línea 104
c) Los niveles de los directorios A continuación nos toca establecer los niveles de los directorios de la caché, estos irán en función del tamaño de ésta, y que para este manual se fija en 2500 MB, por lo que utilizaremos 9 niveles. En los ejemplos están los valores mínimos recomendables partiendo de la base de un tamaño de la caché igual o inferior a 500 MB. Línea 147
Siempre que se modifique el parámetro referente a los diferentes niveles de directorios de la caché, lo que implica también un aumento del tamaño de la misma definido en esta sección, tendremos que ejecutar el siguiente comando para reordenar la caché actual al nuevo número de niveles definido en este apartado.
d) Uso combinado con otros proxys Si queremos usar por ejemplo, la combinación Tor+Privoxy, junto con Smart Cache tendremos que añadirlo en el siguiente apartado, también podemos añadir un proxy anónimo. Línea 161
e) Utilizar una imagen gif para las páginas 403 y la publicidad Podemos utilizar una imagen gif con el fondo transparente para las páginas de acceso prohibido (403) y las que no se han podido cargar (500), además como explico más adelante nos servirá también para reemplazar la publicidad de las páginas por esta imagen al igual que hace Privoxy. Línea 499
f) Uso de la compresión de los datos de la caché Si no estamos sobrados de espacio en disco, podemos activar la compresión de datos de la caché que afectará sólo a los archivos en formato de texto (html, txt, etc.). El ejemplo de abajo es el más efectivo a la hora de trabajar con el proxy. Línea 705
2) gc.cnf Con este archivo de configuración controlamos todo lo que tiene que ver con el tamaño de la caché y la política a seguir en la expiración de los objetos que contiene. a) El tamaño de la caché Establecemos el tamaño de la caché máximo que servirá de referencia cuando haya que ejecutar el limpiador, cuyo comando se explica más adelante. Línea 17
b) El tamaño de cluster del sistema de archivos Establecemos el tamaño de cluster del sistema de archivos en el que se encuentra el directorio de la caché. Si no lo establecemos correctamente, Smart Cache no detectará correctamente el tamaño de la misma. Por norma general, en sistemas NTFS, EXT4, Reiserfs, XFS, etc. hay que dejarlo en 4096. Línea 28
c) El tiempo de referencia para la caducidad de los objetos de la caché En este apartado establecemos la fecha de caducidad, a partir de la cual los objetos que superen ésta serán eliminados de la caché cuando ejecutemos el limpiador. Por defecto viene establecido por 1 año (365d), que también se puede poner como 1y. Siguiendo las recomendaciones del programador de Smart Cache para un uso intensivo de navegación en modo desconectado lo fijamos en 2 años (2y). Línea 46
d) La memoria del sistema que utilizará el limpiador de la caché Aquí fijamos la cantidad de memoria del sistema que utilizará el limpiador de la caché para suprimir los objetos de ésta. Yo lo tengo establecido en 268435 (256 MB) para un sistema con 4096 MB. A mayor memoria más rápido será el proceso de purgado de la caché. Línea 92
e) Las penalizaciones que el limpiador aplicará a los objetos de la caché Con esto evitamos que la caché se llene de páginas de error (404), no accesibles (403), etc, además de regular la caducidad de los objetos que contiene, sigo aplicando las recomendaciones para una navegación en modo desconectado. Línea 128
f) Hacer que nuestras páginas favoritas no sean borradas nunca En este apartado podemos añadir las páginas que queremos que caduquen mucho más tarde que el resto, un ejemplo en el que las páginas añadidas caducarán 200 días después del resto de páginas, podemos establecer el número que deseemos. Hay que tener en cuenta que si accedemos a diario a estas páginas, la posibilidad de caducidad es nula, todo va en función del último acceso al directorio de la caché por parte del proxy y que es lo que determina la fecha de expiración de los objetos que la componen. Línea 153
3) cookies.cnf En este archivo de configuración definimos las páginas o dominios de las cuáles aceptaremos sus cookies, por defecto está establecido a todas (all), si queremos desactivar las cookies de todas las páginas (no es recomendable) poner none. Mi opinión es que desde el navegador nos va a resultar mucho más fácil y rápido la configuración de este apartado.
4) rfail.cnf Este es el primer filtro que Smart Cacheleerá a la hora de filtrar todo tipo de direcciones para evitar que éstas sean almacenadas en la caché, indicado para filtrar publicidad en combinación con fail.cnf, utiliza expresiones regulares. Si cargamos mucho este archivo, el consumo de memoria se dispara. Utilizar siempre el archivo de la sección siguiente a esta.
5) fail.cnf Este es el segundo filtro de direcciones que Smart Cache bloqueará, cuando sean cargadas, su uso más practico es para filtrar la publicidad de las páginas, su configuración es muy sencilla y sólo admite asteriscos (*) a la hora de crear reglas de filtrado con los nombres más habituales que utilizan las webs de publicidad.
6) pass.cnf Y en este otro archivo de configuración colocamos las direcciones que no queremos que sean bloqueadas, pero que al utilizar las reglas de filtrado del archivo fail.cnf aparecen bloqueadas, para entendernos, rescatamos aquellos enlaces que, teniendo publicidad en los mismos, sin la carga de ésta (en muchas páginas suele suceder) no podemos tener acceso a la total funcionalidad del sitio que pretendemos visitar.
7) redir.cnf En este archivo configuramos una de las caracteŕisticas más interesantes que posee Smart Cache y es la posibilidad de crear redireccionamientos. Por un lado podemos crear alias para por ejemplo, si escribo en el navegador: miweb, el proxy automáticamente me lleve a Manualinux o en el caso de que visitemos una web y nos interese de la misma una sección en concreto. Para poner un ejemplo, de adobe.com sólo me interesa la página de descarga del plugin de flash, así que puedo crear un redireccionamiento que al escribir en el navegador adobe.com me lleve de forma automática a la página de descarga del plugin, ahorrándome el hecho de tener que usar los marcadores del navegador para este cometido.
8) rewrite.cnf Este archivo se configura de la misma manera que el anterior y sirve para reubicar con otro nombre dentro de la caché del proxy las direcciones que definamos en el mismo.
Configurar el inicio de Smart Cache A diferencia de Polipo, la ejecución de Smart Cache es siempre recomendable hacerla de forma manual y desde el entorno que estemos utilizando, en mi caso, Fluxbox. Un ejemplo de atajo de teclado que añadiré al archivo de configuración, ~/.fluxbox/keys. Cuando ejecute la combinación: WIN+ALT+C, se lanzará la terminal Rxvt junto con la ejecución del proxy.
Este mismo comando de ejecución: rxvt -e scache, se puede añadir a los correspondientes menús de los administradores de ventanas y demás aplicaciones auxiliares cuyos manuales están disponibles en la web. Los que soporten archivos desktop, con el que hemos creado anteriormente servirá para que sea detectada la entrada de Smart Cache en los menús correspondientes. Configurar los clientes Con la dirección localhost:8090 para la conexión a Smart Cache, tendremos que configurar los navegadores y los gestores de descargas como wget para poder usarlos con el proxy. Dado que la inmensa mayoría de webs se han pasado al protocolo HTTPS, es muy recomendable configurar también el soporte de conexiones SSL para poder bloquear la publicidad de terceros. En los ejemplos de abajo, solo incluyo aquellos navegadores que utilizo habitualmente. 1) Pale Moon Aunque lo podemos configurar desde las preferencias del navegador, lo mejor es instalar la extensión Proxy Selector, lo que nos permitirá desactivar el proxy en conexiones de acceso mediante contraseña (por ejemplo, los foros) en el caso de que dé problemas. Para añadirlo sólo tendremos que hacerlo de la misma forma que se muestra en el ejemplo de las capturas de pantalla, haciendo clic en la entrada del menú de la extensión, en la barra de estado, en Gestionar los proxys >> Añadir. 2) Links En el navegador Links seleccionamos Configuración >> Opciones de red >> Proxies y en la casilla Proxy HTTP (máquina:puerto) añadimos localhost:8090 3) Dillo Se explica en el capítulo 9 de la sección correspondiente del manual de Dillo. 4) Wget Smart Cache mejora considerablemente la descarga de archivos con wget (solo HTTP), editamos el archivo de configuración personal de wget en nuestro home: ~/.wgetrc, si no lo tenemos copiamos el del sistema, que se encuentra en /etc/wgetrc.
nos vamos a la línea 75 y añadimos lo que está en rojo.
Para activar el proxy cada vez que lo deseemos, añadir la opción --proxy=on al comando de ejecución de la descarga, un ejemplo:
La opción -c es la que permite continuar las descargas no completadas, yo la añado siempre por defecto. Para más información sobre Wget, su correspondiente manual. Iniciamos Smart Cache Controlar el tamaño de la caché de Smart Cache Ejecutando los comandos que a continuación pongo, ajustaremos el tamaño de la caché con el primero, y con el segundo la repararemos en el caso de que sea necesario.
Enlaces http://scache.sourceforge.net >> La web de Smart Cache. |