Sei sulla pagina 1di 9

Configuracin de Squid

El trabajo y comportamiento de Squid es controlado por detalles de


configuracin determinados en su archivo de configuracin squid.conf, el cual
usualmente se encuentra en el directorio etc/squid. El archivo de
configuracin de Squid es bastante grande, pginas de pginas, pero tiene
todas sus opciones o parmetros bien documentados.
Lo primer que tiene que ser editado es el parmetro 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. Adems del valor del puerto, se
puede determinar la direccin 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 declaracin anterior decimos que Squid est "enlazado" a la direccin
IP 192.168.0.1 y al puerto 8080. Se le puede asignar cualquier puerto, pero
hay que asegurarse de que ninguna otra aplicacin este corriendo por el puerto
a asignar. Con lneas de configuracin similares se pueden asignar pedidos de
puertos de otros servicios.

Control de Acceso (Access Control)


La salida a Internet puede ser controlada en trminos de acceso por un
intervalo de tiempo, cache, acceso a un sitio en particular o a un grupo de
sitios, etc.El control de acceso de Squid tiene 2 componentes diferentes, los
elementos de ACL (Access Control List o Lista de Control de Acceso) y la
lista de acceso. De hecho, la lista de acceso es la que permite o niega el acceso
al servicio.
Unos cuantos tipos de elementos importantes de ACL en la siguiente lista:
src : Origen, Direccin IP de un cliente
dst : Destino, Direccin IP del servidor
srcdomain : Dominio Origen, nombre de dominio del cliente
dstdomain : Destino, Nombre de domino del server
time: Hora del da y da de la semana
url_regex: URL regular expression pattern matching

urlpath_regex: URL-path regular expression pattern matching, leaves


out the protocol and hostname
proxy_auth : Autenticacin de usuario a traves de un proceso externo
maxconn : Nmero mximo de lmite de conexiones de una direccin
IP
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:
acl nombre_elemento_acl tipo_elemento_acl valores de_acl
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
mltiples valores usan un OR logic. En otras palabras, un elemento
ACL es igual cuando alguno de sus valores es comparado
positivamente.
No todo el elemento ACL pueden ser usados con todos los tipos de
listas de acceso.
Los diferentes elementos ACL estn en diferentes lneas y Squid los
combina en una lista.
Se dispone de un nmero de listas de acceso. Las que vamos a usar estn en la
siguiente 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 pginas 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 accin por defecto es
hacer lo opuesto a la ltima regla en la lista, por eso es mejor ser
explicito con la accin 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 elementos de entrada de acceso tengan un AND juntas.
Recuerde que las reglas son ledas de arriba hacia abajo siempre
De vuelta a la configuracin
Por defecto Squid no permite ningn acceso a los clientes y los controles
tienen que ser modificados para ese propsito. Tiene que crear sus reglas para
permitir el acceso. Edite el archivo squid.con e ingrese las siguientes lneas
debajo de la lnea http_access deny all
acl mynetwork 192.168.0.1/255.255.255.0
http_access allow mynetwork
mynetwork es el nombre de acl y la siguiente lnea 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 mquinas en la red y la regla permite el acceso a los clientes. Los
cambios anteriores junto con http_port http_port son ms que suficiente para
poner Squid en funcionamiento. Despus de los cambios Squid puede ser
inicializado con el siguiente comando.
service squid start
Nota :
Squid tambin puede ser inicializado automticamente en el momento de
arranque habilitndolo ya sea con ntsysv o setup (System Service Menu)(esto
funciona en RedHat, para hacerlo en Debian, puede usar el comando updaterc <nombre del servicio>).
Despus de cada cambio en el archivo configuracin, 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:
service squid restart o
/etc/rc.d/init.d/squid restart

Configuracin del cliente

Dado que el pedido del cliente ser colocado en un puerto en particular del
servidor proxy, la mquina del cliente tiene que ser configurada para el mismo
propsito. Se da por sentado que estas mquinas ya estn conectadas a la LAN
(Con direcciones IP validas) y que se puede hacer ping desde ellas hacia el
servidor Linux.
Para Internet Explorer
Vaya al Herramientas -> Opciones de Internet
Seleccione el tab Conexiones y haga click en Configuracin de Red
Marque la casilla Servidor Proxy e ingrese la direccin del servidor proxy y el
puerto por donde son atendidos los pedidos (el nmero de puerto que
configuro en http_port)
Para Netscape Navigator
Vaya a Editar -> Preferencias -> Avanzados ->
Proxies.
Seleccione Configuracin manual del proxy
Haga click en el boton Ver &
Ingrese la direccin del servidor proxy y el puerto por donde son
atendidos los pedidos (el nmero de puerto que configuro en http_port)

El uso del Control de Acceso


Las reglas y control de Acceso mltiple ofrecen una forma flexible de
controlar el acceso de los clientes a Internet. A continuacin, algunos ejemplos
de la regla ms usados comnmente.
Allowing selected machines to have access to the Internet
acl allowed_clients src 192.168.0.10

192.168.0.20 192.168.0.30

http_access allow allowed_clients


http_access deny !allowed_clients
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
estn en la lista) no tienen salida a Internet
Restringir la salida a Internet durante un periodo de tiempo
acl allowed_clients src
192.168.0.1/255.255.255.0

acl regular_days time MTWHF 10:00-16:00


http_access allow allowed_clients regular_days
http_access deny allowed_clients
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.
Mltiples horas de accceso para diferentes clientes
acl hosts1 src192.168.0.10
acl hosts2 src 192.168.0.20
acl hosts3 src 192.168.0.30
acl morning time 10:00-13:00
acl lunch time 13:30-14:30
acl evening time 15:00-18:00
http_access allow host1 morning
http_access allow host1 evening
http_access allow host2 lunch
http_access allow host3 evening
http_access deny all
La regla anterior permitir que el host1 tenga acceso tanto en la maana
como en la tarde; mientras que el host2 y host3 solo tendrn acceso
durante la hora del almuerzo y en la tarde respectivamente.
Nota:
Todos los elementos de una entrada de acceso comparados juntos con
un AND y ejecutados de la siguiente manera
http_access Accin sentencia1 AND sentencia2 AND sentenciaN OR.
Las sentencias http_access multiples son comparadas con OR siempre y
cuando los elementos de las entradas de acceso estn siendo
comparadas por un AND todas juntas, debido a esto la sentencia:
http_access allow host1 morning evening
nunca trabajara como tiempo morning evening (morning AND
evening) (maana Y tarde) y nunca sera TRUE (verdadero), y por
consiguiente ninguna accin se llevara a cabo.
Bloquear pginas web

Squid puede evitar el acceso a direcciones de sitios que contengan una


palabra en particular, esto puede ser implementado de la siguiente
manera
acl allowed_clients src 192.168.0.1/255.255.255.0
acl banned_sites url_regex abc.com *()(*.com
http_access deny banned_sites
http_access allow allowed_clients
Lo mismo se puede usar para evitar en acceso a sitios con una palabra
en particular, por ejemplo, dummy,
acl allowed_clients src
192.168.0.1/255.255.255.0
acl banned_sites url_regex dummy
http_access deny banned_sites
http_access allow allowed_machines
NO es practico listar todas las palabras o nombres de sites a lo que no
desea que se tenga acceso, esta informacin puede ser ingresada en un
archivo, (por ejemplo sites_prohibidos.list en el directorio /etc, y una
ACL puede tomar la informacin de ese archivo para evitar el acceso a
los sitios prohibidos.
acl allowed_clients src
192.168.0.1/255.255.255.0
acl banned_sites url_regex "/etc/banned.list"
http_access deny banned_sites
http_access allow allowed_clients
Para optimizar el uso de Squid
Squid puede limitar el nmero de conexiones desde los clientes y esto
es posible con un elemento max_conn. para usar esta opcin, se debe de
habilitar el parametro client_db.
acl mynetwork 192.168.0.1/255.255.255.0
acl numconn maxconn 5
http_access deny mynetwork numconn
Note:
El ACL maxconn usa comparacin menor-que (less-than). Esta
ACL es ejecutada cuando el nmero de conexiones es mayor que el
especificado.Esta es la razn por la cual esta ACL, no es usada con la
regla http_access allow.

Almacenamiento de datos (Cache)


La repuesta a los pedidos de los clientes, son almacenados
inmediatamente, lo cual est bien para paginas estticas, no hay
necesidad de almacenar cgi-bin o Servlet y esto se puede evitar usando
el elemento de ACL no_cache ACL.
acl cache_prevent1 url_regex cgi-bin /?
acl cache_prevent2 url_regex Servlet
no_cache deny cache_prevent1
no_cache deny cache_prevent2
Crear tus propios mensajes de error
Es posible crear tus propios mensajes de error con una regla de denegar
(deny) con la opcin deny_info. Los mensajes de error de Squid estan
en el directorio /etc/squid/errors, este directorio de errores puede ser
configurado con la opcin error_directory. Si desea puede personalizar
el contenido de los mensajes de error.
acl allowed_clients src 192.168.0.1/255.255.255.0
acl banned_sites url_regex abc.com *()(*.com
http_access deny banned_sites
deny_info ERR_BANNED_SITE banned_sites
http_access allow allowed_clients
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 opcin 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 listados arriba son
solo unas cuantas de las opciones y capacidad de la ACL,puede leer
la FAQ en la pgina de Squid, para obtener una explicacin ms
extensa del uso de los elementos de ACL y otros elementos de acceso.

Archivos de Log (Log Files)


Todos los archivos de registro de actividad estn en el directorio
/var/log/squid; estos archivos contienen registros de cache, acceso y
almacenamiento. El archivo access.log mantiene informacin acerca de los
pedidos de los clientes, actividad, y mantiene una entrada por cada consulta
HTTP e ICMP realizada por el servidor proxy, las IPs de los clientes, mtodo
de pedido, URL pedida, etc... La informacin de este archivo puede ser usada
para analizar la informacin de acceso. Muchos programas

como sarg, calamaris;, Squid-Log-Analyzer; estn disponibles para analizar


estos datos y generar reportes en base a usuariosm nmeros IP, sitios visitados,
etc...
El destino de esto archivos de registro puede ser cambiados con las siguientes
opciones
cache_access_log
cache_log
cache_store_log
pid_filename

para access.log
paracache.log
para store.log (Store manager)
para el archivo de ID del proceso de Squid

Mtodos de autenticacin
La configuracin por defecto de Squid permite que cualquier usuario tenga
acceso sin necesidad de realizar algn proceso de autenticacin. 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
autenticacin con nombre de usuario y contrasea, pero va una aplicacin
externa, usando la ACL proxy_auth y authenticate_program; se fuerza a un
cliente a verificar nombre de usuario y contrasea antes de que obtenga acceso
a internet. Hay varios programas de autenticacin disponibles que Squid
puede usar:
LDAP : Usa Linux Lightweight Directory Access Protocol
NCSA : Usa un archivo estilo NCSA con username y password
SMB : Usa el server SMB server como SAMBA Windows NT
MSNT : Usa la autenticacin de dominio de Windows NT
PAM : Usa Linux Pluggable Authentication Modules
getpwam : Usa el archivo de contraseas de Linux.
Se necesita especificar el programa de autenticacin que ser usado
especificando la opcin authenticate_program. Cerciores de que el programa
que va a usar para autenticacin este instalado y funcionando.
El cambio en el archivo squid.conf debe de tener el programa a usar para
autenticacin.
authenticate_program /usr/local/bin/pam_auth
acl pass proxy_auth REQUIRED
acl mynetwork src 192.168.0.1/255.255.255.0
http_access deny !mynetwork
http_access allow pass
http_access deny all

Potrebbero piacerti anche