domingo, 5 de julio de 2009

Configuración Servidor de Internet Proxy Squid

¿Qué es Servidor Intermediario (Proxy)?

El término en ingles «Proxy» tiene un significado muy general y al mismo tiempo ambiguo, aunque invariablemente se considera un sinónimo del concepto de «Intermediario». Se suele traducir, en el sentido estricto, como delegado o apoderado (el que tiene el que poder sobre otro).
Un Servidor Intermediario (Proxy) se define como una computadora o dispositivo que ofrece un
servicio de red que consiste en permitir a los clientes realizar conexiones de red indirectas hacia
otros servicios de red. Durante el proceso ocurre lo siguiente:
  • Cliente se conecta hacia un Servidor Intermediario (Proxy).
  •  Cliente solicita una conexión, fichero u otro recurso disponible en un servidor distinto.
  •  Servidor Intermediario (Proxy) proporciona el recurso ya sea conectándose hacia el servidor especificado o sirviendo éste desde un caché.
  • En algunos casos el Servidor Intermediario (Proxy) puede alterar la solicitud del clienteo bien la respuesta del servidor para diversos propósitos.
Los Servidores Intermediarios (Proxies) generalmente se hacen trabajar simultáneamente como
muro cortafuegos operando en el Nivel de Red, actuando como filtro de paquetes, como en el caso de iptables, o bien operando en el Nivel de Aplicación, controlando diversos servicios, como es el caso de TCP Wrapper. Dependiendo del contexto, el muro cortafuegos también se conoce como BPD o Border Protection Device o simplemente filtro de paquetes.
Una aplicación común de los Servidores Intermediarios (Proxies) es funcionar como caché de contenido de Red (principalmente HTTP), proporcionando en la proximidad de los clientes un caché de páginas y ficheros disponibles a través de la Red en servidores HTTP remotos, permitiendo a los clientes de la red local acceder hacia éstos de forma más rápida y confiable.
Cuando se recibe una petición para un recurso de Red especificado en un URL (Uniform Resource Locator) el Servidor Intermediario busca el resultado del URL dentro del caché. Si éste es encontrado, el Servidor Intermediario responde al cliente proporcionado inmediatamente el contenido solicitado. Si el contenido solicitado no estuviera disponible en el caché, el Servidor Intermediario lo traerá desde servidor remoto, entregándolo al cliente que lo solicitó y guardando una copia en el caché. El contenido en el caché es eliminado luego a través de un algoritmo de expiración de acuerdo a la antigüedad, tamaño e historial de respuestas a solicitudes (hits).
Los Servidores Intermediarios para contenido de Red (Web Proxies) también pueden actuar como filtros del contenido servido, aplicando políticas de censura de acuerdo a criterios arbitrarios.

Acerca de Squid.
Squid es un Servidor Intermediario (Proxy) de alto desempeño que se ha venido desarrollando
desde hace varios años y es hoy en día un muy popular y ampliamente utilizado entre los sistemas operativos como GNU/Linux y derivados de Unix®. Es muy confiable, robusto y versátil y se distribuye bajo los términos de la Licencia Pública General GNU (GNU/GPL). Entre otras cosas, Squid puede funcionar como Servidor Intermediario (Proxy) y caché de contenido de Red para los protocolos HTTP, FTP, GOPHER y WAIS, Proxy de SSL, caché transparente, WWCP, aceleración HTTP, caché de consultas DNS y otras muchas más como filtración de contenido y control de acceso por IP y por usuario. URL: http://www.squid-cache.org/ Sustento lógico necesario.
Para poder llevar al cabo los procedimientos descritos en este manual y documentos relacionados, usted necesitará tener instalado al menos lo siguiente:

Al menos squid-2.5.STABLE6
• Todos los parches de seguridad disponibles para la versión del sistema operativo que esté utilizando. No es conveniente utilizar un sistema con posibles vulnerabilidades como Servidor Intermediario.

Debe tomarse en consideración que, de ser posible, se debe utilizar siempre las versiones estables más recientes de todo sustento lógico que vaya a ser instalado para realizar los procedimientos descritos en este manual, a fin de contar con los parches de seguridad necesarios.
Ninguna versión de Squid anterior a la 2.5.STABLE6 se considera como apropiada debido a fallas de seguridad de gran importancia.
Squid no se instala de manera predeterminada a menos que especifique lo contrario durante la instalación del sistema operativo, sin embargo viene incluido en casi todas las distribuciones actuales. El procedimiento de instalación es exactamente el mismo que con cualquier otro sustento lógico.

Instalación en Debian/ubuntu.
Mal
apt-get install squid squid-common

Antes de continuar
Evite dejar espacios vacíos en lugares indebidos. El siguiente es un ejemplo de como no se debe habilitar un parámetro.
Mal

# Opción incorrectamente habilitada
http_port 3128

El siguiente es un ejemplo de como si se debe habilitar un parámetro.
Bien
# Opción correctamente habilitada
http_port 3128

Configuración básica

Squid utiliza el fichero de configuración localizado en /etc/squid/squid.conf, y podrá trabajar sobre este utilizando su editor de texto simple preferido. Existen un gran número de parámetros, de los cuales recomendamos configurar los siguientes:

• http_port
• cache_dir
• Al menos una Lista de Control de Acceso
• Al menos una Regla de Control de Acceso
• httpd_accel_host
• httpd_accel_port
• httpd_accel_with_proxy

Parámetro http_port: ¿Que puerto utilizar para Squid?
De acuerdo a las asignaciones hechas por IANA y continuadas por la ICANN desde el 21 de marzo de 2001, los Puertos Registrados (rango desde 1024 hasta 49151) recomendados para Servidores Intermediarios (Proxies) pueden ser el 3128 y 8080 a través de TCP.
De modo predefinido Squid utilizará el puerto 3128 para atender peticiones, sin embargo se puede especificar que lo haga en cualquier otro puerto disponible o bien que lo haga en varios puertos disponibles a la vez.
En el caso de un Servidor Intermediario (Proxy) Transparente, regularmente se utilizará el puerto 80 o el 8000 y se valdrá del re-direccionamiento de peticiones de modo tal que no habrá necesidad alguna de modificar la configuración de los clientes HTTP para utilizar el Servidor Intermediario (Proxy). Bastará con utilizar como puerta de enlace al servidor. Es importante recordar que los Servidores HTTP, como Apache, también utilizan dicho puerto, por lo que será necesario volver a configurar el servidor HTTP para utilizar otro puerto disponible, o bien desinstalar o desactivar el servidor HTTP.

Explicaremos un ejemplo práctico
La empresa TUXITOS desea implementar un Servidor de Internet bajo la plataforma de GNU/Linux. Cada usuario tiene que poder acceder al directorio del grupo, además podrá acceder a su propia carpeta personal.

Realizaremos los siguientes pasos:
1. Verificación de Squid Instalado.
# aptitude search squid

2. Verificar la existencia el archivo de autenticación por el método ncsa.
# locate ncsa_auth
/usr/lib/squid/ncsa_auth

3. Si esta Instalado renombrar el archivo de configuración de Squid.
# mv /etc/squid/squid.conf /etc/squid/squid.conf.default

4. Ahora la configuración del servidor de Internet para Tuxitos.
# vi /etc/squid/squid.conf

### Parametros Globales ###
http_port 8080
cache_mem 16 MB
cache_dir ufs /var/spool/squid 100 16 256
ftp_user proxy@udb.edu.sv

# No Registrar Log
cache_access_log none
cache_log none
cache_store_log none

# Refrescar algoritmos de actualizacion para ahorrar ancho de banda
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

### Metodo de autenticacion ###
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd-tuxitos
auth_param basic realm Proxy Server - UDB
auth_param basic credentialsttl 2 hours

#### Configuracion minima de una red local completa ###
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 to_localhost dst 127.0.0.0/8

acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
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

### LISTA DE CONTROL DE ACCESO ###

# Horarios de Acceso
acl horario_ventas time MTWHF 8:00-20:00
acl horario_bodega time MTWHF 12:00-14:00

# Usuarios con acceso
acl user_ventas proxy_auth vendedor01 vendedor02
acl user_bodega proxy_auth bodega01 bodega02

# Archivos Multimedia
acl multimedia_file urlpath_regex -i /etc/squid/multimedia_file.acl

# Archivos Linux
acl linux_file urlpath_regex -i /etc/squid/linux_file.acl

# Archivos Comprimidos y Ejecutables
acl comprimidos_exe_file urlpath_regex -i /etc/squid/comprimidos_exe_file.acl

### Reglas de control ###
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

# Reglas de configuración
http_access allow user_ventas horario_ventas !multimedia_file !linux_file
comprimidos_exe_file
http_access allow user_bodega horario_bodega !multimedia_file !linux_file
!comprimidos_exe_file
http_access deny all
http_access allow localhost

# Permite contestar a las peticiones del cliente
http_reply_access allow all

# Permite o deniega el acceso al puerto ICP basándose en las ACL definidas
icp_access allow all

5. Ahora hay que crear los archivos con los de restricciones
# vi comprimidos_exe_file.acl
\.exe$
\.bat$
\.tiff$

# vi linux_file.acl
\.tar$
\.gz$
\.bz2$
\.iso$

# vi multimedia_file.acl
\.avi$
\.mp3$
\.mp4$

6. Ahora crearemos los usuarios mediante el método ncsa_auth.
# htpasswd –c passwd-tutixos vendedor01
# htpasswd passwd-tutixos vendedor02
# htpasswd passwd-tutixos bodega01
# htpasswd passwd-tutixos bodega02

7. Ahora basta con reiniciar el servicio de Squid.
# /etc/init.d/squid restart

8. Ahora la configurando los Clientes.
Internet Explorer:
Herramientas->opciones de Internet-> Conexiones –> Configuración de LAN
- Dirección : IP-Del-Servidor
- Puerto : 8080

9. Ahora Cerrar el Internet Explorer

10. Abrir el Internet Explorer y probar los usuarios creados.

11. Ahora habilitar la generación de archivos los de acceso en el archivo de configuración del squid.
cache_access_log /var/log/squid/access.log

12. Reiniciar Squid

13. Verificación de acceso del archivo log.
# tail –f /var/log/squid/access.log

14. Ahora navegar y verificar el archivo log.

Bueno de esta manera configuraremos el Servidor de Internet Proxy Squid, para Ubuntu 8.0.4, espero que les sirva de mucho.

0 comentarios:

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]

<< Inicio