SafeChildren Banner

Havoc Oracle Solaris Experts

jueves, 17 de septiembre de 2009

Instalar squid como proxy transparente en Solaris 10 - Parte 2

Introducción
En la primera parte vimos Cómo instalar squid 2.7 sobre Solaris 10, sin embargo en esta ocasión veremos como hacer la instalación de squid como proxy transparente(1), para ello, debemos compilar squid con una opción más: --enable-ipf-transparent

El proceso de compilación he instalación es igual al que detallaba en la primera parte, con la excepción de que en este caso vamos a crear un binario de 64bits utilizando la opción --with-build-environment=POSIX_V6_LP64_OFF64

Definición de "Proxy Transparente"
Aunque muchos (mal)utilizamos el nombre, en realidad lo que queremos decir es "Proxy Interceptado" ya que transparente hace referencia que el servidor proxy no almacene ningún tipo de contenido. Sin embargo, se utiliza transparente con la idea de que el usuario no requiera ningún tipo de cambio en su configuración.

Después de aclarar que es un "Proxy Interceptado" podemos comenzar con la configuración e instalación de squid-cache sobre Solaris 10

Compilar squid sobre Solaris 10 64 bits
En mi configuración voy a utilizar la arquitectura de 64bits ya que me ofrece mejor rendimiento con caches muy grandes, sin embargo, si tu arquitectura no lo soporta, puede eliminar ese parámetro de configuración, puedes comprobarlo siguiendo las instrucciones de Cómo comprobar si Solaris es de 64bits
$ ./configure
--with-build-environment=POSIX_V6_LP64_OFF64
--with-large-files
--with-pthreads
--with-aio
--enable-large-cache-files
--enable-ipf-transparent
--enable-snmp
--enable-http-violations
--enable-default-err-language=Spanish
--enable-cache-digests
--enable-delay-pools
--with-maxfd=16384
--enable-storeio=ufs,diskd
--prefix=/opt/www/squid-2.7
Instalación
Realizaremos los mismos pasos de instalación que en la Parte 1
$ make
# make install
Configuración $SQUID_HOME/etc/squid.conf
La configuración es similar a la que hemos creado en la Parte 1, sin embargo, debemos sustituir el valor de http_port IP:PUERTO por http_port IP:PUERTO transparent
#####################################
## PARAMETROS DE RED
#####################################
http_port 127.0.0.1:1703 transparent

Configuración de IPF
Vamos a configurar nuestro sistema para que direccione todas las conexiones con hacia el puerto 80 (http) al puerto de squid en nuestro caso 1703, para ello deberemos editar el archivo /etc/ipf/ipnat.conf. En nuestra configuración eri0 es nuestro interface external y ce0 nuestro lan -podemos utilizar 0/32 para nuestro interface <ce0> ya que de esta forma, si obtenemos la dirección mediante dhcp, el módulo nos sustituirá 0/32 por la IP asignada-

# vi /etc/ipf/ipnat.conf
map eri0 192.168.1.0/24 -> 0/32 proxy port ftp ftp/tcp
map eri0 192.168.1.0/24 -> 0/32 portmap tcp/udp auto
map eri0 192.168.1.0/24 -> 0/32

rdr ce0 0.0.0.0/0 port 80 -> 127.0.0.1 port 1703

:wq

# ipnat -f /etc/ipf/ipnat.conf
# touch /etc/gateways
Si tienes una versión de Solaris anterior a 11/06, debemos activar el módulo pfil creando -o descomentando- la línea del archivo /etc/ipf/pfil.ap y activando el servicio <svc:/network/pfil:default> y rebotamos la máquina
# cat /etc/ipf/pfil.ap
e1000g  -1      0       pfil
# svcs pfil
STATE          STIME    FMRI
online         21:36:11 svc:/network/pfil:default


Conclusión
En esta ocasión hemos visto cómo instalar squid-cache como proxy interceptado (transparente) y es momento de analizar las ventajas e inconvenientes de las formas de instalación que hemos visto: Instalación Normal o Instalación Interceptada

Esto que parece algo trivial no lo es y por ello creo que es una cuestión para resolverlo en un post dedicado: Ventajas e Incovenientes de Proxy Transparente (Interceptado)

2 comentarios:

  1. solo una consulta puede Solaris trabajar con Directori Activo como Windows 20003??

    ResponderEliminar
  2. Hola cejodrake,

    -como has comentado en "Modo Transparente"-

    Si lo quieres para autenticar el acceso al proxy mediante Active Directory la respuesta es que NO es posible, me explico. Para el Navegador "no existe" un proxy entre él y la página que está solicitando, por lo tanto, no enviará la cabecera de PROXY-AUTENTICATION en la petición, así "squid" responderá primero con Autentication Required" y el Navegador no sabrá por qué.

    Esto se repetirá una y otra vez, puesto que para el Navegador es una conexión directa, y para SQUID necesita autorización y no la encuentra.

    Si quieres autenticar usuarios, la mejor forma es poner squid de forma "normal" y utilizar un archivo PAC para su configuración.

    Si tienes AD puedes hacer que en el servidor DHCP se envíe la configuración del archivo PAC y de esta forma los clientes no tienen que hacer nada -menos para Firefox que hay que configurarlo a mano-

    Pero volviendo a tu pregunta, para poder configurar autenticación contra AD es necesario:
    - Samba
    - ntlm_auth

    Intentaré crear un post con un Ejemplo de Autenticación contra LDAP -al final es lo mismo- con un PAC de configuración.

    Espero que te haya ayudado.

    Urko

    ResponderEliminar