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

Gracias por contestar

Hola chilino precisamente el dia de hoy desmonte el servidor squid de mi red por el problema que me ha dado
voy a reinstalar todo desde el comienzo ya que al estar haciendo pruebas por aqui y por aya algo he de haber movido
ahora comenzare hacerlo y te comento a ver q pasa, en esta ocasion lo voy a hacer con el distro de ubuntu edicion server
me a comentado un amigo que a el le a funcionado muy bien este distro, terminare de armarlo y les comentare que paso
saludos

Ayuda

Hola

RazaMetal....

Quisiera saber si a ti te a funcionado todavia el thunders cache3 digo como a hora hay la version6.
Y si funciona tranquilamente con ubuntu y de hay lo redirecciono para q trabaje con centos 5.5 esque es con ese servidor con el q estoy trabajando... porque e estado averiguando a quienes provee el thunders cache vercion 6 me dice q funka bien con server mikrotik............................. Se te agradece si me ayudas con tu conociomientos esque soy novado en esto...

Instrucciones para instalar Thudercache en CentOS

Imagen de RazaMetaL

Con esta linea podran instalar thundercache en Centos:


yum install squid httpd php php-cli php-mysql php-gd sqlite sqlite-devel libstdc++-devel unzip bzip2

Si al iniciar thundercache tienen un mensaje como este:

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/local/sbin/thunder)

Deben hacer lo siguiente:
Descargar gcc-g++-4.2.3-i486-1.tgz :

mkdir /usr/src/gcc
cd /usr/src/gcc
wget ftp://ftp.slackware.org.uk/slackware/slackware-12.1/slackware/d/gcc-g++-4.2.3-i486-1.tgz
tar zvxf gcc-g++-4.2.3-i486-1.tgz
cp /usr/src/gcc/usr/lib/libstdc++.so.6.0.9 /usr/lib/
rm /usr/lib/libstdc++.so.6
ln -s /usr/lib/libstdc++.so.6.0.9 /usr/lib/libstdc++.so.6

Y listo, ahora podremos iniciar thundercache en Centos 5.

-----

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({});

Thunder

hola Raza metal
te comento que tengo problemas con el thunder vera no me habre el hotmail.com si pongo la ip de la maquina y si lo pongo sin proxy me funciona todo bien....
otro descargo un video de yotube lo descarga en internet explorer hay lo veo de nuevo todo bien pero hay no hace "Hits" si lo habro con mozilla poniendo la misma y de la maquina en el proxy me carga pero lento y hay me carca el Hits pero hay deveria verse rapido....
Pero internamente en la misma maquina de ubuntu si funca todo bien

a no ser que sea para debian

Imagen de deathUser

a no ser que sea para debian o derivados el paquete será httpd no apache2, creo que RazaMetal no se ha molestado en ver las equivalencias de los paquetes ...

Tampoco necesitarás libapache2-mod-php5 que no creo que exista en CentOS

bye
;)

Tienes razón, httpd sería el

Imagen de RazaMetaL

Tienes razón, httpd sería el nombre equivalente de apache2 en CentOS.

-----

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({});

Ayuda

Hola amigos le comento q estoy configurando el thunder cache de Raza Metal ..... Las configuraciones salen todo bien aveces sucede q cuando ya esta cacheado el video se pone lento pero al momento de borrar /var/spool/squid/..... hay me comienza a cachear de nuevo nesecito ayuda amigos no se como hacer gracias por su colaboracion

Thunder en Ubuntu 10.04.2 LTS

Probé a instalar thundercache en Ubuntu 10.04.2 y seguí todos los pasos pero al querer arrancarlo me da este error

Shutting down Thunder ...
Starting Thunder ...
/etc/init.d/thunder: 109: /usr/local/sbin/thunder: not found

Ya revisé que exista el thunder en esa carpeta tiene los permisos de ejecución pero no encontré la forma de hacerlo funcionar.

Si alguien tiene la solución....

PD= Es Ubuntu x64 también descargué la versión de x64 desde este link "http://www.biazus.com/forum/download/file.php?id=179" -O thunder3-64bits.tar.bz2
pero me da el mismo error....

Que obtienes si ejecutas: ls

Imagen de RazaMetaL

Que obtienes si ejecutas:


ls -alh /usr/local/sbin

:? :?

-----

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({});

Páginas