martes, 19 de abril de 2011

SQUID en debian squeeze 6.0

Definicion de proxy:Es un programa o dispositivo que realiza una actividad por otro, es una especie de intermediario. Una analogia podria ser: pedirle a una persona que le pida a otra (la cual no nos cae bien,) una birome.

Usualmente es utilizado el termino para referirse a un equipo/servidor que permite a los demas equipos de una empresa el acceso a internet. Esto ocurre obviamente cuando disponemos de una unica direccion ip publica.

Un PROXY CACHE es un servidor, en nuestro caso un linux el cual realiza la funcion de intermediario solicitando paginas web y las almacena para brindar en forma mas rapida a los clientes en un acceso futuro.

Un PROXY TRANSPARENTE combina un proxy con NAT, evitando configurar el proxy en forma manual en el internet explorer, firefox u otra aplicacion. Esto nos asegura que el usuario no pueda cambiar la configuracion localmente. El acceso a internet es enrutado hacia el proxy sin necesidad de onfigurar nada extra en los clientes.


apt-get install squid


cp -pf /etc/squid/squid.conf /etc/squid/squid.conf.orig


vim /etc/squid/squid.conf


#Puerto en el que escucha por defecto es el: 3128
http_port 8080

#Poner el nombre de host del server
visible_hostname morsa

#Errores de redireccion, por ejemplo Acceso Denegado, no se ha podido encontrar x pagina.
error_directory /usr/share/squid/errors/es-ar

#Directoryo donde se guardan los iconos
icon_directory /usr/share/squid/icons

#Usuario y grupo para el squid
cache_effective_user proxy
cache_effective_group proxy

#Memoria usada por squid, solemos poner la raiz cuadrada de la memoria total, 1Gb de mem -> sqrt(1024)=32Mb
cache_mem 32 MB

#Porcentaje de minima capacidad, permanece en el cache hasta que se llene el minimo
cache_swap_low 95

#Porcentaje de maxima capacidad para guardar datos en el cache. Empieeza a borrar la cache cuando llegue al 100% de capacidad asignada al squid
cache_swap_high 100

#Tamano maximo que guardamos en cache
maximum_object_size 4096 KB

#Path de ubicacion del chache
#El aufs aumenta el rendimiento del squid (multithread), por default es ufs
#El 1024 indica los Mb que tendremos del disco para la cache (como maximo)
#El 16 y 256 indican la forma de organizar la cache, no suelen cambiarse.
cache_dir aufs /var/spool/squid 1024 16 256

#Patrones de refresco
#Determinan que archivos no deben volver a solicitarse a la url y los separa de los que si deben actualizarse.
#Uso: refresh_pattern [-i] regex minimo porcentaje maximo [opciones]
#Lo que aparece entre [] es opcional, -i no distingue entre MAYUSC y minusc.
#El regex es una expresion regular
#El min es el tiempo en minutos que se considera actualizado.
#El porcentaje es la vida promedio del objeto.
#El max es el tiempo maximo en minutos que se considera actualizado
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

#Ips permitidas para navegar:
acl permitidos src "/etc/squid/permitidos"
http_access allow permitidos

#Bloquear sitios por ips:
acl NoFacebook_ip src "/etc/squid/de_ips_prohibidos.txt"
acl no_facebook dstdomain "/etc/squid/sitios_denegados.txt"
http_access deny no_facebook NoFacebook_ip

#Bloquear videos, deja entrar a youtube, pero no muestra el video. Aparece mensaje: An error ocurred, try again later.
acl noVideo rep_mime_type ^.*video.*
http_reply_access deny noVideo

#Bloquear radios/audio
acl noRadio rep_mime_type ^.*audio.*
http_reply_access deny noRadio

#Pid del proceso del squid
pid_filename /var/run/squid.pid

#Bloquear sitios por mac (solo en la misma subnet):
acl no_mac arp 00:17:A4:AB:CD:CD
acl no_facebook dstdomain "/etc/squid/sitios_denegados.txt"
http_access deny no_facebook no_mac

#Parametro para indicar que las paginas que tengan ciertos caracteres no se almacenen en cache
#Agregar paginas como hotmail, tienen problemas para autenticar a traves de squid
#Tambien podemos agregar paginas locales, por ejemplo el server se llama morsa agregamos morsa detras de hotmail
hierarchy_stoplist cgi-bin ? hotmail morsa

#Restringir pagina web que tenga en el nombre el contenido TUBE (youtube, pornotube, etc) a todos:
acl noLogmein url_regex -i ^http://.*logmein.*\.com\*
acl noLogmein url_regex -i ^http://.*youtube.*\.com
http_access deny noLogmein

#Emula logs del webserver, activarlo cuando utilizamos Webalaizer
emulate_httpd_log on

#Cuanto tiempo permanece el objeto en el cache
reference_age 1 month

#Correo que me muestra a quien contactar en algunos casos, por ejemplo cuando deniega una pagina web a un user.
cache_mgr morsa@redes-seguridad.com.ar

#####
#LOGS
#####

#Indica los links accedidos y/o denegados
cache_access_log /var/log/squid/access.log

#Info del cache
cache_log /var/log/squid/cache.log
#Objetos sacados del cache, se recomienda deshabilitar, ocupa mucho espacio
cache_store_log /var/log/squid/store.log

####
#PID
####
#Donde almacena el pid del proceso del squid
pid_filename /var/run/squid.pid


vim /etc/squid/permitidos

192.168.1.151/255.255.255.255 #La ip de mi pc para que pueda navegar

vim /etc/squid/de_ips_prohibidos.txt

192.168.1.151/255.255.255.255

vim /etc/squid/sitios_denegados.txt

.facebook.com

/etc/init.d/squid restart


Redirigir una pagina de acceso denegado a la de la empresa u otra:

cp -pf /usr/share/squid/errors/es-ar/ERR_ACCESS_DENIED /usr/share/squid/errors/es-ar/ERR_ACCESS_DENIED.orig


vim /usr/share/squid/errors/es-ar/ERR_ACCESS_DENIED #0 el tiempo en redirigir y www.google.com hacia a donde


html
head
META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://www.google.com" meta http-equiv="Content-Type" content="text/html; charset=utf-8"

head
html


Si queremos que el squid autentique con usuarios de OpenLdap seguimos los pasos del siguiente enlace:
http://www.redes-seguridad.com.ar/2013/05/autenticar-squid-27-con-openldap.html


FUENTES:
http://wiki.xtech.com.ar
http://www.colnodo.apc.org
http://es.wikipedia.org
http://www.squid-cache.org
http://wiki.debian.org/

4 comentarios:

SirDuque dijo...

Hola, me gusto tu blog, tengo una duda, puedo utilizar SQUID para mis VM.
Tengo un servidor dedicado, este esta post a un router que solo me permite 8 politicas de Cortafuego, ahora me encuentro en la necesidad de poner un corta fuego en el servidor, este aloja aprox 8 maquinas virtuales y no cuenta con DOS placas Red, que me aconesejas?

Hernán Tirado dijo...

Si obvio que puedes utilizar el squid en las máquinas Virtuales.

Si tienes sólo una placa de red, igualmente puedes poner un squid y configurar en el explorador web el proxy con esa dirección.

AudYoeL dijo...

hola a todos muy buena tu ayuda a los q no sabemos linux,
una consulta sobre squid con dansguardian.
no se puede filtrar el gmail y el google sin bloquear el googla apps ya que el correo esta alojado en google apps

el-novato dijo...

necesito saber cómo hacer pare que squid me cargue las páginas progresivamente y no de un solo golpe