Instalar y configurar un servidor proxy con Squid

En el contexto de las redes informáticas, el término proxy hace referencia a un programa o dispositivo que realiza una acción en representación de otro. Su finalidad más habitual es la de servidor proxy, que sirve para permitir el acceso a Internet a todos los equipos de una organización cuando sólo se puede disponer de un único equipo conectado, esto es, una única dirección IP.

En este caso vamos a utilizar squid, este es un popular programa de software libre que implementa un servidor proxy y un demonio para caché de páginas web, publicado bajo licencia GPL. Tiene una amplia variedad de utilidades, desde acelerar un servidor web, guardando en caché peticiones repetidas a DNS y otras búsquedas para un grupo de gente que comparte recursos de la red, hasta caché de web, además de añadir seguridad filtrando el tráfico. Está especialmente diseñado para ejecutarse bajo entornos tipo Unix.

Esta sería la conexión básica de un servidor proxy:

proxy

Para comenzar, la instalación es sencilla en Ubuntu / Debian :

sudo aptitude install squid

Configuración básica de Squid

El archivo de configuración se encuentra en /etc/squid/ y se llama squid.conf, si lo observan es un archivo bastante grande, ya que squid como lo comentaba, es un servidor proxy bastante completo. Una configuración básica debe incluir, al menos, los parámetros que se indican a continuación:

  • http-port: Establece el puerto de escucha para squid (por defecto puerto 3128).
  • visible_hostname: nombre del equipo.
  • acl: a cada ACL o lista de control de acceso se le hace corresponder una regla de control de acceso (http_access) que es la que permite o deniega las conexiones definidas en cada acl.

Parámetro cache_dir: ¿Cuanto desea almacenar de Internet en el disco duro?

Este parámetro se utiliza para establecer que tamaño se desea que tenga el caché en el disco duro para Squid. Para entender esto un poco mejor, responda a esta pregunta: ¿Cuanto desea almacenar de Internet en el disco duro? De modo predefinido Squid utilizará un caché de 100 MB, de modo tal que encontrará la siguiente línea:

cache_dir ufs /var/spool/squid 100 16 256

Se puede incrementar el tamaño del caché hasta donde lo desee el administrador. Mientras más grande sea el caché, más objetos se almacenarán en éste y por lo tanto se utilizará menos el ancho de banda. La siguiente línea establece un caché de 700 MB:

cache_dir ufs /var/spool/squid 700 16 256

Los números 16 y 256 significan que el directorio del caché contendrá 16 directorios subordinados con 256 niveles cada uno. No modifique esto números, no hay necesidad de hacerlo.

Es muy importante considerar que si se especifica un determinado tamaño de caché y éste excede al espacio real disponible en el disco duro, Squid se bloqueará inevitablemente. Sea cauteloso con el tamaño de caché especificado.

Ejemplo: Denegar la dirección www.youtube.com a todas las máquinas
Abrimos y editamos el fichero de configuracion de squid squid.conf

#Parámetros obligatorios:
visible_hostname debian
http_port 3128
cache_mem 64 MB
cache_dir ufs /var/spool/squid 700 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log

#Listas de control de acceso:
acl all src 0.0.0.0/0.0.0.0
acl denegado dstdomain www.youtube.com
acl localhost src 127.0.0.1

#Control de acceso:
http_access deny denegado !localhost
http_access allow all
error_directory /usr/share/squid/errors/Spanish

En esta configuración , se observa en el apartado de parámentros obligatorios el puerto de escucha, el nombre del servidor (si no sabes cual es el nombre de tu máquina, ve a una terminal y teclea “hostname”), tamaño de memoria cache y las rutas; en el segundo apartado se encuentran las listas de control de acceso, las cuales se asigna el rango de ip’s, asignación de dominio, etc…; en el tercer apartado es el control de acceso, una vez asignadas las listas de control con http_access deny se deniegan ya sea ip’s ó dominios, y con http_access allow, se permite lo mismo, tmb por ahí aparece una linea error_directory la cual muestra los mensajes de advertencia en idioma español.

Reseteamos squid:

# /etc/init.d/squid restart

Si no aparece ningún mensaje de error entonces nuestro proxy debe de funcionar deacuerdo a lo establecido, para poder probar ve a un navegador de una máquina que este conectada en la misma LAN, ve a propiedades y habilita el uso de proxy, en la ip , hay que poner la ip de nuestra máquina que tiene el squid corriendo.

Cuando hagan pruebas les bloqueará www.youtube.com, pero si ponen youtube.com si los dejará entrar, para eso se utiliza otra lista de control de acceso:

acl denegado url_regex “/home/tuusuario/denegados”

Dónde /home/tuusuario/denegados es un simple archivo de texto que contiene la palabra youtube, con eso, todos los dominios youtube serán bloqueados.

Fuente: http://blogofsysadmins.com/instalar-y-configurar-un-servidor-proxy-con-squid

0 comentarios: