|
Squid es un servidor proxy que permite utilizar una sola
conexión a Internet para todas las estaciones de los centros
de acceso para la navegación por Internet.
El servidor proxy además almacena en el disco duro
del servidor las páginas más visitadas desde la estaciones
de tal manera que se realiza un ahorro significativo del ancho de
banda del enlace del centro de acceso cuando se solicita la página
nuevamente desde la misma u otra estación. Squid verifica
si la página ha cambiado, y de ser así, vuelve a almacenarla
localmente. Es posible configurar Squid para definir cuanto tiempo
pueden estar almacenadas las páginas en el servidor.
A continuación se muestra un instructivo para su instalación
y configuración:
1-. Obteniendo el programa.
Squid se puede obtener en el CD 2 (Binary CD) de la distribución
de RedHat 7 en RPM o copiar la versión que utilizamos en nuestra
instalación aquí.
También se puede obtener desde la distribución de los
programas fuentes. Las fuentes pueden obtenerse de http://www.squid-cache.org/
o puede la versión utilizada en nuestra instalación aquí.
2-. Instalación.
2.1-. Desde RPM.
Despues de copiar el programa en RPM ejecute:
# rpm -iv squid-2.3.STABLE4-1.i386.rpm
Con esto quedará instalado squid en el sistema. Proceda
con la configuración en el apartado
3.
2.2-. Desde las fuentes.
Desde la fuentes, después de obtener el paquete se debe
ejecutar:
# tar zxvf squid-2-3-STABLE3-src.tgz
# cd squid-2.3.STABLE3
# ./configure
# make
# make install
En este caso el programa squid quedará instalado en /usr/local/squid
3-. Configuración de squid.
Para configurar squid es necesario modificar el archivo: /etc/squid/squid.conf
para la distribución de RPM o /usr/local/squid/etc/squid.conf
para las fuentes.
Si realizó la instalación desde RPM teclee:
# cd /etc/squid/
de lo contrario:
# cd /usr/local/squid/etc
# pico squid.conf
El archivo original de configuración trae algunos parámetros
con el signo # al comienzo de la línea por lo que es importante
quitar el simbolo para activar el parámetro correspondiente.
Configurar desde cero squid es una labor dispendiosa. Le
sugerimos comenzar con nuestro archivo de configuración
squid.conf que puede obtenerse aquí.
A continuación se describe cada uno de los parámetros
utilizados en nuestra instalación. Algunos de ellos son
de caracter obligatorio para que el Sistema de Registro funcione
correctamente. Si Usted decide utilizar nuestro archivo de configuración
al menos debe cambiar los siguientes parámetros, especialmente
cache_effective_user y cache_effective_group:
A continuación se describen cada uno de los parámetros
utilizados en nuestra instalación:
http_port. Este parámetro define en que puerto responderá
a las solicitudes squid. Para nuestra instalación
utilizamos el puerto 3128:
http_port 3128
icp_port. Este parámetro define el puerto en que
el servidor squid recibe solicitudes ICP (Inter-Cache Protocol).
Desactivelo asignando el valor de cero al parámetro:
icp_port 0
hierarchy_stoplist.
Este parámetro es útil para indicar a squid qué
páginas que contengan ciertos caracteres no deben almacenarse
en el cache. Es importante incluir aquí sitios como Hotmail
ya que experimentamos problemas para realizar la autenticación
a través de squid con este sistema. Si Usted piensa colocar
páginas de Internet locales en su servidor del centro de
acceso es recomendable colocar aquí el nombre de su servidor
ya que no sería necesario almacenar en el cache las páginas
locales, por ejemplo, si su servidor se llama cabinas:
hierarchy_stoplist cgi-bin ? hotmail cabinas
cache_mem. Memoria
utilizada por squid para ciertos procesos. En nuestra instalación
para un computador de 64MB de memoria utilizamos 8 MB y para un
computador con 16MB utilizamos 4 MB y tuvimos buenos resultados:
cache_mem 8 MB
cache_swap_low. Indica el nivel en porcentaje de capacidad
mínima aceptada por squid, es decir, los objetos se mantendrán
en el cache hasta que se cope el límite mínimo:
cache_swap_low 90
cache_swap_high. Parámetro que especifica en porcentaje
el límite máximo que utiliza squid para mantener objetos
en el cache. Si el valor asignado es del 95%, squid comenzara a
eliminar los objetos del cache cuando se tope el 95% de la capacidad
asignada a squid:
cache_swap_high 95
maximum_object_size. Este parámetro, especificado
en KB, indica el tamaño máximo que se almacena en
el cache. Por defecto se utiliza 4MB:
maximum_object_size 4096 KB
cache_dir. Directorio de ubicación del cache, por
defecto /usr/local/squid/cache. Este parámetro incluye tres
parámetros numéricos adicionales. El primero incluye
el número de MB que se utilizarán en este directorio
para el cache, por defecto 100MB, el segundo el número
de directorios a utilizar en el primer nivel (16 por defecto) y
el tercero el número de subdirectorios en el segundo nivel
(256 por defecto):
cache_dir ufs /usr/local/squid/cache 100 16 256
cache_access_log. Especifica en que directorio se realizará
el registro de accesos al squid. Este parámetro es importante para
definir posteriormente en el sistema de análisis
de estadísticas, webalizer, la ubicación del registro
de accesos:
cache_access_log /usr/local/squid/logs/access.log
cache_log. Define en donde se almacenan los mensajes del
sistema:
cache_log /usr/local/squid/logs/cache.log
cache_store_log. Este parámetro especifica la ubicación
del archivo de registro de objetos sacados del cache. No es necesario
activarlo. Es mejor desactivarlo para ahorrar espacio en disco:
cache_store_log none
emulate_httpd_log. Este parámetro define si se desea utilizar
emulación de logs del servidor web (httpd). Es importante activarlo
con el fin de poder utilizar el sistema de análisis
de estadísticas webalizer:
emulate_httpd_log on
mime_table. Define la ubicación del archivo mime.conf, se
utiliza el valor por defecto:
mime_table /usr/local/squid/etc/mime.conf
pid_filename. Define la ubiación del archivo squid.pid,
se utiliza el valor por defecto:
pid_filename /usr/local/squid/logs/squid.pid
debug_options. Opciones de depuración, se utiliza
el valor por defecto:
debug_options ALL,1
ALL,1
reference_age. Este parámetro determina cuanto tiempo
permanece el objeto en el cache. Recomendamos un mes:
reference_age 1 month
quick_abort. Este parámetro define si un objeto debe
almacenarse en el cache cuando el usuario ha interrumpido una solicitud:
si el objeto tiene el valor especificado en min o falta más
del valor expecificado en max se abortará la transferencia.
Si se ha realizado una transferencia mayor del valor en porcentaje
especificado en pct, no se abortará el almacenamiento
del objeto. Se recomienda utilizar los valores por defecto:
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
negative_ttl. Este parámetro se utiliza para definir
cuanto tiempo debe esperar squid para procesar nuevamente una página
que no ha sido encontrada. Se recomiendan 5 minutos:
negative_ttl 5 minutes
positive_dns_ttl. Este parámetro especifica el tiempo
que squid mantendrá la dirección de un sitio visitado
exitosamente. El valor por defecto es de 6 horas:
positive_dns_ttl 6 hours
negative_dns_ttl. Especifica el tiempo que espera squid
antes de intentar nuevamente determinar la dirección de un
sitio solicitado y que no ha sido encontrado. Por defecto 5 minutos:
negative_dns_ttl 5 minutes
http_access e icp_access. Define una serie de permisos
para acceso al servidor squid. Recomendamos utilizar la siguiente
configuración:
http_access allow manager localhost
http_access deny manager
http_access allow CONNECT !SSL_ports
http_access allow all
icp_access allow all
miss_access allow all
cache_mgr. Definición
del administrador del sistema. En este ejemplo el usuario webmaster
recibirá notificación por correo si squid deja
de funcionar:
cache_mgr webmaster
cache_effective_user y cache_effective_group.
Estos dos parámetros definen que usuario (user) y grupo (group)
ejecuta squid. La versión de RPM utiliza el usuario squid
y grupo squid. La versión de las fuentes utiliza el usuario
nobody y grupo nogroup
RPM:
cache_effective_user squid
cache_effective_group squid
Fuentes:
cache_effective_user nobody
cache_effective_group nogroup
Es importante verificar que el grupo nogroup exista en
su sistema mirando el archivo group ubicado en el directorio /etc.
Este archivo debe tener una entrada como se muestra a continuación:
nogroup:x:500:
El número que aparece al final de la línea debe
ser único y corresponder al siguiente número disponible
en su servidor. Por ejemplo, si la última línea
del archivo /etc/group es:
slocate:x:21:
Utilice un número para este grupo superior a 21 y cerciorese
que no se encuentre ya utilizado por otro grupo en este archivo.
Como en el ejemplo anterior recomendamos que utilice el número
500.
El usuario nobody existe en las distribuciones de Linux.
visible_hostname.
Este parámetro define el nombre del servidor. Coloque aquí
el nombre de su servidor:
visible_hostname cabina
httpd_accel_uses_host_header.
Este parámetro se utiliza para activar el proxy transparente,
necesario para controlar el acceso a Internet desde las estaciones.
httpd_accel_uses_host_header on
httpd_accel_host y httpd_accel_port.
Este parámetro también es necesario para activar el
proxy transparente. Al configurar squid de esta manera no
es necesario realizar configuración de los navegadores del
centro de acceso con servidor proxy lo que se constituye en una
ventaja:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy.
Este parámetro es necesario activarlo para el proxy transparente:
httpd_accel_with_proxy on
dns_testnames. Este parámetro define que hosts se
utilizan para chequear el servidor de nombres:
dns_testnames netscape.com internic.net nlanr.net microsoft.com
append_domain.
Este parámetro indica a squid que dominio debe añadirse
a solicitudes que vengan sin dominio completo. Es recomendable colocar
el dominio de su Telecentro (nótese que debe comenzar con
un punto):
append_domain .cabina.dominio
cachemgr_passwd. Squid es posible ser administrado desde
una página web una vez instalado (no documentado aquí).
Este parametro define la clave de acceso para tener acceso a esta
función:
cachemgr_passwd clave all
4-.Creación del cache.
Antes de utilizar squid por primera vez es necesario crear el directorio
cache ejecutando para la versión de RPM:
# /usr/sbin/squid -z
y para la versión de fuentes:
# /usr/local/squid/bin/squid -z
En la versión de fuentes es importante asignar los permisos
del directorio de registro (logs) al usuario nobody
y grupo nogroup:
# cd /usr/local/squid/
# chmod nobody.nogroup logs
5-. Ejecución del squid.
5.1-. Inicio del servidor para la instalación de RPM.
Una vez instalado squid para que se inicie cada vez que se prenda
el servidor se puede colocar al final del archivo /etc/rc.d/rc.local
la línea de comando /etc/init.d/squid start:
# cd /etc/rc.d
# pico rc.local
ir al final del archivo y añadir:
/etc/init.d/squid start
o Usted puede ejecutar este comando manualmente.
5.2-. Inicio del servidor squid para la instalación de
las fuentes:
Una vez instalado squid para que se inicie cada vez que se prenda
el servidor se puede colocar al final del archivo /etc/rc.d/rc.local
la línea de comando /usr/local/squid/bin/squid:
# cd /etc/rc.d
# pico rc.local
ir al final del archivo y añadir:
/usr/local/squid/bin/squid
o Usted puede ejecutar este comando manualmente.
|