|
|
Este documento está disponible en los siguientes idiomas: English Castellano ChineseGB Deutsch Francais Italiano Nederlands Russian Turkce |
por D.S. Oberoi <ds_oberoi(at)yahoo.com> Sobre el autor: D.S. Oberoi vive en Jammu, India y actualmente tiene problemas para conectarse a Internet debido a las tensiones políticas. Taducido al español por: Miguel Espejo <mespejo(at)datatec.com.pe> Contenidos: |
Resumen:
Linux se ha vuelto sinonimo de REDES. Esta siendo usado en hogares y oficinas como servidor de archivos, de impresión, de correo, de aplicaciones y ultimamente se ha incrementado su uso como servidor Proxy.
Un servidor proxy, facilita el acceso a Internet de varios usuarios al mismo tiempo que están compartiendo una solo conexión a Internet. Un buen servidor proxy también almacena (caching) pagínas web que le ha sido solicitadas, lo cual ayuda a ver esos datos desde un recurso local, en vez de estar bajando datos de la web y por consiguiente reduce el tiempo de acceso y uso del ancho de banda. Squid es un software que soporta proxy, hace cache de paginas web, de DNS y mantiene un registro completo de todos los pedidos. Squid también esta disponible para Windows-NT de Logi Sense.
El objetivo de este articulo es proporcionarle una guía basica de configuración de un servidor proxy y algunas formas de proporcionar acceso controlado a sus usuarios
rpm -q squid
Puede obtener la ultima version de Squid en Squid
Homepage y en los mirrors Lista
de mirrors. Squid puede ser instalado en el sistema operativo con el
siguiente comando:
rpm -ivh squid-2.3.STABLE4-10.i386.rpm
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.
Unos cuantos tipos de elementos importantes de ACL en la siguiente lista:
time : Hora del día y día 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 : Autenticación de usuario a traves de un proceso externo
maxconn : Número máximo de limite de conexiones de una dirección IP
acl nombre_elemento_acl tipo_elemento_acl valores de_acl
Nota :
Los diferentes elementos ACL estan en diferentes líneas y Squid los combina en una lista.
Recuerde que las reglas son leídas de arriba hacia abajo siempre
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
acl mynetwork 192.168.0.1/255.255.255.0
http_access allow mynetwork
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.
service squid start
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:
Para Internet Explorer
Vaya al Herramientas -> Opciones de Internet
Seleccione el tab Conexiones y haga click en Configuración de Red
Marque la casilla Servidor Proxy e ingrese la direccion del servidor proxy y el puerto por donde son atendidos los pedidos (el número de puerto que configuro en http_port)
Para Netscape Navigator
Allowing selected machines to have access to the Internet
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 están en la lista) no tienen salida a Internet
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.
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 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 respectivamente.
Nota:
Todos los elementos de una entrada de acceso comparados juntos con
un AND y ejecutados de la siguiente manera
http_access Acción 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 esten siendo comparadas por un AND todas juntas, debido a esto la sentencia :
http_access allow host1 morning evening
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.
Bloquear pagínas web
Squid puede evitar el acceso a direcciones de sites que contengan una palabra en particular, esto puede ser implementado de la siguienta 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 palabar 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 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.
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 número de conexiones desde los clientes
y esto es posible con en elemento max_conn. para usar esta opción,
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 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.
Almacenamiento de datos ( Cache )
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.
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 opción deny_info. Los mensajes de error de Squid
estan en el directorio /etc/squid/errors, este directorio de errores puede
ser configurado con la opción 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 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.
El destino de esto archivos de registro puede ser cambiados con las siguientes opciones
cache_access_log para access.log cache_log paracache.log cache_store_log para store.log (Store manager) pid_filename para el archivo de ID del proceso de Squid
El cambio en el archivo squid.conf debe de tener el pograma a usar para autenticación.
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
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.
|
Contactar con el equipo de LinuFocus
© D.S. Oberoi, FDL LinuxFocus.org Pinchar aquí para informar de algún problema o enviar comentarios a LinuxFocus |
Información sobre la traducción:
|
2002-05-07, generated by lfparser version 2.21