Un proxy inverso (reverse
proxy en inglés) es un servidor proxy situado en el alojamiento de uno o
más servidores web. Todo el tráfico procedente de Internet y con destino en
alguno de esos servidores web es recibido por el servidor proxy. Esto va a
permitir una capa adicional de defensa, protegiendo los servidores OWA.
Un posible esquema de acceso a
Servicio OWA sería el siguiente:
Como se puede observar en
el esquema, los servidores Squid1 y Squid2, que son los proxys inversos, se
encuentran ubicados en la DMZ, mientras que los servidores de correo OWA se
encuentran dentro del dominio.
Instalación y configuración de Debian y Squid
Se ha realizado la
instalación sobre un Debian 6.0.6 en su versión de 64 bits (amd64) con los
paquetes básicos y los de servidor web y ssh. Para la instalación de Squid se
ha empleado la versión 2.7.
La instalación de Debian es
trivial, por lo que vamos a centrarnos en la instalación de Squid.
En primer lugar se
descargará el paquete con el código fuente desde la página oficial de Squid, http://www.squid-cache.org/Versions/ ,
en concreto la versión 2.7-stable9. Para su descompresión (formato tar.gz) se
empleará el siguiente comando:
#
tar xzvf squid-2.7.STABLE9.tar.gz
Para realizar la
instalación de Squid es necesario tener instalado previamente el paquete build-essential,
http://packages.debian.org/squeeze/build-essential,
que a su vez depende de los paquetes, g++,
gcc, dpkg-dev, libc6-dev y make.
En mi caso, al no
poder descargar los paquetes desde los repositorios mediante el comando apt (o aptitude),
se ha realizado la descarga previa desde un equipo cliente y se han transferido
los ficheros mediante WinSCP. A continuación se ha realizado la instalación de
estos paquetes en local mediante el comando dpkg –i nombre_paquete_deb
. En algunos casos, se encontrará con dependencias circulares que
solucionaremos con el comando dpkg - - force-all –i nombre_paquete_deb
. Algunos paquetes, una vez instalados, requieren su configuración, hecho que
se advierte desde línea de comando. Para realizar la configuración se empleará
el comando dpkg - - configure
nombre_paquete_deb .
Otros paquetes que
necesarios son los siguientes:
#dpkg
–i libssl-dev_0.9.8o-4squeeze14_amd64.deb
#dpkg
–i libssl9.9.8_0.9.8o-4squeeze14_amd64.deb
#dpkg
–i zlib1g-dev_1.2.3.4.dfsg-3_amd64.deb
#dpkg
–i openssl_0.9.8o-4squeeze14_amd64.deb
#dpkg
–i ssl_cert_1.0.28_all.deb
Y a continuación se
realizará el proceso de configuración y compilación mediante los comandos:
#
cd squid-2.7.STABLE9
#
configure –enable-ssl
#
make all
#
make install
Una vez instalado Squid, el
siguiente paso se modificar el fichero de configuración que se encuentra en la
ruta /usr/local/squid/etc/squid.conf
. El utilizado en este caso es:
http_port 172.x.x.x:80 accel defaultsite=correo.dominio.es
https_port 172.x.x.x:443 accel
cert=/usr/local/squid/etc/owa2.pem key=/usr/local/squid/etc/OWA2-sinpass.pem
defaultsite=correo.dominio.es
cache_peer 172.y.y.y parent 443 0 no-query
originserver ssl sslflags=DONT_VERIFY_PEER name=correo.dominio.es
acl OWA dstdomain .dominio.es
cache_peer_access correo.dominio.es allow OWA
never_direct allow OWA
acl all src 0.0.0.0/0.0.0.0
# lock down access to only query the OWA server!
http_access allow OWA
http_access deny all
miss_access allow OWA
miss_access deny all
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
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
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
icp_access allow all
Nota:
172.x.x.x --> IP del servidor Squid
172.y.y.y --> IP Cluster Exchange