En esta nueva entrada vamos a ver el Proxy "Squid", un muy buen proxy que nos ayudará a retener peticiones no deseadas y acelerar peticiones repetidas al DNS en su caché almacenada, tiene licencia GPL
La instalación es muy sencilla:
- aptitude install squid
Ahora nuestro proxy Squid está totalmente instalado y funcionando, pero vamos a ir un paso mas allá y dejarlo lo mas pulido posible.
Su archivo de configuración se encuentra en el siguiente directorio:
- /etc/squid/squid.conf
Una vez dentro del archivo de configuración podemos ver muchísimos campos comentados y muy extenso, para ello, yo me creado un archivo "squid.conf" con los básico para tenerlo todo mas ordenado y claro. Aquí el ejemplo:
Podemos observar lo siguiente:
Puerto por el que trabaja Squid
Capacidad de caché que toma para almacenar las peticiones
Nombres de las reglas creadas
Acciones que realizará dichas reglas
Como podemos observar, he creado una regla llamada "all" con la opción de "all" (Todo).
En el apartado de las acciones, digo que lo deniegue todo. Actualmente si configuramos nuestro navegador para que use el proxy Squid, no podremos navegar a ninguna web!!
Un breve ejemplo que mostraré será dejar que nuestra red (192.168.2.0) tenga permiso para navegar por Internet. Creamos la regla y le asignamos la acción.
- acl redinterna src 192.168.2.0/24
- http_access allow redinterna
Quedando una cosa similar;
Como vemos, el orden en el que colocamos las reglas influye ya que si a la ahora de asignar la acción dejamos que lo "deniegue" todo, la nueva regla y siguientes nunca se cumplirán por la veracidad de la primera.
Dejamos en ultimo lugar la regla de "denegar todo".
Reiniciamos squid ya que hemos escrito nuevas reglas.
- /etc/init.d/squid restart
Ahora nuestra red ya tiene acceso como podemos ver.
Instalación de Sistema Transparente (PROXY TRANSPARENTE)
Podemos pensar que configurar todos los navegadores para que usen un proxy y un puerto determinado y al poco tiempo cambiar es molesto o lleva tiempo mal aprovechado en reconfigurar los puestos de trabajo, para evitar ese sufrimiento vamos a crear un sistema transparente. En este caso bastará con que el puerto de enlace o gateway de cada puesto de trabajo apunte a la dirección IP del equipo donde hemos instalado SQUID.
Añadimos la regla a squid;
- http_port 3128 transparent
Creamos la regla de iptable en nuestra shell en los clientes que enviará todo lo que se pida por el puerto 80 al puerto de squid;
# iptables -t nat -A PREROUTING -i ethX -p tcp –dport 80 -j REDIRECT --to-port 3128
(donde X corresponde al número de la tarjeta que corresponde, por ej eth1)
Esta regla solo será aplicable en si el equipo queda encendido, si se reinicia o se apaga, la regla desaparecerá, para ello creamos un script y en su interior escribimos esa regla.
Ubicamos dicho script en:
- /etc/rc2.d
Filtración de paginas webs
Para que nuestro proxy squid sea mas efectivo y elaborado, podemos indicarles que denieguen palabras que contengan una url, para ello creamos la acl correspondiente:
- acl webs url_regex "/etc/squid/websdenegadas.txt"
Indicaremos la acción:
- http_access deny webs
Dicha regla, recoge de un archivo ubicado en la direccion /etc/squid, palabras en su contenido que luego denegará si en una url pedida por los usuarios de la red la contiene.
En caso de querer profundizar en este tema o añadir opciones como dansguardian, clamAV, etc. les invito a leer este otro post "Squid, dansguardian, clamAV"
La instalación es muy sencilla:
- aptitude install squid
Ahora nuestro proxy Squid está totalmente instalado y funcionando, pero vamos a ir un paso mas allá y dejarlo lo mas pulido posible.
Su archivo de configuración se encuentra en el siguiente directorio:
- /etc/squid/squid.conf
Una vez dentro del archivo de configuración podemos ver muchísimos campos comentados y muy extenso, para ello, yo me creado un archivo "squid.conf" con los básico para tenerlo todo mas ordenado y claro. Aquí el ejemplo:
Podemos observar lo siguiente:
Puerto por el que trabaja Squid
Capacidad de caché que toma para almacenar las peticiones
Nombres de las reglas creadas
Acciones que realizará dichas reglas
Como podemos observar, he creado una regla llamada "all" con la opción de "all" (Todo).
En el apartado de las acciones, digo que lo deniegue todo. Actualmente si configuramos nuestro navegador para que use el proxy Squid, no podremos navegar a ninguna web!!
Un breve ejemplo que mostraré será dejar que nuestra red (192.168.2.0) tenga permiso para navegar por Internet. Creamos la regla y le asignamos la acción.
- acl redinterna src 192.168.2.0/24
- http_access allow redinterna
Quedando una cosa similar;
Como vemos, el orden en el que colocamos las reglas influye ya que si a la ahora de asignar la acción dejamos que lo "deniegue" todo, la nueva regla y siguientes nunca se cumplirán por la veracidad de la primera.
Dejamos en ultimo lugar la regla de "denegar todo".
Reiniciamos squid ya que hemos escrito nuevas reglas.
- /etc/init.d/squid restart
Ahora nuestra red ya tiene acceso como podemos ver.
Instalación de Sistema Transparente (PROXY TRANSPARENTE)
Podemos pensar que configurar todos los navegadores para que usen un proxy y un puerto determinado y al poco tiempo cambiar es molesto o lleva tiempo mal aprovechado en reconfigurar los puestos de trabajo, para evitar ese sufrimiento vamos a crear un sistema transparente. En este caso bastará con que el puerto de enlace o gateway de cada puesto de trabajo apunte a la dirección IP del equipo donde hemos instalado SQUID.
Añadimos la regla a squid;
- http_port 3128 transparent
Creamos la regla de iptable en nuestra shell en los clientes que enviará todo lo que se pida por el puerto 80 al puerto de squid;
# iptables -t nat -A PREROUTING -i ethX -p tcp –dport 80 -j REDIRECT --to-port 3128
(donde X corresponde al número de la tarjeta que corresponde, por ej eth1)
Esta regla solo será aplicable en si el equipo queda encendido, si se reinicia o se apaga, la regla desaparecerá, para ello creamos un script y en su interior escribimos esa regla.
Ubicamos dicho script en:
- /etc/rc2.d
Filtración de paginas webs
Para que nuestro proxy squid sea mas efectivo y elaborado, podemos indicarles que denieguen palabras que contengan una url, para ello creamos la acl correspondiente:
- acl webs url_regex "/etc/squid/websdenegadas.txt"
Indicaremos la acción:
- http_access deny webs
Dicha regla, recoge de un archivo ubicado en la direccion /etc/squid, palabras en su contenido que luego denegará si en una url pedida por los usuarios de la red la contiene.
En caso de querer profundizar en este tema o añadir opciones como dansguardian, clamAV, etc. les invito a leer este otro post "Squid, dansguardian, clamAV"