Monthly Archives: abril 2012

INSTALANDO HAARPCACHE V1.0 – 32BITS

Update: Nueva versión del haarpcache!.

HAARPCACHE es un sistema que trabaja a modo de proxy padre de un Squid u otro sistema proxy, haciendo cache de los archivos de vídeo como de youtube, y actualizaciones de antivirus y windows update, esto, para mejorar el rendimiento de un sistema de red local. Es un módulo ideal para los proveedores de servicios de Internet, ya que además de dar un rendimiento excepcional, proporciona un notable ahorro de ancho de banda.

  • Actualizado: 27-04-12
    • Agregado el limpiador de cache.
  • Actualizado: 31-04-12
    • La instalación abarca más distribuciones Debian.
    • Correcciones al plugin Mediafire.

Para su instalación solo bastará con ejecutar un script que hará todo por nosotros: (Se a probado en las distribuciones Ubuntu 10.x y 11.x)

su
wget http://archives.scienceontheweb.net/installhc.sh -O "installhc.sh"
chmod +x installhc.sh
./installhc.sh

[Nota: Verá que estamos instalando el proxy SQUID, si quieren usar 2 tarjetas de red, deben de configurar el proxy en modo transparente, vean como se configura aqui, o pueden buscar “como configurar proxy transparente” en google].

Este script descargará las dependencias necesarias para el uso del Haarp, instalará el servicio y también un visor para apreciar las estadísticas de los plugins.

Luego que finalice la instalación (cerciorarse que no se haya tenido ningún error al final).
editamos las configuraciones del squid:
sudo gedit /etc/squid/squid.conf
o
sudo vim /etc/squid/squid.conf
Al final del archivo agregamos las redirecciones hacia el haarpcache.

	#===================================================================#
	#Redirecionamento Haarp 3.x - REGEx
	#===================================================================#
	acl haarp_lst url_regex -i "/etc/haarp/haarp.lst"
	cache deny haarp_lst
	cache_peer IPHAARP parent 8080 0 proxy-only no-digest
	dead_peer_timeout 2 seconds
	cache_peer_access IPHAARP allow haarp_lst
	cache_peer_access IPHAARP deny all

Cambiar el “IPHAARP” por la ip del proxy.

buscamos y comentamos la linea:

#hierarchy_stoplist cgi-bin ?

Editamos el user y el password en las configuraciones del Haarp, según como hayamos configurado nuestro mysql:

sudo gedit /etc/haarp/haarp.conf

o bien por consola:

sudo vim /etc/haarp/haarp.conf

editamos:

MYSQL_USER root
MYSQL_PASS ********

Para concluir, hacemos que nuestros log’s roten cada día.
creamos el archivo, “sudo gedit /etc/logrotate.d/haarpcache” o “sudo vim /etc/logrotate.d/haarpcache”, y pegamos lo siguiente:

/var/log/haarp/*.log {
daily
compress
rotate 5
missingok
notifempty
postrotate
/etc/init.d/haarp restart > /dev/null
endscript
}

Finalmente reiniciamos los servicios.

/etc/init.d/haarp restart
/etc/init.d/squid restart

Si quieren ver la lista de procesos abiertos por el haarp (o corroborar el levantamiento del servicio), pueden hacerlo de esta forma:

ps aux | grep haarp

Estos procesos son justamente conocidos por threads, que son procesos que escuchan las llamadas del proxy (en este caso el squid) los cuales son atendidas por una de estas threads, el echo de tener varias implica que las llamadas al haarp no sean encoladas, sino mas bien despachadas en modo multitarea.

Ahora que ya casi terminamos, veremos que también tenemos una interfaz web, donde apreciaremos las estadísticas de nuestro Haarp, y de un historial mostrando las cantidades de los archivos descargados y archivos despachados (HITS) de cada dominio cacheado.

Cabe aclarar que se mostraran las estadísticas de los dominios que ya hallan tenido alguna actividad de almacenamiento, por ello en un principio la lista se mostrara vacía.

La direccion del reporte se presenta aqui:
http://IP_SERVER/cgi-bin/haarp.cgi

Obviamente se debe reemplazar el “IP_SERVER” por la ip de su servidor.

haarp1
haarp2

Podemos observar lo que ocurre con el haarpcache en:

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

La interfaz web tambien trae su propio log, pueden verlo ejecutando:

tail -f /tmp/loghc

Para limpiar el cache de archivos incensarios, deberemos de hacer uso del programa “haarpClear.o”:

#Descargamos el haarpClear
su
cd /etc/haarp/
wget "archives.scienceontheweb.net/haarpClear.o"
chmod +x haarpClear.o

para saber como usarlo (trae una ayuda).

./haarpClear.o --help
Usage: haarpClear [Options]

Possible options are:
--help | -h 				 This pamphlet
--week w | -w w				 Delete downloaded files ...
--num-hits numbhits | -n numbhits	 Delete the files should ...

En concreto, tenemos dos opciones, el número de semanas atras que se descagó el archivo (-w), y el numero de hits que ha tenido desde entonces (-n).

Por ejemplo, si queremos eliminar los archivos que se descargaron hace 15 semanas atrás, y en donde no tubo ningún hit, hasta hoy, pues deberemos de hacer lo siguiente:

./haarpClear.o -w 15 -n 0
#o bien:
./haarpClear.o -w 15 (-n 0, es por defecto)
#o tambien:
./haarpClear.o --week 15

y nos dará un resultado como este:

Deleting before of the date: 2012-01-13, whose hits are lower and equal to 0? (s/n): s
Connecting to the DB ...	[OK]
(0) Deleting ...  /haarp/youtube/6/8_24/179ad6d22e0c1c58.flv (2.40 MB)
(1) Deleting ...  /haarp/youtube/7/2_43/f9ed4f2bed844ed3.flv (10.07 MB)
(2) Deleting ...  /haarp/ytimg/4/5_04/6o1wind1iUc-hq.jpg (0.01 MB)
...
Total deleted: 204.283 MB

/**/

Si por alguna razón hubiese un problema o algún cambio en la configuración del haarpcache, podemos reiniciar el servico de esta forma:

killall haarp
/etc/init.d/haarp restart
squid -k reconfigure

Nota:
Igualmente cuando se presenta un HIT de algún objeto, el Haarpcache, nos enviará una cabecera HTTP con el contenido: “X-Cache: Hit from Haarp”, esto puede servir para diferenciar los paquetes que vienen desde Internet y de los que vienen desde el Haarp:

Podemos hacer uso de esto para controlar la velocidad de trasmisión de sus despachos a la LAN, por ejemplo, si queremos limitar la velocidad del flujo a 1MByte, podemos hacer lo siguiente;

IF_LAN=eth0
MAX_DOWN=1300kbps
MIN_CACHE_DOWN=1000kbps
MAX_CACHE_DOWN=1100kbps

iptables -A OUTPUT -t mangle -o $IF_LAN -p tcp -m string --string "X-Cache: HIT from Haarp" --algo kmp -j MARK --set-mark 666

tc qdisc add dev $IF_LAN root handle 1:0 htb default 10 r2q 15
tc class add dev $IF_LAN parent 1:0 classid 1:1 htb rate $MAX_DOWN ceil $MAX_DOWN
tc class add dev $IF_LAN parent 1:1 classid 1:66 htb rate $MIN_CACHE_DOWN ceil $MAX_CACHE_DOWN
tc qdisc add dev $IF_LAN parent 1:66 handle 66:0 sfq perturb 30
tc filter add dev $IF_LAN protocol ip parent 1:0 handle 666 fw classid 1:66

No hay mucho que aclarar aquí, se hace uso de IPTABLES y TC.

Espero les sirva.

*Siempre es bienvenido una donación*

LIDIANDO CON EL THUNDERCACHE 3, 3.1

Hola a todos, en vista que hay muchos que preguntan sobre los problemas que trae el thundercache 3, 3.1, he decidido hacer algunos arreglos al mismo, sobretodo en los plugins que ya caducaron bastante tiempo.

El problema en si, son las nuevas políticas de servicio que viene implementado Youtube en sus servidores, que hacen que muchos de los vídeos que se vean no puedan ser cacheados de manera fácil como se venía haciendo,  o lo venía implementado el thunder 3 y thunder 3.1.

El problema que se tiene es que con los plugins antiguos nuestros archivos cacheados se vienen corrompiendo, y esto hace que en algunos vídeos se detengan a la mitad y muestre un mensaje de error, o que nunca carguen, y se quede en espera indefinidamente.

Bueno, he leído en muchos foros sobre el tema, y al parecer recomiendan eliminar los archivos cacheados, anteriormente y luego actualizar el plugin de Youtube, pero esta forma no me parece razonable en el sentido que tengo muchos archivos en mi disco duro, como lo verán más adelante.

  • Para lidiar con este impase, deberemos de eliminar los archivos corruptos, por medio de un programa que descargaremos:
  • wget http://archives.scienceontheweb.net/LimpiarCacheCorrup.so
    

    nos logeamos como root y le damos permisos de ejecución:

    su
    chmod +x LimpiarCacheCorrup.so
    

    lo ejecutamos, y veremos como elimina los archivos corruptos que va detectando, nos dará las salidas de esta forma:

    ./LimpiarCacheCorrup.so
    Looking ...
    (1) Corrupt file found: /thunder/youtube/2/6_39/769980634e7d4d36.flv
    Removing ...
    (2) Corrupt file found: /thunder/youtube/2/6_18/cd121b7fa26a90d7.flv
    Removing ...
    ....
    Deleted files: 401
    50.20 sec
    

    Vale decir que este programa funciona para el thundercache 3.1 y no para el thundercache 3.0.

    Una vez que limpiamos los archivos dañados, debemos de descargar el nuevo plugin de Youtube:

    wget http://archives.scienceontheweb.net/youtube.com.so
    

    La agregamos a nuestro directorio de plugins:

    cp youtube.com.so /etc/thunder/plugins/
    

    Este plugin, funciona tanto para el thundercache 3.0 como para el del 3.1.
    Reiniciamos el thundercache y las configuraciones del squid:

    /etc/init.d/thunder restart
    squid -k reconfigure
    

    Después de esto podremos estar más tranquilos ya que nuestros vídeos serán vistos sin problemas, y si estuvieron cacheados estos se despacharán sin inconvenientes :).

  • Si desean pueden darle una hojeada a este nuevo cache, que no tiene estos problemas: https://perufw.wordpress.com/2012/04/07/instalando-haarpcache-v1-0/

    Saludos!.

    *Siempre es bienvenido una donación*