Como configurar SQUID, el Proxy-Cache de Internet
Por Gabriel, Gigi (http://www.navegalia.com/personal/gginard/mispag.htm)
Creado el 29/01/2001 00:00 y modificado por última vez el 29/01/2001 00:00
El Squid, es un programa que sirve de Proxy-Cache de Internet, lo que significa que si accedes mas de una vez a una pagina, esta pagina se almacena en el disco duro, y si no lo encuentra lo buscara en Internet. Esto acelera la navegacion con internet y normalmente se usa en servidores que se conectan Internet para que naveguen unos cuantos ordenadores a traves de una conexion.
Novedades: Como controlar el tamaño de los ficheros, y como redireccionar el puerto de acceso a la web Supondremos que habeis instalado el SQUID que viene con cualquier instalacion de Linux (tambien existe para windows, pero no lo he probado).
En esta articulo me basare en el Red Hat 6.2. El Squid se configura desde un unico fichero, el /etc/squid.conf, que facilita mucho las cosas.
En este ejemplo vamos a usar dos equipos, un servidor(192.168.0.1) y un cliente(192.168.0.1) que accede a traves del servidor. La particion la he montado en un segundo disco duro (hdc1) desde /mnt/squid, y aqui he puesto todos los logs. Recordar que el directorio /mnt/squid debe pertenecer al usuario ’squid’ y al grupo ’squid’, con los privilegios 775
Una vez tenemos todo esto, nos metemos con el fichero para configurar el SQUID. El fichero /etc/squid.conf, es muy sencillo de configurar ya que todos los comandos internos estan comentados para facilitar la configuracion.
Los comandos basicos necesarios los puedes buscar y poner los valores por defecto, pero para tener una idea, los que me funcionan bien:
http_port 3128
icp_port 3130
cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB
cache_dir ufs /mnt/squid 100 16 256
cache_access_log /mnt/squid/access.log
cache_log /mnt/squid/cache.log
cache_store_log /mnt/squid/store.log
client_netmask 255.255.255.0
Esta parte es muy importante ya que se dan los permisos para que se pueda acceder a la cache. Fijaros en dos lineas que he puesto para dar permisos a las IPs del 192.168.0.1 –> 192.168.0.255
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl mipc src 192.168.0.0/255.255.255.0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
#Default configuration:
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
http_access allow localhost
http_access allow mipc
^^^^^^^^^^^^^^^^^^^^^^
http_access deny all
Una vez has hecho los cambios necesarios en el fichero de configuracion deberas hacer:
1.- Para crear todo el sistema de ficheros y directorios que usara Squid ejecutando:
root# squid -z
2.- Ejecutar el Squid para que funcione a partir de ese instante.
Escribe ’setup’ y elige ’System Services’, y activa con el espacio la opcion del squid
A partir de ahora cada vez que inicies el servidor podras tener tu propio cache.
El cliente
Para poder emplear el Proxy-Cache, tendras que configurar cada Navegador de cada PC con los datos de la Cache. En este ejemplo pondremos:
IP-Proxy: 192.168.0.1
Puerto: 3128
NUEVO
Controlar el tamaño de los ficheros
Para facilitar el control de los clientes y puedas controlar el tamaño de los ficheros o paginas que se bajan, hay unas linias en el fichero de configuracion que se encargan de eso. Puedes jugar con los KB para ajustarlo a tus necesidades
Busca en el fichero squid.conf:
# OPTIONS FOR TUNING THE CACHE
request_header_max_size 10 KB
request_body_max_size 512 KB
reply_body_max_size 512 KB
Redireccionar el puerto de acceso a la web
Como redireccionar el puerto 80 que usan los clientes por defecto al puerto del Squid sin que los usuarios se den cuenta de nada. Suponermos que ya tenemos funcionando el Squid tal y como hemos hecho en los pasos anteriores, ya comentamos la forma de usar Squid en los clientes cambiando en cada uno de ellos el puerto al que tienen que acceder. Pero imaginemos que tenemos muchos PCs, seria un trabajo de chinos tener que ir uno a uno para hacer esta tonteria, pues lo que vamos a hacer es redireccionar el puerto 80 al que usemos con el Squid, pero solo en el servidor
Me baso en el articulo que hice sobre instalar un servidor con el Cablemodem de ONO, ya que su pueden usar varias de las cosas que comento para este caso. Ahora creamos un fichero llamado ’compartir’ en /usr/bin/ tal que asi:
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -j MASQ -s 192.168.2.0/16
#Redireccionar el puerto 80 al 3128
/sbin/ipchains -A input -j REDIRECT 3128 -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 80
Ahora le cambiamos las propiedades al fichero y le damos la propiedad de ejecucion:
usuario /usr/bin$ chmod +x compartir
Ahora lo que nos interesa es que al arrancar el Linux nos ejecute el, fichero que hemos creado antes ’compartir’. Nos vamos al fichero /etc/rc.d/rc.local, lo editamos y añadimos al final del todo antes de queponga ’fi’ esta linea:
[…]
cp -f /etc/issue /etc/issue.net
echo >> /etc/issue
# —aqui empieza lo que añadimos——-
#compartir conexion a internet
/usr/bin/compartir
# —aqui termina lo que añadimos——-
fi
Espero que os gusten los nuevos añadidos
Links:
http://www.si.uniovi.es/mirror/squid/Doc/FAQ/FAQ.html
http://www.freeos.com/articles/2516/2/1-3/
http://www.aebius.com/docs/spanish/traducciones/transproxi/trans_proxi_sp.htm
http://segurinet.com/gsal/squid.htm
http://linuxcol.uniandes.edu.co/infolinux/docs/comos_gramo/squid/index.html
http://www.arrakis.es/~mikaku/espanol/ISP-Spanish-HOWTO-25.htm
http://www.rediris.es/si/cache/instalar-cache.es.html
E-mail del autor: gginard@navegalia.com
Podrás encontrar este artículo e información adicional en:
http://bulmalug.net/body.phtml?nIdNoticia=441