Você está na página 1de 10

20/11/13

Squid en modo transparente | The bit developer

Squid en modo transparente


MAR 11 Publicado por Samuel

Hola a todos, fui un peln mentiroso cuando dije que la prctica de Dansguardian iba a ser la ltima del curso. Esta s que va a ser la ltima. Hoy vamos a ver cmo configurar Squid en modo transparente.

Modo transparente?
Normalmente, los proxys navegan a travs del puerto 3128, y hay que configurar los clientes para que puedan acceder a internet a travs del proxy. En cambio, en un proxy transparente, no es necesario configurar ningn cliente, todo se configura una nica vez en la mquina en la que est instalado el proxy y los clientes no saben que navegan a travs de este. Se redirige el trfico del puerto 80 al 3128.

Empezando
Supongamos que tenemos una red local con tres equipos que deseamos conectar a internet, pero antes queremos que pasen por un proxy, ya sea para filtrar contenidos o para almacenar informacin en la cach. Para ello necesitamos una mquina con dos interfaces de red, una para nuestra red local y otra que nos conectar a Internet. Sabiendo esto, vamos a comenzar.

Configurando las interfaces de red


En primer lugar vamos a mostrar informacin referente a nuestras interfaces de red. En una consola tecleamos:
i f c o n f i g

Como vemos en la imagen, poseemos dos interfaces de red, etc0 y eht1. eth0 ser la interfaz que nos conectar con nuestra red local y eth1 nos conectar con el ruter que a su vez no conectar a Internet. Necesitamos configurar eth0 de forma esttica, para ello abrimos un terminal y tecleamos:
thebitdeveloper.com/2010/03/11/squid-en-modo-transparente/ 1/10

20/11/13

Squid en modo transparente | The bit developer

s u d og e d i t / e t c / n e t w o r k / i n t e r f a c e s

Y dejamos el archivo de la siguiente forma:


a u t ol o i f a c el oi n e tl o o p b a c k a u t oe t h 1 i f a c ee t h 1i n e td h c p a u t oe t h 0 i f a c ee t h 0i n e ts t a t i c a d d r e s s1 0 . 0 . 0 . 1 n e t m a s k2 5 5 . 0 . 0 . 0 g a t e w a y1 0 . 0 . 0 . 1

Bien, ya tenemos configurada eth1 como dinmica y eth0 como esttica. Ahora reiniciamos el servicio de red, desde la terminal:
s u d o/ e t c / i n i t . d / n e t w o r k i n gr e s t a r t

Instalando el servidor DHCP


thebitdeveloper.com/2010/03/11/squid-en-modo-transparente/ 2/10

20/11/13

Squid en modo transparente | The bit developer

Vamos ahora a instalar el servidor DHCP en nuestra mquina, desde un terminal escribimos:
s u d oa p t i t u d ei n s t a l ld h c p 3 s e r v e r

Ya tenemos instalado nuestro servidor DHCP, ahora vamos a configurarlo, as que tenemos tecleamos lo siguiente en una consola:
s u d og e d i t/ e t c / d h c p 3 / d h c p d . c o n f

Una vez con el archivo abirto, borramos el contenido y lo dejamos aproximadamente as:
o p t i o nd o m a i n n a m e" m i d o m i n i o . c o m " ; o p t i o nd o m a i n n a m e s e r v e r s1 0 . 0 . 0 . 1 ; o p t i o ns u b n e t m a s k2 5 5 . 0 . 0 . 0 ; o p t i o nn e t b i o s n a m e s e r v e r s1 0 . 0 . 0 . 1 ; o p t i o nr o u t e r s1 0 . 0 . 0 . 1 ; d e f a u l t l e a s e t i m e6 0 0 ; m a x l e a s e t i m e7 2 0 0 ; s u b n e t1 0 . 0 . 0 . 0n e t m a s k2 5 5 . 0 . 0 . 0{ r a n g e1 0 . 0 . 0 . 21 0 . 0 . 0 . 1 0 0 ; o p t i o nd o m a i n n a m e s e r v e r s1 0 . 0 . 0 . 1 ; o p t i o ns u b n e t m a s k2 5 5 . 0 . 0 . 0 ; o p t i o nn e t b i o s n a m e s e r v e r s1 0 . 0 . 0 . 1 ; o p t i o nr o u t e r s1 0 . 0 . 0 . 1 ; h o s tP C 1{ o p t i o nh o s t n a m e" P C 1 " ; h a r d w a r ee t h e r n e t0 0 : 1 E : 2 4 : 6 F : 2 B : 5 C ; f i x e d a d d r e s s1 0 . 0 . 0 . 1 1 ; } h o s tP C 2{ o p t i o nh o s t n a m e" P C 2 " ; h a r d w a r ee t h e r n e t0 0 : 1 E : 2 4 : 1 C : 5 3 : D F ; f i x e d a d d r e s s1 0 . 0 . 0 . 1 2 ; } h o s tP C 3{ o p t i o nh o s t n a m e" P C 3 " ;
thebitdeveloper.com/2010/03/11/squid-en-modo-transparente/ 3/10

20/11/13

Squid en modo transparente | The bit developer

h a r d w a r ee t h e r n e t0 0 : 1 E : 2 4 : C C : 1 A : E 2 ; f i x e d a d d r e s s1 0 . 0 . 0 . 1 3 ; } }

Explicacin del contenido: En el fichero anterior, debemos incluir un nombre de dominio si pertenecemos a uno, la direccin de la mquina donde est el servidor con su mscara y diversas opciones ms como NetBios y los tiempos de asignacin de direcciones. En subnet, vamos a configurar cmo se asignarn las direcciones para esa red (que est controlada por eth0), aparte de indicarle la misma informacin que antes, le debemos de especificar el rango con el que queremos que trabaje. En mi caso he especificado del 1 al 100. En host, definimos la direccin que se asignar a cada mquina de nuestra red, se especifica el nombre real, su direccin MAC y la direccin IP que se asociar a dicha MAC . As hasta que completemos todos los equipos de los que dispondr la red.

Ahora reiniciamos el servicio de DHCP con el siguiente comando:


s u d o/ e t c / i n i t . d / d h c p 3 s e r v e rr e s t a r t

thebitdeveloper.com/2010/03/11/squid-en-modo-transparente/

4/10

20/11/13

Squid en modo transparente | The bit developer

Creando las iptables


Vamos ahora a crear las llamadas iptables. Las iptables son un complemento del frameworkNetfilter, usadas para el filtro de trfico en una red. Nosotros vamos a usarlas para redirigir el trfico 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:
s u d og e d i t/ e t c / i n i t . d / p r o x y r u l e s . s h

Al nuestro archivo le aadimos lo siguiente:


e c h o" A p l i c a n d ol a sr e g l a sp a r ae ld i r e c c i o n a m i e n t o ,e s p e r e . . . " i p t a b l e stn a tF i p t a b l e stn a tX i p t a b l e stn a tZ i p t a b l e sF i p t a b l e sX i p t a b l e sZ e c h o1>/ p r o c / s y s / n e t / i p v 4 / i p _ f o r w a r d i p t a b l e stn a tAP R E R O U T I N Gs1 0 . 0 . 0 . 0 / 8pt c pd p o r t8 0jR E D I R E C Tt o p o r t3 1 2 8 i p t a b l e stn a tAP O S T R O U T I N Goe t h 1s1 0 . 0 . 0 . 0 / 8jM A S Q U E R A D E

Nota: Yo he elegido el nombre de proxy-rules para el archivo, podis elegir el que queris, pero obviamente que sea de carcter descriptivo.

Explicacin de las iptables: Las primeras reglas iptableseliminan cualquier iptable que se encuentre en ejecucin en ese momento. La
thebitdeveloper.com/2010/03/11/squid-en-modo-transparente/ 5/10

20/11/13

Squid en modo transparente | The bit developer

primera cadena de iptables, direcciona el trfico 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 eth1.

Descargando, compilando y configurando Squid


Vamos ahora a descargar Squid desde su web oficial para despus compilarlo. Las versiones disponibles las podemos ver en http://www.squid-cache.org/Versions/, sera ideal trabajar con la ltima versin estable de Squid, en este caso, la ltima versin estable es la 3.0. Antes de descargar Squid, nos vamos al directorio /usr/local/src, para ello tecleamos en la consola:
c d/ u s r / l o c a l / s r c

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


s u d ow g e th t t p : / / w w w . s q u i d c a c h e . o r g / V e r s i o n s / v 3 / 3 . 0 / s q u i d 3 . 0 . S T A B L E 2 4 . t a r . g z

Eso descargar la ltima versin 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:
s u d ot a rx v z fs q u i d 3 . 0 . S T A B L E 2 4 . t a r . g z

Muy bien, ya tenemos los archivos de Squid listos para compilar, para esto necesitaremos tener instalado un compilador de C/C++ en nuestra mquina, por lo que en un terminal tecleamos:
s u d oa p t i t u d ei n s t a l lb u i l d e s s e n t i a l

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


c ds q u i d 3 . 0 . S T A B L E 2 4

Bien, ya estamos dentro de dicho directorio, ahora de nuevo en un terminal tecleamos lo siqguiente:
thebitdeveloper.com/2010/03/11/squid-en-modo-transparente/ 6/10

20/11/13

Squid en modo transparente | The bit developer

s u d o. / c o n f i g u r ep r e f i x = / u s r / l o c a l / s q u i de n a b l e l i n u x n e t f i l t e r e n a b l e f o l l o w x f o r w a r d e d f o r

Cuando el proceso acabe (es posible que est unos minutos) tecleamos esto ahora:
s u d om a k e

Este proceso tambin tardar unos minutos posiblemente. Al finalizar este proceso, escibimos lo siguiente en la consola:
s u d om a k ei n s t a l l

Ya tenemos Squid instalado en /usr/local/squid. Vamos ahora a crear el usuario y grupo squid. En un terminal tecleamos:
s u d ou s e r a d ds q u i d

Y despus:
s u d og r o u p a d ds q u i d

Nota: Es posible que al aadir el grupo nos diga que ya existe un grupo llamado squid, no pasa nada, nos saltamos este paso y sin problemas.

Ahora vamos a hacer al usuario squid dueo de los directorios de Squid. Para ello nos vamos a un terminal y tecleamos:
c d/ u s r / l o c a l / s q u i d

Una vez estamos en este directorio, tecleamos lo siguiente:


s u d oc h o w nRs q u i d*

Y depus:
c h g r pRs q u i d*

thebitdeveloper.com/2010/03/11/squid-en-modo-transparente/

7/10

20/11/13

Squid en modo transparente | The bit developer

Con esto, el usuario squid ya es dueo de los directorios que maneja Squid. Vamos ahora a configurar nuestro Squid para permitir la conexin a nuestra red, nos vamos a un terminal y tecleamos:
s u d og e d i t/ u s r / l o c a l / s q u i d / e t c / s q u i d . c o n f

Una vez tenemos el archivo, con Ctrl + F, buscamos la lnea http_port, la borramos y la aadimos de esta forma:
h t t p _ p o r t1 0 . 0 . 0 . 1 : 3 1 2 8t r a n s p a r e n t

Ahora buscamos la lnea cache_dir, y la dejamos de la siguiente manera:


c a c h e _ d i ru f s/ u s r / l o c a l / s q u i d / v a r / c a c h e1 0 2 41 62 5 6

Volvemos a realizar otra bsqueda, esta vez de cache_effective_user, aqu aadimos dos lneas:
c a c h e _ e f f e c t i v e _ u s e rs q u i d c a c h e _ e f f e c t i v e _ g r o u ps q u i d

Ahora vamos a aadir una ACL, nos vamos a la zona de las ACL, que est por la lnea 600 ms o menos, y all aadimos:
a c ln u e s t r a _ r e ds r c1 0 . 0 . 0 . 0 / 2 4

thebitdeveloper.com/2010/03/11/squid-en-modo-transparente/

8/10

20/11/13

Squid en modo transparente | The bit developer

Vamos ahora a aadir una regla http_access, nos vamos aproximadamente a la lnea 645, y aadimos:
h t t p _ a c c e s sa l l o wn u e s t r a _ r e d

Ya queda poco por hacer, ahora vamos a crear los directorios para la cach de Squid, as que desde un terminal tecleamos:
s u d o/ u s r / l o c a l / s q u i d / s b i n / s q u i dz

Ahora toca configurar rc.local para que arranque Squid y proxy-rules.sh al iniciar Ubuntu, esto es fcil, desde el terminal tecleamos:
s u d og e d i t/ e t c / r c . l o c a l

Una vez con el fichero abierto, aadimos lo siguiente:


s h/ e t c / i n i t . d / p r o x y r u l e s . s h c d/ u s r / l o c a l / s q u i d / s b i n / . / s q u i d

Magnfico, ya slo queda reiniciar nuestra mquina y comprobar que hay dos procesos de Squidejecutndose en nuestro equipo. Una vez con la mquina reiniciada, volvemos a abrir un terminal y tecleamos:
s u d op sa x|g r e ps q u i d
thebitdeveloper.com/2010/03/11/squid-en-modo-transparente/ 9/10

20/11/13

Squid en modo transparente | The bit developer

Si nos apareden los dos procesos de Squid significa que todo est correcto, ya tenemos nuestro proxy cach transparente instalado y configurado.

thebitdeveloper.com/2010/03/11/squid-en-modo-transparente/

10/10

Você também pode gostar