Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen:
http://www.linuxfocus.org/Castellano/March2002/article235.shtml 5-11-07
lf235, System Administration: Configuración de un servidor Squid-Proxy Page 2 of 9
Configuración de Squid
El trabajo y comportamiento de Squid es controlado por detalles de configuración determinados en su
archivo de configuración squid.conf, el cual usualmente se encuentra en el directorio etc/squid. El
archivo de configuración de Squid es bastante grande, paginas de paginas, pero tiene todas sus opciones
o parametros bien documentados.
Lo primer que tiene que ser editado es el parametro http_port, el cual especifica el puerto donde Squid
escuchará los pedidos de los clientes, por defecto Squid escucha los pedidos en el puerto 3128 pero esto
puede ser cambiado a un valor definido por el usuario. Ademas del valor del puerto, se puede determinar
la direccion ip de la maquina en la que se ejecuta el Squid; esto se puede cambiar a:
http_port 192.168.0.1:8080
Con la declaración anterior decimos que Squid esta "enlazado" a la dirección IP 192.168.0.1 y al puerto
8080. Se le puede asignar cualquier puerto, pero hay que asegurarse de que ninguna otra aplicación este
corriendo por el puerto a asignar. Con lineas de configuración similares se pueden asignar pedidos de
puertos de otros servicios.
urlpath_regex: URL-path regular expression pattern matching, leaves out the protocol and
hostname
http://www.linuxfocus.org/Castellano/March2002/article235.shtml 5-11-07
lf235, System Administration: Configuración de un servidor Squid-Proxy Page 3 of 9
Para aplicar los controles, primero tiene que definir el conjunto de ACLs y luego aplicar las reglas al
conjunto. El formato de una sentencia ACL es:
Nota :
nombre_elemento_acl puede ser cualquier nombre definido por el usuario que se determine para
el elemento ACL .
No se puede repetir los nombres de los elementos ACL.
Cada ACL consiste en una lista de valores. Cuando se comparan, los múltiples valores usan un
OR logic. En otras palabras, un elemento ACL es igual cuando alguno de sus valores es
comparado positivamente.
No todo los elementos ACL pueden ser usados con todos los tipos de listas de acceso.
Los diferentes elementos ACL estan en diferentes líneas y Squid los combina en una lista.
Se dispone de un número de listas de acceso. Las que vamos a usar estan en la siguitente lista:
http_access: Permite que los clientes HTTP tengan salida por el puerto HTTP port. Esta es la lista
de control de acceso principal.
no_cache: Define el almacenamiento de las páginas solicitadas.
Una regla de una lista de acceso consiste en keywords como allow o deny; las cuales permiten o niegan
el servicio para un elemento ACL o para un grupo de elementos ACL.
Nota:
Las reglas son verificadas en el orden en el que fueron escritas y se dejan de verificar en cuanto la
regla coincida.
Una lista de acceso puede contener varias reglas.
Si ninguna de las reglas es igual, entonces la acción por defecto es hacer lo opuesto a la ultima
regla en la la lista, por eso es mejor ser explicito con la acción a realizar por defecto.
Todos los elementos de una entrada de acceso son comparados con un AND y ejecutados de la
siguiente manera.
http_access Action Sentencia1 AND Sentencia2 AND Sentencia OR.
http_access Action Sentencia3
Multiples sentencias http_access statements son comparadas con OR siempre que los los
elementos de entrada de accceso tengan un AND juntas.
Recuerde que las reglas son leídas de arriba hacia abajo siempre
De vuelta a la configuración
Por defecto Squid no permite ningún acceso a los clientes y los controles tienen que ser modificados
para ese proposito.Tiene que crear sus reglas para permitir el accceso. Edite el archivo squid.con e
ingrese las siguientes líneas debajo de la línea http_access deny all
http://www.linuxfocus.org/Castellano/March2002/article235.shtml 5-11-07
lf235, System Administration: Configuración de un servidor Squid-Proxy Page 4 of 9
mynetwork es el nombre de acl y la siquiente linea es la regla aplicable a un acl en particular, por
ejemplo mynetwork. 192.168.0.1 se refiere a la red cuya mascara es 255.255.255.0. mynetwork
basicamente determina el nombre de un grupo de maquinas en la red y la regla permite el acceso a los
clientes. Los cambios anteriores junto con http_port http_port son mas que suficiente para poner Squid
en funcionamiento. Despues de los cambios Squid puede ser inicializado con el siguite comando.
Nota :
Squid también puede ser inicializado automaticamente en el momento de arranque habilitandolo ya sea
con ntsysv o setup (System Service Menu)(esto funciona en RedHat, para hacerlo en Debian, puede usar
el comnado update-rc <nombre del servicio>).
Despues de cada cambio en el archivo configuración, debe de parar e iniciar de nuevo el proceso del
Squid, para que dichos cambios entren en vigencia. esto se hace puede hacer con los siguientes
comandos:
http://www.linuxfocus.org/Castellano/March2002/article235.shtml 5-11-07
lf235, System Administration: Configuración de un servidor Squid-Proxy Page 5 of 9
Esto permite que solo salgan a internet las pcs cuya IPs son 192.168.0.10, 192.168.0.20 and
192.168.0.30, el resto ( que no están en la lista) no tienen salida a Internet
Esto permite que todos los clientes en la red 192.168.0.1 de lunes a viernes de 10:00 am a 4:00
pm.
La regla anterior permitira que el host1 tenga acceso tanto en la mañana como en la tarde;
mientras que el host2 y host3 solo tendran acceso durante la hora del almuerzo y en la tarde
http://www.linuxfocus.org/Castellano/March2002/article235.shtml 5-11-07
lf235, System Administration: Configuración de un servidor Squid-Proxy Page 6 of 9
respectivamente.
Nota:
Todos los elementos de una entrada de acceso comparados juntos con un AND y ejecutados de la
siguiente manera
Las sentencias http_access multiples son comparadas con OR siempre y cuando los elementos de
las entradas de acceso esten siendo comparadas por un AND todas juntas, debido a esto la
sentencia :
nunca trabajaría como tiempo morning evening (morning AND evening) (mañana Y tarde) y
nunca sería TRUE ( verdadero), y por consiguiente ninguna acción se llevaria a cabo.
Squid puede evitar el acceso a direcciones de sites que contengan una palabra en particular, esto
puede ser implementado de la siguienta manera
Lo mismo se puede usar para evitar en acceso a sitios con una palabar en particular, por ejemplo
dummy,
NO es practico listar todas las palabras o nombres de sites a lo que no desea que se tenga acceso,
esta información puede ser ingresada en un archivo, (por ejemplo sites_prohibidos.list en el
directorio /etc, y una ACL puede tomar la información de ese archivo para evitar el acceso a los
sitios prohibidos.
http://www.linuxfocus.org/Castellano/March2002/article235.shtml 5-11-07
lf235, System Administration: Configuración de un servidor Squid-Proxy Page 7 of 9
Note:
El ACL maxconn usa comparación menor-que (less-than). Esta ACL es ejecutada cuando el
número de conexiones es mayor que el especificado.Esta es la razón por la cual esta ACL, no es
usada con la regla http_access allow.
La repuesta a los pedidos de los clientes, son almacenados inmediatamente, lo cual esta bien para
paginas estaticas, no hay necesidad de almacenar cgi-bin o Servlet y esto se puede evitar usando el
elemento de ACL no_cache ACL.
En el ejemplo anterior, un mensaje especial se mostrará cada vez que los usuarios traten de
ingresar a los sitos con las palabras prohibidas, el nombre de archivo en la opción por ejemplo
ERR_BANNED_SITE debe de existir en el directorio de error. Este archivo de mensajes de error
debe de estar en formato HTML. Los ejemples listasdos arriba son solo unas cuantas de las
opciones y capacidad de la ACL,puede leer la FAQ en la pagnia de Squid, para obtener una
explicación mas extensa del uso de los elementos de ACL y otros elementos de acceso.
http://www.linuxfocus.org/Castellano/March2002/article235.shtml 5-11-07
lf235, System Administration: Configuración de un servidor Squid-Proxy Page 8 of 9
archivo puede ser usada para analizar la información de acceso. Muchos programas como sarg,
calamaris;, Squid-Log-Analyzer; estan disponibles para analizar estos datos y generar reportes en base a
usuariosm números IP, sitios visitados, etc...
El destino de esto archivos de registro puede ser cambiados con las siguientes opciones
Métodos de autenticación
La configuración por defecto de Squid permite que cualquier usuario tenga acceso sin necesidad de
realizar algún proceso de autenticación. Para autenticar a los usuarios, ( digamos que solo un grupo de
usuarios, desde cualquier maquina en la mi red puede entrar a Internet) Squid permite autenticación con
nombre de usuario y contraseña pero vía una aplicación externa, usando la ACL proxy_auth y
authenticate_program; se fuerza a un cliente a verificar nombre de usuario y contraseña antes de que
obtenga acceso a internet. Hay varios programas de autenticación disponibles que Squid puede usar :
authenticate_program /usr/local/bin/pam_auth
Esto usa el programa de autenticación PAM y todos los usuarios necesitan autenticarse antes salir a
Internet.
Opciones como authenticate_ttl y authenticate_ip_ttl también pueden ser usadas para cambiar el
comportamiento del proceso de autenticación, por ejemplo revalidar el usuario y su contraseña.
http://www.linuxfocus.org/Castellano/March2002/article235.shtml 5-11-07
lf235, System Administration: Configuración de un servidor Squid-Proxy Page 9 of 9
Referencias
Este articulo solo toca la punta del iceberg Squid, visite las siguientes paginas para obtener mayor
referencia.
http://www.linuxfocus.org/Castellano/March2002/article235.shtml 5-11-07