Edición de plugins Thundercache 3.1.2

Publicado por joemg6, Octubre 27, 2012, 11:38:55 AM

Tema anterior - Siguiente tema

joemg6

Edición de plugins Thundercache 3.1.2

Este es un tutorial para poder crear nuestros plugins de las páginas que deseemos que el thunder haga caché, voy a tratar de ser lo más detallado posible para que los que no tienen conocimientos en esto también lo puedan hacer, ya que una gran parte de los contenidos de las páginas solo requiere una edición de los códigos de fuente, solo requerirá que analicen sus headers y url del contenido.

Como ejemplo voy a tomar la página de movistar, se preguntarán por qué, porque vamos a hacer el plugin del servidor speedtest movistar peru (en caso de otros servidores solo modificar la url)

En Primer lugar tenemos que detectar la url del contenido, en este ejemplo utilizaremos la herramienta del Navegador Google Chrome que nos muestra las cabeceras de los contenidos esto lo podemos hacer presionando la tecla F12 (también se pueden utilizar otros modos para obtener las cabeceras, ya sea por utilidad de los navegadores, software o el mismo squid).


Como vemos en la imagen el dominio del servidor es "speedtest.movistar.c om" y la extención es "jpg" (en el caso de otro tipo de contenido se busca la extención por ej. flv,mp4 en algunos casos nos muestra flv?, mp4?).

Para editar plugin descargar el siguiente archivo donde contiene los archivos necesarios para compilar, tambien hay códigos de fuente de ejemplo (ya biene integrado en las nuevas instalaciones revisar en "/etc/thunder/")
http://www.joemg.host56.com/pl/pluginmaker.zip

Luego lo descomprimimos y lo movemos por ej. a la carpeta /etc/thunder/

wget http://www.joemg.host56.com/pl/pluginmaker.zip
unzip pluginmaker.zip
mv pluginmaker /etc/thunder/


Luego ingresamos a la carpeta pluginmaker y dentro de esta carpeta hay una carpeta plugins donde estan los códigos de fuente.

cd /etc/thunder/pluginmaker/plugins/


En este caso abrimos archivo movistar.com.cpp (puede ser con cualquier editor de texto) en este ej. Utilizáremos el editor que viene integrado en el WINSCP


Luego pasamos a compilar el código de fuente con los siguientes comandos (todo esto por terminal también se puede hacer con putty).

g++ -I. -fPIC -shared -g -o movistar.com.pe.so movistar.com.pe.cpp


Luego tenemos que agregar el regex correspondiente en el archivo /etc/thunder/thunder.lst (también lo podemos hacer desde ThundeReport) , en este caso declaramos la URL y las extenciones
http.*\.movistar\.com\.pe .*\.jpg

Luego de esto
- Copiamos el plugin a la carpeta /etc/thunder/plugins/ que es la que contiene todo los plugins del thunder.
- Luego damos permisos al plugin compilado
- Para verificar el funcionamiento del plugin reiniciamos el thunder y el squid
- Y por último verificamos si hace Hit el plugin (podemos ver si figura en el Thundereport)

Una captura de este proceso


En varios casos solo es necesario modificar este código de fuente, ahí paso a detallar las partes a modificar.
__________________________________________________________________________________________

#include <iostream>
#include <cstring>
#include <vector>
#include "../utils.cpp"

// use this line to compile
// g++ -I. -fPIC -shared -g -o movistar.com.pe.so movistar.com.pe.cpp
// regex
// http.*\.movistar\.com\.pe.*\.jpg

string get_filename(string url) {
       vector<string> resultado;
       if (url.find("?") != string::npos) {
           stringexplode(url, "?", &resultado);
           stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
           return resultado.at(resultado.size()-1);          
       } else {
           stringexplode(url, "/", &resultado);
           return resultado.at(resultado.size()-1);
       }
}

extern "C" resposta getmatch(const string url) {
   resposta r;    

   if ( (url.find(".movistar.com.pe/") != string::npos) and (url.find(".jpg") != string::npos)
    {
       
       r.file = get_filename(url);
       if (!r.file.empty()) {
           r.match = true;
           r.domain = "speedtest";
       } else {
           r.match = false;
       }
   } else {
       r.match = false;
   }
   return r;
}
________________________________________________________________________________________

rojo = nombre de dominio
azul = extenciones
verde = nombre del plugin que se mostrara en el ThundeReport

Al editar también cambiar el nombre del código de fuente por el dominio que corresponda.

Hay casos que se necesita cambiar la programación para que haga Hit pero lo más común es el tipo que se detalló en el ejemplo.
RaptorCache Developer

joemg6

En el caso de capturar las cabeceras y las Url de los contenidos de antivirus, juegos, etc. estos no se pueden hacer por el navegador web, por lo que podemos hacer es ver el tráfico que pasa por el squid esto ejecutando el comando

tail -f /var/log/squid/access.log


En la imagen identificamos la Url y el contenido de juegos de Softnyx



También lo podemos hacer utilizando un software para que capture esta información, en este ejemplo lo haremos con el programa HTTP Debugger.

Captura de la Url del contenido y las cabeceras del juegos de Softnyx.


Así podemos identificar la url de los contenidos que no podamos ver con la aplicacion del navegador web.
RaptorCache Developer

JOtiniano

Muy buen Programa para Capturar las URL y Cabezeras.
Gracias.
SL2.
Internet Satelital.
Servidores Firewall / Proxy.
Centrales Telefónicas / PBX.
Telefonía VOIP.
Sistemas de Información.

dgonzaleznet

Que debo tener en cuenta a la hora de hacer un pluggin? me refiero a q he notado q usan diferentes lantillas de codigo para luego compilarlos u sacar el pluggin claro q ya se identificar CAbeceras y he hecho un par de pluggins de paginas Locales de mi ciudad  Pero a la hora  de ver las paginas salen todas con los links y objetos dispersados por la pagina osea no se ve bien entonces que no mas necesiyo tener en cuenta?
Saludos Cordiales,
Daniel González Peña

seuz

Buen día, como veran soy nuevo por acá y mi primer inquietud es como le hago para hacer que thunder cachee esta web: http://www.meridiano.com.ve/ es super popular en mi país y quisiera que pasara por el thunder. cuales serian los pasos porque he visto el manual que acá deja JOEM pero ando como en chino.

Por ejemplo, si sigo este manual me quedo justo aqui trabado porque no sé de donde aparece el archivo movistar.com.cpp???
No sé si hay que crearlo, de verdad que me perdí alli


"Luego ingresamos a la carpeta pluginmaker y dentro de esta carpeta hay una carpeta plugins donde estan los códigos de fuente.
Código: [Seleccionar]

cd /etc/thunder/pluginmaker/plugins/


En este caso abrimos archivo movistar.com.cpp (puede ser con cualquier editor de texto) en este ej. Utilizáremos el editor que viene integrado en el WINSCP


Luego pasamos a compilar el código de fuente con los siguientes comandos (todo esto por terminal también se puede hacer con putty).
Código: [Seleccionar]

g++ -I. -fPIC -shared -g -o movistar.com.pe.so movistar.com.pe.cpp


Luego tenemos que agregar el regex correspondiente en el archivo /etc/thunder/thunder.lst (también lo podemos hacer desde ThundeReport) , en este caso declaramos la URL y las extenciones
http.*\.movistar\.com\.pe .*\.jpg"

alternet

me parece que el squid por si solo ya le hace catch a esa pagina http://www.meridiano.com.ve/ de todas formas para confirmarlo seria bueno que vayas al terminal del thunder y pongas esto  :

tail -f /var/log/squid/access.log | grep HIT 

si te salen respuestas con el "HIT" cuando accedes a esa pagina , quiere decir que el squid solo ya lo esta haciendo ..

ahora si tu interés es aprender como hacer los plugins . sigue adelante con el hilo que dejo joem es muy claro...

saludos...

seuz

Cita de: alternet en Noviembre 15, 2012, 05:23:12 PM
me parece que el squid por si solo ya le hace catch a esa pagina http://www.meridiano.com.ve/ de todas formas para confirmarlo seria bueno que vayas al terminal del thunder y pongas esto  :

tail -f /var/log/squid/access.log | grep HIT  

si te salen respuestas con el "HIT" cuando accedes a esa pagina , quiere decir que el squid solo ya lo esta haciendo ..

ahora si tu interés es aprender como hacer los plugins . sigue adelante con el hilo que dejo joem es muy claro...

saludos...

Al colocar ese código me mostraba muchisimas respuestas, tan rápidas que nunca pude ver si en realidad estaba haciendo HIT a la pagina que necesito.

alternet

Cita de: seuz en Noviembre 16, 2012, 11:13:53 AM
Al colocar ese código me mostraba muchisimas respuestas, tan rápidas que nunca pude ver si en realidad estaba haciendo HIT a la pagina que necesito.

esas "respuestas" es la navegación de todas las computadoras que tienes en tu red, tendrías que desconectar a las demás computadoras y probar solo con tu PC

saludos

luistec

Cita de: alternet en Noviembre 16, 2012, 01:34:42 PM
esas "respuestas" es la navegación de todas las computadoras que tienes en tu red, tendrías que desconectar a las demás computadoras y probar solo con tu PC

saludos
No necesariamente, lo que puede hacer es filtrar aparte del HIT su IP

Por ejemplo

tail -f /var/log/squid/access.log | grep 192.168.1.2 | grep HIT

Cambias el ip 192.168.1.2 con el de tu PC.

Saludos.

monfi

Por favor si pueden dar un link, donde puedo encontraro los plugins fuentes .cpp, con el proposito de evaluarlos y mostrar mis resultados. o cambios que relice

http://www.brazilfw.com.br/downloads/addons/bfw3.x/sources/bfwcache/  --> cache modificado por BRAZIL firewall

Por el momento les dejo un link : intersante de plugins .cpp y su desarrolo para BF cache, el mismo cache pero maquillado.

http://www.brazilfw.com.br/forum/viewtopic.php?f=12&t=83337

Nota : no quiero las muestras que hay en /etc/thunder/pluginmaker/plugins

Desde ya gracias...!

firecold

Cita de: monfi en Noviembre 18, 2012, 11:46:04 AM
Por favor si pueden dar un link, donde puedo encontraro los plugins fuentes .cpp, con el proposito de evaluarlos y mostrar mis resultados. o cambios que relice

http://www.brazilfw.com.br/downloads/addons/bfw3.x/sources/bfwcache/  --> cache modificado por BRAZIL firewall

Por el momento les dejo un link : intersante de plugins .cpp y su desarrolo para BF cache, el mismo cache pero maquillado.

http://www.brazilfw.com.br/forum/viewtopic.php?f=12&t=83337

Nota : no quiero las muestras que hay en /etc/thunder/pluginmaker/plugins

Desde ya gracias...!

Amigo lo que puedes hacer es un nuevo tema con lo que necesitas, yo con gusto te ayudare con lo que necesitas, en el apartado de plugins de thunder hay varios codigos fuentes de plugins que puedes revisar, y puedes pedir ayuda a joemg6 para los demas codigos cpp, asi tanto usted como nosotros nos beneficiamos, Saludos

DARKFOX

Cómo crear plugins para almacenar en caché los archivos estáticos como fotos?

jmvasilyd

Hola a todos gracias por todos sus aportes, estoy probando el thunder y quisiera actualizar el plugin de facebook pero no se como hacer funcionar el WINSCP 5.11 para que conecte con el servidor thunder no se que hacer me dice que el servidor denego el acceso alguien me podriar hechar una manito pliss es para testear los nuevos plugins gracias de antemano.-   ip de thunder 192.168.10.2    y asi poder comentar mi experiencia con los plugin nuevo.-

jmvasilyd

no puedo hacer conectar en WinSCP 5.11 con el thundercache para probar plugins alguien me ayuda esto es lo que me sale.




alguien me hecha una mano, para saber como debo conectarme paso a paso.- gracias de antemanos y saludo a la gran comunidad de alterServ me ah ayudado bastante y soy novato.-

luistec

Cita de: jmvasilyd en Noviembre 24, 2012, 12:32:31 PM
no puedo hacer conectar en WinSCP 5.11 con el thundercache para probar plugins alguien me ayuda esto es lo que me sale.

alguien me hecha una mano, para saber como debo conectarme paso a paso.- gracias de antemanos y saludo a la gran comunidad de alterServ me ah ayudado bastante y soy novato.-
Para que puedas utilizar el WinSCP y Putty tienes que haber primero instalado el servidor SSH en el servidor thunder para que asi puedas conectarte, en caso no lo hayas hecho lo haces con el siguiente comando

apt-get install ssh

Ahora puedes conectarte al servidor por el puerto 22

Para ingresar a WinSCP


Para ingresar con Putty y compilar los plugins


Lee bien los pasos para que no tengas problemas al compilar los plugins y al ponerlo en funcionamiento.

Saludos.

jmvasilyd

muchas gracias luistec.- un saludo para ti y gracias por tu respuesta muyy positiva.-! exitos

jamo

Buena explicación. Pero en el ejemplo se explica un plugin que ya se encuentra dentro de la carpeta de los plugins del thunder y para el caso de un plugin totalmente nuevo ( de una pagina que apenas se este analizando ) como se le hace ?????

Pregunto por que no se de donde se sacaria el codigo o los archivos que se mencionan en el ejemplo como los *.so y el *.cpp ?????

Bueno el código que se compile (que es el nombre_del_plugin.so) donde genera el archivo del plugin ??? ya directo en la carpeta de los plugins ?? y el codigo se escribe en la consola o se guarda en un archivo y se mete a la carpeta y de ahi se compila???

Y el otro archivo que lleva la extencion .cpp ?? como lo genero ??? o que codigo lleva?

se que esta claro todo lo explicado por joem pero hay cosas que no las entiendo, por favor abra alguien que me apoye ??? yo quiero colaborar y aprender a hacer los plugins pero siempre el iniciar se me complica.

En  que lenguaje de programacion se esta programando todo esto ??? alguna guia o fuente sobre la programacion orientada a esto ???


saludos

luistec

Cita de: jamo en Noviembre 29, 2012, 04:04:07 PM
Buena explicación. Pero en el ejemplo se explica un plugin que ya se encuentra dentro de la carpeta de los plugins del thunder y para el caso de un plugin totalmente nuevo ( de una pagina que apenas se este analizando ) como se le hace ?????

Pregunto por que no se de donde se sacaria el codigo o los archivos que se mencionan en el ejemplo como los *.so y el *.cpp ?????

Bueno el código que se compile (que es el nombre_del_plugin.so) donde genera el archivo del plugin ??? ya directo en la carpeta de los plugins ?? y el codigo se escribe en la consola o se guarda en un archivo y se mete a la carpeta y de ahi se compila???

Y el otro archivo que lleva la extencion .cpp ?? como lo genero ??? o que codigo lleva?

se que esta claro todo lo explicado por joem pero hay cosas que no las entiendo, por favor abra alguien que me apoye ??? yo quiero colaborar y aprender a hacer los plugins pero siempre el iniciar se me complica.

En  que lenguaje de programacion se esta programando todo esto ??? alguna guia o fuente sobre la programacion orientada a esto ???


saludos

Todo lo que preguntas se ve al inicio del tema, pero voy a detallartelo un poco más.

El primer paso identificar la url del contenido al que quieres hacer el plugin (arriva se ve como hacerlo)

El archivo con la extension .so es el plugin compilado en C++ y el archivo .cpp es el que contiene el código de fuente esto se puede editar con cualquier editor de texto o si se hace un codigo nuevo se pone esta extención extension por ejm. plugin.com.cpp (esto también se ve al inicio del tema)

El codigo de fuente (archivo con extensión .cpp) tiene que estar en la carpeta "/etc/thunder/pluginmaker/plugins/"  el compilado se realiza por terminal antes de hacer el compilado tienes que dirigirte a la ruta donde esta el codigo de fuente. por ejm
"cd /etc/thunder/pluginmaker/plugins/" y ahi procedes a compilar.

Todo el proceso se detalla al inicio del tema solo hay que prestar atención y leer bien.

Saludos.

jamo

jajajaj,,, ahora si me dijiste burro..............  Pero te agradezco la aclaración y solo asi me ha quedado claro y comienzo a ver si puedo con algunas paginas que tengo en mente.

Ya intente con esta pero no me ha funcionado, pero le sigo talacheando 
http://www.jaimemaussan.tv/

y voy con estas

http://tvolucion.esmas.com/
http://televisadeportes.esmas.com/

saludos

vfeitoza

Felicitaciones por la iniciativa y el sistema de desarrollo basado en plugin.
Una pregunta, ¿cuál es la base del Trueno 3.1.2?
¿Existe un repositorio abierto a la comunidad?