La combinación ideal: Debian + squid + thundercache + apt-cacher-ng

Imagen de RazaMetaL

Tema: 

En mi red privada tengo varios usuarios con varios sistemas operativos. Las actualizaciones de Ubuntu, windows, antivirus, videos de youtube, y un largo etcetera, cuando son descargados mas de dos veces consumen ancho de banda y es para mi un problema, podemos ahorrar mucho utilizando squid y thundercache para hacer caché de los archivos antes mencionados y adicionalmente apt-cacher-ng para hacer caché de manera transparente de los paquetes deb descargados desde internet.

[b]Descripción:[/b]
- Utilizaremos Debian GNU/Linux como sistema operativo;
- Utilizaremos squid en modo transparente para hacer cache de páginas web;
- Utilizaremos apt-cacher-ng en conjunto con squid para hacer cache de los paquetes .deb que descarguemos con apt-get, aptitude, synaptic, etc;
- Utilizaremos thundercache para hacer caché de videos, actualizaciones antivirus, megaupload, rapidshare, etc;
- Tengo dos interfaces de red, eth0 conectada a Internet y eth1 conectada a mi red interna;

[b]Instalando Squid:[/b]
Nada mas sencillo que escribir como root:

aptitude install squid

Configuramos squid en modo transparente, si tenemos muchos usuarios es recomendable incrementar el parámetro "file descriptors":

sed -i 's/http_port\ 3128/\http_port\ 3128\ transparent/g' /etc/squid/squid.conf
sed -i 's/\#http_access\ allow\ localnet/http_access\ allow\ localnet/g' /etc/squid/squid.conf
sed -i 's/SQUID_MAXFD\=1024/SQUID_MAXFD\=4096/g' /etc/default/squid

Con iptables redirigimos las peticiones al puerto 80 hacia el puerto 3128 en el que escucha squid, estas líneas las podemos agregar en /etc/rc.local para que sean ejecutadas cuando se inicie el servidor:

echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -A INPUT -i eth1 -p tcp --dport 3128 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -s 0/0 --dport 80 -j REDIRECT --to-port 3128

[b]Instalando apt-cacher-ng:[/b]

aptitude install apt-cacher-ng

Configuracion de squid para y apt-cacher-ng:
Agregamos en /etc/squid/squid.conf lo siguiente en la sección de acl :

# Configuracion para hacer apt-cacher-ng transparente:
cache_peer localhost parent 3142 7 proxy-only no-query no-netdb-exchange connect-timeout=15
acl aptget browser -i apt-get apt-http apt-cacher apt-proxy
acl deburl urlpath_regex /(Packages|Sources|Release|Translations-.*)\(.(gpg|gz|bz2))?$ /pool/.*/\.deb$ /(Sources|Packages)\.diff/ /dists/[^/]*/[^/]*/(binary-.*|source)/.
cache_peer_access localhost allow aptget
cache_peer_access localhost allow deburl
cache_peer_access localhost deny all
# Fin de configuracion para apt-cacher-ng

[b]Instalando thundercache:[/b]
Instalamos algunas dependencias:

aptitude install apache2 libapache2-mod-php5 php5 php-db php5-gd php5-sqlite sqlite3 libsqlite3-dev libstdc++6 unzip bzip2

Descargamos thundercache con el siguiente comando:

mkdir /usr/src/thundercache
cd /usr/src/thundercache
wget http://www.razametal.org/conf/thundercache/thunder3-32bits.tar.bz2

Lo descomprimimos e instalamos:

tar -jvxf thunder3-32bits.tar.bz2
cp -R sbin/* /usr/local/sbin
chmod a+x /usr/local/sbin/thunder

mkdir /var/log/thunder
mkdir /var/tmp/thunder
mkdir /var/run/thunder
mkdir /var/cache/thunder
ln -s /var/cache/thunder /thunder

chmod a+rwx /var/log/thunder
chmod a+rwx /var/tmp/thunder
chmod a+rwx /var/run/thunder
chmod a+rwx /thunder
chown -R www-data:www-data /thunder/
chmod -R 777 /thunder/
umask 000 /thunder/

cp etc/init.d/* /etc/init.d
chmod a+x /etc/init.d/thunder
cp -R etc/thunder /etc/thunder
touch /etc/thunder/whitelist
touch /etc/thunder/blacklist
ln -s /etc/thunder/thunder.php /var/www/thundercache.php
update-rc.d thunder defaults 98

Modificamos la configuración de squid en el archivo /etc/squid/squid.conf :

sed -i 's/hierarchy\_stoplist\ cgi\-bin/\#hierarchy\_stoplist\ cgi\-bin/g' /etc/squid/squid.conf

Agregamos al final del archivo /etc/squid/squid.conf:

# Thundercache 3
acl thunder_lst url_regex -i "/etc/thunder/thunder.lst"
cache deny thunder_lst
cache_peer 127.0.0.1 parent 8080 0 proxy-only no-digest
dead_peer_timeout 2 seconds
cache_peer_access 127.0.0.1 allow thunder_lst
cache_peer_access 127.0.0.1 deny all
# Fin de modificaciones para Thundercache

Podemos obtener un resúmen de la actividad de thundercache dirigiendo un navegador hacia:

http://ip.del.servidor/thundercache.php

Para eliminar automáticamente los archivos que no han tenido HITS durante las últimas 2 semanas debemos crear este script con el nombre /usr/local/bin/clear_thundercache y luego agregarlo como tarea programada:

#!/bin/sh
data=`date +"%Y-%m-%d" -d "2 week ago"`

dirs=`find /thunder/ -name domain.db`

for d in $dirs
do
lista="init"

dir=`dirname $d`
echo "entered in $dir."

while [ -n "$lista" ]
do
lista=`sqlite3 $dir/domain.db "select file from thunder where last_request < \"$data\" and requested = 0 limit 100;"`
for i in $lista
do
sqlite3 $dir/domain.db "delete from thunder where file=\"$i\""
if rm "$dir/$i" > /dev/null
then
echo "removed $i..."
fi
done
done
done

Lo hacemos ejecutable:

chmod a+x /usr/local/bin/clear_thundercache

Agregamos el script como tarea programada para que se ejecute todos los dias a las 16h00

echo "0 16 * * * root /usr/local/bin/clear_thundercache" >> /etc/crontab

Iniciamos Squid, thundercache, apt-cacher-ng y cron:

/etc/init.d/squid restart
/etc/init.d/thunder restart
/etc/init.d/apt-cacher-ng restart
/etc/init.d/cron restart

Podremos ver la actividad de cada servicio en el log respectivo:

tail -f /var/log/squid/access.log
tail -f /var/log/thunder/access.log
/var/log/apt-cacher-ng/apt-cacher.log

Comentarios

Instalacion en Centos

Imagen de RazaMetaL

Escribí una guia para poder instalar thudnercaché en Centos 5:

[url]http://www.ecualug.org/2011/06/01/instalar_thundercache_en_centos_5[/url]

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

hola me sale este mensaje por

hola me sale este mensaje por que sera me ayudas segui todo al pie de la letra


[root@www ~]# /usr/local/bin/clear_thundercache
/usr/local/bin/clear_thundercache: line 16: unexpected EOF while looking for matching ``'
/usr/local/bin/clear_thundercache: line 27: syntax error: unexpected end of file

"El que se enorgullece de sus conocimientos es como si estuviera ciego en plena luz."

Te hace falta alguna comilla

Imagen de RazaMetaL

Te hace falta alguna comilla ( " ) en el script. Copialo nuevamente y asegurate de hacerlo bien.

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

Gracias ya lo volvi a copiar

Gracias ya lo volvi a copiar y ya funciona chevere pero paso esto:
Estaba funcionando bien el thundercache y de repente abrí un video del youtube y me sale este mensaje en todos los videos

se producido un error vuelva a intentarlo mas tarde

eso me sale envés del video y encambio al hacer una descarga de megaupload me sale error y no se abre la pagina que pudo a ver pasado??

he probado a reiniciar el thundercache y no se arregla
he detenido el servicio del thundercache y reinicie iptables y ya funciona los videos y las descargas pero ya no hace cache de los videos
me ayudas porfavor

ha eso si los videos que ya estaban en el cache si se ven pero solo esos y los nuevos que abro no
En donde se pone el tamaño del cache thundercache ya que tengo un disco de 1tb y me gustaría darle unos 500 gb para el cache de los videos

"El que se enorgullece de sus conocimientos es como si estuviera ciego en plena luz."

Para todos

Amigos disculpa q los desilucione pero yo e estado probando y porbando y no funka 100% porque al parecen el q hace relajo es el squid.....
averiguando mucho del thunder incluso a los q tienen con microtik le funciona muy bien y ellos tienen un server microtik mas otro server en debian y les funciona super q bien....

para q usamos server en linux la sulucion es q tengan 2 server independiente una para trabajar con squid + nateo + apache + htb..etc..........Yo ya estoy en eso ajala q hay si funcione.....

Algunos problemas

hola a todos este es mi primer comentario , tengo algunas dudas sobre la implementacion del thunder yo lo coloque en modo paralelo al mikrotik , 1) que vercion del thunder es esta del tutorial? soy novato en linux esto es por que descargue unos plugins de la vercion 3.1 y queria copiarlos en el thunder 2) estoy teniendo algunos problemas con la paginas ejemplo: habro una pagina web (ar.msn.com) y no me respeta la velocidad impuesta por el mikrotik , y empieza la descarga de la nube pero para el colmo la descarga lo realiza mediante una marca que le realizo al thunder, ya que esta tiene un limite develociad de 5mb y el cliente tiene 5mb desde la interfas que tengo como wam. Espero poder hacerme entender.
Desde ya muchas gracias.

Thunders Cache

Como les decia anteriormente se necesita tener 2 server para poder realizar el thunders cache a la perfeccion asi q les voy a subir el archivo para q lo chequeen...

A mi me esta funcionando al 80% bien pero para poderlo al 100% necesitamos actualizarnos en MikrotiK y asi q en eso yo ya lo estoy haciendo para logar la magia del thunders .... mi correo es rifranco202325@gmail.com

hola a todos, disculpe la

hola a todos, disculpe la demora pense que les di la respuesta, pero primero con el tema del thunder que sale error de youtube, es por que los plugins quedaron obsoletos hay que reprogramar todo de nuevo. y con el tema del mikrotik y thunder es sencillo solo se sigue la instalacion del amigo razametal salvo la parte donde ponen la ip 127.0.0.1 si no estoy errado, ponen la ip que colocan a la unica placa que se tiene. en el mikrotik tinen que poner las reglas primero la de enmascarar la red a internet y luego la de redireccionamiento al thunder.Espero haver ayudado

Páginas