Como Instalar Squid3+Thundercache+Dansguardian en modo transparente

+1
0
-1

Bueno amigos esta idea surgió cuando esta buscando squid y me di cuenta que squid se puede integrar con muchos programas mas como por ejemplo en esta ocasión lo voy a instalar con dos programas o plugins de squid uno es Thundercache 3 y el otro es Dansguardian, bueno la cosa esta así yo tengo un ciber internet en mi casa y mis clientes miran mucho youtube, el problemas es que yo tengo internet satelital y tengo una cuota de descarga diaria y si me paso me quedo sin internet, por cierto lapso de tiempo, entonces instalo squid para cachear las paginas web para que no consuman mucho la banda ancha e instale el Thundercache para que miren un vídeo una ves y la próxima ves se cargue como de rayo ese es el objetivo de thundercache cachear los vídeo de diferentes sitios para no consumir mas el ancho de banda y se sature demasiado y el dansguardian para impedir que las personas miren paginas de pornografía o descarguen a ciertas horas como por ejemplo en mi ciber permito las descargas de 8:00 AM a 1:30 PM, bueno empecemos:

primero tenemos que tener en cuenta que en este tutorial eth0 es la interface que se conecta a internet y eth1 es la interface que se conecta a la red, vamos a mostrar información referente a nuestras interfaces de red. En una consola tecleamos:

ifconfig


En mi caso eth0 es dhcp y eth1 es estatica y para configurar las interfaces de red tecleamos en terminal:

sudo gedit /etc/network/interfaces

Y dejamos el archivo de la siguiente forma:


auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

Bien, ya tenemos configurada eth0 como dinámica y eth1 como estática. Ahora reiniciamos el servicio de red, desde la terminal:

sudo /etc/init.d/networking restart


Vamos ahora a instalar el servidor DHCP en nuestra máquina, desde un terminal escribimos:

sudo aptitude install dhcp3-server


Ya tenemos instalado nuestro servidor DHCP, ahora vamos a configurarlo, así que tenemos tecleamos lo siguiente en una consola:

sudo gedit /etc/dhcp3/dhcpd.conf


Una vez con el archivo abirto, borramos el contenido y lo dejamos aproximadamente así:

option domain-name-servers 192.168.1.1;
option subnet-mask 255.255.255.0;
option netbios-name-servers 192.168.1.1;
option routers 192.168.1.1;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.14;
option domain-name-servers 192.168.1.1;
option subnet-mask 255.255.255.0;
option netbios-name-servers 192.168.1.1;
option routers 192.168.1.1;
host PC1 {
option host-name "MAQUINA1";
fixed-address 192.168.1.2;
}
host PC2 {
option host-name "MAQUINA2";
fixed-address 192.168.1.3;
}


Explicación del contenido: En subnet, vamos a configurar cómo se asignarán las direcciones para esa red (que está controlada por eth1), aparte de indicarle la misma información que antes, le debemos de especificar el rango con el que queremos que trabaje. En mi caso he especificado del 1 al 14.

En host, definimos la dirección que se asignará a cada máquina de nuestra red, se especifica el nombre real y la dirección IP. Así hasta que completemos todos los equipos de los que dispondrá la red.

Ahora reiniciamos el servicio de DHCP con el siguiente comando:

sudo /etc/init.d/dhcp3-server restart

Creando las iptables

Vamos ahora a crear las llamadas iptables. Las iptables son un complemento del framework Netfilter, usadas para el filtro de tráfico en una red. Nosotros vamos a usarlas para redirigir el tráfico del puerto 80 al 3128, entre otras cosas.

Para crear nuestras iptables, debemos crear un archivo con ellas, para crear el archivo tecleamos el siguiente comando en un terminal:

sudo gedit /etc/init.d/proxy-rules.sh


Al nuestro archivo le añadimos lo siguiente:
echo "Aplicando las reglas para el direccionamiento, espere..."
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -F
iptables -X
iptables -Z

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/255.255.255.0 -j MASQUERADE

Explicación de las iptables: Las primeras reglas iptables eliminan cualquier iptable que se encuentre en ejecución en ese momento. La primera cadena de iptables, direcciona el tráfico de nuestra red desde el puerto 80 al puerto 3128. La segunda cadena de iptables, se encarga de enmascarar nuestra red para que pueda salir a Internet mediante la interfaz eth0.

Descargando, compilando y configurando Squid

Vamos ahora a descargar Squid desde su web oficial para después compilarlo. Las versiones disponibles las podemos ver en http://www.squid-cache.org/Versions/, sería ideal trabajar con la última versión estable de Squid, en este caso, la última versión estable es la 3.0. Antes de descargar Squid, nos vamos al directorio /usr/local/src, para ello tecleamos en la consola:

cd /usr/local/src


Una vez allí, volvemos a teclear en el terminal lo siguiente:

sudo wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE24.tar.gz


Eso descargará la última versión de Squid al directorio en el que nos encontramos. Cuando ya tenemos descargado el paquete de Squid, tenemos que descomprimirlo, por lo que tecleamos en un terminal:

sudo tar xvzf squid-3.0.STABLE24.tar.gz


Muy bien, ya tenemos los archivos de Squid listos para compilar, para esto necesitaremos tener instalado un compilador de C/C++ en nuestra máquina, por lo que en un terminal tecleamos:

sudo aptitude install build-essential


Una vez instalado el compilador, y estando dentro de /usr/local/src, tecleamos en un terminal:

cd squid-3.0.STABLE24


Bien, ya estamos dentro de dicho directorio, ahora de nuevo en un terminal tecleamos lo siqguiente:

sudo ./configure --prefix=/usr/local/squid --enable-linux-netfilter --enable-follow-x-forwarded-for --enable-x-accelerator-vary


Cuando el proceso acabe (es posible que esté unos minutos) tecleamos esto ahora:

sudo make


Este proceso también tardará unos minutos posiblemente. Al finalizar este proceso, escibimos lo siguiente en la consola:

sudo make install


Ya tenemos Squid instalado en /usr/local/squid. Vamos ahora a crear el usuario y grupo squid. En un terminal tecleamos:

sudo useradd squid


Y después:

sudo groupadd squid


Ahora vamos a hacer al usuario squid dueño de los directorios de Squid. Para ello nos vamos a un terminal y tecleamos:

cd /usr/local/squid


Una vez estamos en este directorio, tecleamos lo siguiente:

sudo chown -R squid *


Y depués:

chgrp -R squid *


Con esto, el usuario squid ya es dueño de los directorios que maneja Squid. Vamos ahora a configurar nuestro Squid para permitir la conexión a nuestra red, nos vamos a un terminal y tecleamos:

sudo gedit /usr/local/squid/etc/squid.conf


Con esto, el usuario squid ya es dueño de los directorios que maneja Squid. Vamos ahora a configurar nuestro Squid para permitir la conexión a nuestra red, nos vamos a un terminal y tecleamos:

sudo gedit /usr/local/squid/etc/squid.conf

Una vez tenemos el archivo, con Ctrl + F, buscamos la línea http_port, la borramos y la añadimos de esta forma:

http_port 192.168.1.1:3128 transparent


Ahora buscamos la línea cache_dir, y la dejamos de la siguiente manera:

cache_dir ufs /usr/local/squid/var/cache 1024 16 256


Volvemos a realizar otra búsqueda, esta vez de cache_effective_user, aquí añadimos dos líneas:

cache_effective_user squid
cache_effective_group squid


Ahora vamos a añadir una ACL, nos vamos a la zona de las ACL, que está por la línea 600 más o menos, y allí añadimos:

acl nuestra_red src 192.168.1.0/24


Vamos ahora a añadir una regla http_access, nos vamos aproximadamente a la línea 645, y añadimos:

http_access allow nuestra_red


Ya queda poco por hacer, ahora vamos a crear los directorios para la caché de Squid, así que desde un terminal tecleamos:

sudo /usr/local/squid/sbin/squid -z


Ahora toca configurar rc.local para que arranque Squid y proxy-rules.sh al iniciar Ubuntu, esto es fácil, desde el terminal tecleamos:

sudo gedit /etc/rc.local


Una vez con el fichero abierto, añadimos lo siguiente:

sh /etc/init.d/proxy-rules.sh
cd /usr/local/squid/sbin/
./squid


Magnífico, ya sólo queda reiniciar nuestra máquina y comprobar que hay dos procesos de Squid ejecutándose en nuestro equipo. Una vez con la máquina reiniciada, volvemos a abrir un terminal y tecleamos:

sudo ps ax | grep squid


Si nos apareden los dos procesos de Squid significa que todo está correcto, ya tenemos nuestro proxy caché transparente instalado y configurado.Esta informacion l apueden encontrar en http://thebitdeveloper.com/2010/03/11/squid-en-modo-transparente/, por si tienen alguna duda.

Despues instalaremos Thundercache 3, les dare la pagina de la cual instale yo mi Thundercache, solo con el consejo que cuando dice que ingresemos como root, teclearemos en consola sudo su y eso nos permitira hacer todo el procedimiento sin problemas:

http://perufw.wordpress.com/2010/04/22/instalando-thunder-cache-3-en-ubu...


Y luego Dansguardian para poner nuestras restricciones iremos a esta pagina en la cual nos dice como instalar Dansguardian:

http://thebitdeveloper.com/category/dansguardian/


Bueno la ultima parte es la mas importante en la configuracion de dansguardian editaremos esta parte del archivo con sudo gedit /etc/dansguardian/dansguardian.conf, editaremos la parte de Network Settings y la pondremos asi:

filterip = 192.168.1.1

# the port that DansGuardian listens to.
filterport = 8081 = Modificaremos el puerto de squid porque Thundercache utiliza el puerto 8080 tambien y lo cambiaremos por el puerto 8081

# the ip of the proxy (default is the loopback - i.e. this server)
proxyip = 192.168.1.1 = esta sera la ip de nuestro servidor Proxy

# the port DansGuardian connects to proxy on
proxyport = 3128

ahora para finalizar cuando hicimos nuestro squid lo hicimos transparente y para que quede transparente con thundercache y dansguadian tienen que escribir esto en sudo gedit /etc/init.d/proxy-rules.sh y les tiene que quedar de esta forma:

echo "Aplicando las reglas para el direccionamiento, espere..."
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -F
iptables -X
iptables -Z

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8081
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/255.255.255.0 -j MASQUERADE

ya no tendran que ponerle nada al navegador y podran cachear las paginas web, los videos y restringir contenidos, espero que les sea de ayuda

Comentarios

Imagen de zone-net

Buenas yo instale el squid y el thundercache en debian me va muy bien con el tuto de perufw. todo bien pero no me envia los video a los clientes, me explico, hace cahe de los videos, incluso hace hit en la web registro, pero a los clientes, no les envia nada, aclaro que uso proxy transparente uso mikrotik el proxy de mikrotik como principal, donde hago el bloqueo de paginas, y el squid coo parent, estare haciendo algo mal o me falta algo, espero que aca si pueda solucionar mi problema.

z-n

Imagen de keikurono01

Hola, para hacer funcionar mikrotik con squid mejor es no hacer el squid en modo transparente, me imagino que el que se conecta a la wan es el mikrotik, y al lado esta el thunder.
otra cosa debes de darle prioridad de descarga para las conecciones que vengan de la targeta donde esta el thunder, en el postrouting del mikrotik.

existe un buen manual en vivaolinux de como hacerlo..

Poss: creo que el link de dansguardian no esta ahi.. :)
salu2.

Pfw

Imagen de Firecold

lo primero que tendrias que revisar si los navegadores de las demas maquinas tiene su configuracion con la ip del squid y el puerto de thundercache, me explico irias a tu navegador en el menu editar, preferencias, avanzado, red, configuracion, y en configuracion manual del proxy escribes lo antes descrito, espero que te sea de ayuda

Imagen de germanach

Para que habilitas el forward y el masquerade si estan todos saliendo por un proxy?
Me parece que si alguien en tu red pone directamente el gw se puede saltear el proxy y acceder directamente. El fw y el masq deberian estar deshabilitados.

Imagen de Fantasma1x

Te felicito amigo, es el primer tutorial que veo, que explica claramente y con detallela instalacion. Desde hace tiempo e querido instalar un servidor proxy y este se acomoda muy bien a mis necesidades (tengo internet satelital con FAP limitado), me queda una duda la direccion ip de mi red es el 192.168.0.1 entonces donde usas la direccion 192.168.1.0 (es al del modem) 192.168.1.1 es la que le asignas al eth 1 , entonces el mio tiene que quedar algo asi: 192.168.0.1 y 192.168.0.2 respentivamente?

espero aclare mis dudas

Imagen de raubontj

Hola Amigo
te comento que venia bien pero cuando puse en la terminal esta orden
sudo ./configure --prefix=/usr/local/squid --enable-linux-netfilter --enable-follow-x-forwarded-for --enable-x-accelerator-vary
me dice: "./configure orden no encontrada"
te agradecería mucho me pudieras ayudar
Saludos, Gracias