Está en la página 1de 0

Ral Espinosa Soriano

2011
Instalacin y Configuracin
del servidor proxy-cache
Squid en Debian
Seguridad en redes y sistemas

Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


2
Contenido
mbito de trabajo ......................................................................................................................... 3
Configuracin de Squid (proxy Cache) .......................................................................................... 3
Redireccionamiento del puerto 80 al 3128 de escucha del SQUID .............................................. 5
Activar el redireccionamiento interno de nuestro server, entre los puertos. .......................... 5
Redireccionar los puertos 80 al 3128 ........................................................................................ 6
Creacin de Listas de Acceso ACL ................................................................................................. 8
Listas de control de acceso ....................................................................................................... 9
Definicin del idioma de las pginas de error de SQUID ............................................................ 15


Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


3
mbito de trabajo
La topologa y mquinas que vamos a utilizar para poder configurar un servidor Squid, con su
funcionalidad nativa, es la siguiente:
- El servidor deber de tener dos tarjetas/adaptadores de red. Uno para conexin
externa y otro para conexin interna.
- En el presente tutorial, el direccionamiento IP que se utiliza para la red interna es la
192.168.10.0/24.
- En la red interna estn aquellas mquinas que quieren acceder al exterior (Internet).

Con estos datos, podemos comenzar el estudio de la configuracin de Squid.
Configuracin de Squid (proxy Cache)
Ahora, configuraremos SQUID, el cual es un servidor Proxy Cache.
Desde Webmin, accedemos a Servidores y posteriormente a Squid. Si es la primera vez que
accedemos, no estar instalado, por lo que procedemos a la instalacin.
Una vez instalado, squid nos proveer un archivo de configuracin localizado en
/etc/squid/squid.conf. Este archivo contiene toda la configuracin de squid. Al ser un archivo
muy extenso, nosotros no necesitaremos tal configuracin por tal motivo crearemos una copia
de respaldo, desde una terminal, a este archivo de la siguiente manera:
~$ sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
Luego, modificamos el archivo de configuracin original (/etc/squid/squid.conf) y eliminamos
todo lo que contenga. Luego ingresamos lo siguiente:
http_port 3128 transparent
cache_mem 100 MB
cache_dir ufs /var/spool/squid 150 16 256
acl red_local src 192.168.10.0/24
acl localhost src 127.0.0.1/32
acl all src all
http_access allow localhost
http_access allow red_local
Si vamos a Webmin, y accedemos a la administracin del servidor SQUID, podemos ver lo que
se ha creado (en control de acceso):
Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


4


Consiste en 3 entidades (red_local, Localhost y all) a las cuales se les otorga una serie de
denegaciones o aceptaciones en la seccin de restricciones proxy:

En nuestro caso, a localhost se le permite el acceso por squid, es decir, la navegacin, mientras
que para los ordenadores de red_local no.
Posteriormente veremos cmo crear las reglas ACL en Webmin.
Una vez configurado Squid con las listas de acceso que queramos, podemos probar desde un
cliente que el servidor funciona. Squid, escucha por defecto en el puerto 3128 (tal y como se
ha configurado anteriormente), por lo que para configurarlo en los clientes, deberemos de
decirles que accedan a navegar por medio de la puerta de enlace, que no ser otra que la IP de
la LAN interna del proxy (servidor), en nuestro caso eth1, y que el puerto es el 3128.
Esto se realiza desde Herramientas Opciones de Internet Conexiones- Configuracin de
LAN, y activando usar un servidor proxy para la LAN. En los campos se introducen los valores
comentados en el prrafo anterior:
Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


5

Si todo ha ido bien, y se puede navegar sin problemas, pasaremos a redireccionar las
peticiones realizadas al puerto 80 al puerto 3128, para que el servicio sea totalmente
transparente a los clientes, y no tengamos que estar configurando lo anteriormente explicado.
Redireccionamiento del puerto 80 al 3128 de escucha del SQUID
En este momento, habiendo llegado al punto que todo las mquinas clientes pueden navegar
realizando las peticiones al puerto 3128 de la mquina servidor que hace de Proxy, vamos a
redireccionar las peticiones realizadas al servidor por el puerto 80, al puerto 3128, para que
SQUID pueda realizar su tarea en cada peticin por parte de los clientes.
Para ello realizaremos los siguientes pasos:
Activar el redireccionamiento interno de nuestro server, entre los
puertos.
Para confirmar si est o no activado, nos vamos a una consola y escribimos:
sudo cat /proc/sys/net/ipv4/ip_foward
Si el resultado es 0, es que no est activado, y en caso contrario (1) es que esta activado.
Para ponerlo a 1 incluso en el arranque, editamos, desde la consola mismo, el fichero
/etc/sysctl.conf y cambiamos la lnea donde pone net.ipv4.ip_forward=0 y lo ponemos a 1:
Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


6

Para editarlo, escribimos en la consola:
sudo nano /etc/sysctl.conf
o
sudo gedit /etc/sysctl.conf
Una vez modificada la lnea, grabamos el fichero con ctrl+O y posteriormente salimos con
ctrl+x (con nano)

Reiniciamos nuestro sistema, y comprobamos que todo ha ido correctamente.

Como se puede comprobar, ahora la variable ip_forward tiene un valor de 1, por lo que es
indicio de que el redireccionamiento esta activado.
Redireccionar los puertos 80 al 3128
Para que el servidor redireccione las peticiones al puerto 80, al 3128, en el cual trabaja el
servidor SQUID, debemos de introducir unas lneas en el fichero /etc/rc.local, el cual es
ejecutado siempre que se inicia el sistema.
Las lneas son:
Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


7
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -F
iptables -X
iptables -Z
iptables -t nat -A PREROUTING -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to-port
3128
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24 -j MASQUERADE
Donde la red 192.168.10.0, es la red interna del sistema de red. Estas lneas deben de ser
aadidas antes de la lnea exit 0, ya que esta lnea hace que termine el script.

Grabamos el fichero, cerramos el editor, y reiniciamos el sistema.
Es momento de probar si realmente redirecciona y va todo correctamente y transparente al
usuario.
Para ello, configuramos el cliente de forma que no use proxy alguno, e intentamos acceder a
alguna web.
Este es el resultado de intentar acceder desde un ordenador en red_local a una pgina web
(recordemos que tenemos denegado el acceso).
Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


8

Todo funciona correctamente.
Una vez configurado el servidor como PROXY Transparente, haciendo uso del servidor SQUID,
vamos a aadirle ACL, para limitar el acceso a determinas paginas.
Creacin de Listas de Acceso ACL
Lo primero que haremos, es permitir el acceso a las mquinas de red_local a internet. Para
ello, haremos uso del sistema Webmin, el cual nos agilizara la administracin del proxy SQUID.
Para acceder a la administracin de SQUID, recordemos que tenemos que acceder a servidores
Squid (Servidor Proxy).
Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


9

Todo lo vamos a hacer desde la seccin Control de Acceso.

En esta pantalla, podemos ver las listas de control de acceso que creamos anteriormente.
Vamos a estudiarlas.
Listas de control de acceso
Una lista de control de acceso supone una entidad a la que se le otorgara unos permisos desde
las Restricciones Proxy.
En nuestro caso, tenemos una denominada red_local, cuya configuracin es:
Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


10

Podemos ver, que toda ACL tiene un nombre, en este caso red_local, y por el tipo de ACL que
es (Direccion de cliente) tiene asignadas unas direcciones, las cuales correspondern a
potenciales mquinas que quieran acceder al servidor (es decir, a Internet) para tener acceso
al exterior.
En este caso, red_local es considerada como toda la red 192.168.10.0 con mascara
255.255.255.0 (de ah el numero 24, teniendo en cuenta que cada 255 decimal son 8 1s
seguidos).
A su vez, la configuracin se guarda en la configuracin del propio SQUID
(/etc/squid/squid.conf)
Vamos a aadir una ACL que corresponda al rango de direcciones 192.168.2.5 - 192.168.2.13.
Para ello, vamos a la pantalla inicial de las listas de acceso ACL:
Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


11

Seleccionamos en el desplegable inferior, Direccion de cliente, y le damos a Crear nueva ACL.

Ya est todo preparado para introducir la informacin relativa a esta ACL. Esta se puede ver en
la imagen siguiente:

Le damos al botn de Salvar, y ya est creada la ACL.
Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


12

Ahora solo nos queda darle permiso o no desde la pestaa Restricciones Proxy.

Como vemos, aun tenemos denegado el permiso a red_local a Internet, vamos primeramente
a permitir a este grupo que acceda a internet. Para ello, pinchamos con el ratn en Denegar y
el ventana que nos salga, seleccionamos permitir:

Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


13
Posteriormente, Salvamos los cambios, y ya est todo en regla.
Ahora continuemos con la concesin a la ACL Direccin de su permiso de acceso. Para ello,
seleccionamos Aadir restriccin proxy.

Seleccionamos Permitir, y la ACL oportuna (direccin) en la lista de Coincidir con ACLs, y le
pinchamos a Salvar.
A partir de este momento, las direcciones IP representadas por la ACL Direccin, ya tienen
acceso a Internet.
Si lo que quisiramos es restringir el acceso a determinadas pginas Web (URL) o a URL que
contengan determinadas palabras, crearamos ACL destinadas a ello.
Para conseguir el primero de los casos (restringir acceso a determinadas URL) desde la pestaa
Lista de Control de Acceso, en la parte inferior, seleccionaramos Nombre de Maquina de
Servidor Web y posteriormente, Crear ACL. La ventana que se nos activa es:
Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


14

Tendremos que darle un nombre a la ACL, y posteriormente escribir los distintos dominios a
los que no queremos que nuestra red tenga acceso.
Tras Haber introducido los nombres de los dominios o URLS, salvamos.
Creada la ACL, pasamos a denegar el acceso a la misma. Ahora nos tenemos que ir a
Restricciones Proxy, y tras seleccionar Aadir Restriccin Proxy seleccionamos Denegar y la
ACL a denegar.
Muy importante es colocar este tipo de restricciones las primeras en la lista. Como aparece en
la figura:

Para restringir el acceso a las URLS con determinado contenido en la misma, se procede
exactamente igual, pero hay que crear una ACL del tipo Expresion Regular URL.
Instalacin y Configuracin del servidor proxy-cache Squid en Debian
Seguridad en redes y sistemas
Ral Espinosa Soriano


15
Definicin del idioma de las pginas de error de SQUID
Lo primero que debemos de hacer, es definir el idioma de las pginas de error que devuelve el
Proxy.
Estas pginas son ficheros con contenido HTML que se encuentran en /usr/share/squid/errors.
Dentro de esta carpeta, tenemos varias, las cuales representan a los distintos idiomas para los
que estn traducidas las distintas pginas de error.
En nuestro caso ser el espaol, por lo que la ruta completa de las pginas de error es:
/usr/share/squid/errors/es
Para definir esta ruta, debemos de editar el fichero squid.conf, el cual se encuentra en
/etc/squid, y aadir al final la siguiente lnea:
error_directory /usr/share/squid/errors/es
Despus de aadir esta lnea, debemos de aplicar los cambios, o reiniciar el sistema, y el nuevo
idioma estar definido.

También podría gustarte