Servidores Proxy

La manera ms sencilla de poner en funcionamiento Apache en nuestro sistema es instalar una versin en RPM ya sea desde el CD de nuestra distribucin o desde por ejemplo nuestra zona privada, ninguna versin anterior a la 1.1 es recomendada y nosotros aconsejamos lgicamente obtener la ms actualizada posible.

Para instalar una versin en RPM como ya sabemos, simplemente tenemos que ejecutar como usuario root la siguiente orden:

rpm -i apache-1.3.27-2.i386.rpm

(El RPM indicado viene con la distribucin de RedHat 7-3 y es el que utilizaremos para realizar esta documentacin).

Una vez instalado nuestro servidor Apache nicamente tenemos que editar el fichero de configuracin de Apache llamado httpd.conf (generalmente situado en /etc/httpd/conf/httpd.conf), ya que el mdulo para la funcin de Proxy ya estar compilado y nicamente tendremos que cargarlo.

Para activarlo simplemente descomentar las dos siguientes lneas:

#Load Module proxy_module /usr/liblapache/libproxy.so
#AddModule mod_proxy.c

Una vez descomentadas las dos lneas ya tenemos cargada la funcionalidad de Proxy-Cach y podremos pasar a configurar y utilizar las directivas deseadas.

.Instalacin mediante cdigo fuente

En caso que ya tengamos una versin de Apache en nuestro sistema y no aparezcan las dos lneas descritas en Instalacin mediante RPM, posiblemente no tengamos compilado el mdulo para poder utilizar el servidor como Proxy. En este caso deberamos comprobar si disponemos de la librera libproxy.so en nuestro sistema, si es as, simplemente aadimos las dos lneas que faltan en httpd.conf. En caso de no disponer de la librera, debemos recompilar e instalar el cdigo fuente.

Recomendamos guardar el archivo httpd.conf si deseamos conservar nuestra configuracin actual. Una vez estemos seguros que no disponemos de la librera libproxy.so, podemos proceder a la descarga del paquete con el cdigo fuente desde www.apache.org.

Para descomprimir el paquete utilizar la siguiente orden:

tar -xzvf apache_1.3.27.tar.gz

Una vez descomprimido el paquete debemos de ejecutar el siguiente script con los siguientes parmetros:

./configure -prefix=/usr/local/apache

Esta orden permite especificar el directorio donde se instalar el servidor apache (deberamos especificar el mismo que tenamos). Una vez realizado esto se generarn los Makefiles y un nuevo fichero llamado config.status que acta como script para seguir configurando. Por tanto indicaremos los mdulos que queremos instalar que en ste caso sern: el modulo para poder utilizar mdulos y el mdulo para Proxy, tal como mostramos a continuacin:

./config.status --active-module=src/modules/standard/mod_so.c
./config.status -enable-module=proxy

Una vez hemos realizados los pasos indicados, simplemente tenemos que compilar el cdigo fuente mediante la orden make all y posteriormente indicar que se instale en el sistema mediante make install.

.Ejemplo de configuracin de sus directivas

En ste apartado mostramos un pequeo ejemplo de las directivas que deberan de situarse descomentadas dentro del fichero httpd.conf para poder utilizar el servidor Apache como Proxy y como Proxy con cach.

<If Module mod_proxy.c>
#Directivas para realizar funcin de Proxy
ProxyRequest On
Listen 80
Listen 8087
AllowCONNECT 443 563 23
ProxyBlock www.sex.com www.microsoft.com
#ProxyRemote * http://192.168.0.84:8087
#NoProxy www.hotmail.com
#ProxyPass / http://192.168.0.84/
#ProxyPassReverse / http://192.168.0.84/
<Directory proxy:*>
  Order deny, allow
  Deny from all
  Allow from .informatica.escoladeltreball.org
</Directory>
ProxyVia Full

#Directivas para realizar la funcin de cach
CacheRoot "/var/cache/httpd"
CacheSize 50000
CacheGcInterval 1
CacheMaxExpire 24
CacheLastModifiedFactor 0.1
CacheDefaultExpire 3
CacheForceCompletion 90
#NoCache pc47.informatica.escoladeltreball.org
</IfModule>

En el siguiente apartado se describe el significado y la utilidad de las directivas en el orden presentado.

.Explicacin de las directivas

Una vez presentadas las directivas describiremos su utilidad y funcionamiento para una mayor comprensin de las posibilidades de Apache-Proxy.

.ProxyRequest (Activar Proxy)

Esta directiva permite activar o desactivar la funcin de Proxy. Tener en cuenta que se anularn todas las directivas tanto para funciones de cach como de Proxy, excepto la directiva ProxyPass.

Sus valores pueden ser On u Off tal como se muestra a continuacin y solo est disponible en Apache 1.1 y superiores.

ProxyRequest On
ProxyRequest Off

.Listen (Asignar Puerto)

Permite indicar a Apache que escuche peticiones en ms de una direccin IP o puerto. Por defecto si no especificamos ninguna IP escucha para todas, pero solo para el puerto indicado.

Sus valores pueden ser [direccin-IP:]puerto tal como se muestra a continuacin y solo est disponible en Apache 1.1 y superiores.

Listen 8087
Listen 80
Listen 192.168.0.87:8080

.AllowCONNECT (Permitir mtodo CONNECT)

Permite especificar una lista de puertos a los que el Proxy mediante el mtodo CONNECT quiz conecte.

Sus valores pueden ser port [port]... tal como se muestra a continuacin y solo est disponible en Apache 1.3.2 y superiores.

AllowCONNECT 443 563 23

Son los puertos que utiliza HTTPS, SNEWS y telnet respectivamente.

Un ejemplo prctico

Para probar su funcionamiento utilizaremos el cliente telnet con el fin de realizar una conexin a un host remoto a travs del Proxy mediante el protocolo HTTP.

  1. Hacemos un telnet al servidor Proxy en el puerto que est escuchando.
    telnet 192.168.0.87 8087
  2. Una vez realizada la conexin, el cliente telnet espera que le indiquemos una peticin. Conectamos desde el Proxy al ordenador deseado mediante el puerto 23 que utiliza telnet.
    CONNECT 192.168.0.84:23 http/1.0
  3. Presionamos la tecla Enter y la sesin telnet se realiza a travs del Proxy y lgicamente mantenida por ste ya que si desactivamos Apache con la orden: service httpd stop, la conexin se pierde.

.ProxyBlock (Control acceso URL, control segn destino)

Bloquea peticiones HTTP, HTTPS y FTP de documentos que contengan en su direccin la palabra, el host o el dominio especificado.

Sus valores pueden ser *|word|host|domain [word|host|domain]... tal como se muestra a continuacin y solo est disponible en Apache 1.2 y superiores.

ProxyBlock www.sex.com rocky.wotsamattau.edu
ProxyBlock *

Tener en cuenta que especificar la palabra "sex" ya es suficiente para bloquear direcciones como: www.sex.com www.sexista.com http://sexologia.com y que utilizar el "*" significa bloquear todas las peticiones.

Adems, esta directiva es muy interesante ya que en caso de enviar las peticiones a un Proxy remoto mediante la directiva ProxyRemote, el bloqueo se contina realizando y por tanto se podran utilizar Proxys para restringir el acceso a determinados usuarios y un Proxy remoto para realizar las peticiones que se hubieran permitido.

.ProxyRemote (Desviar a un Proxy, control segn destino)

Permite indicar que pginas web sern gestionadas por un servidor Proxy remoto, es decir ser el remoto quien realizar la peticin al servidor y la cachear.

Sus valores pueden ser URL http://hostname[:port] tal como se muestra a continuacin y solo est disponible en Apache 1.1 y superiores.

ProxyRemote http://hotmail.com/ http://192.68.0.84:8087
ProxyRemote * http://192.68.0.84:8087
ProxyRemote ftp http://192.68.0.84:8087

En la segunda lnea se especifica que todas las peticiones de direcciones web las procesar un servidor remoto y en la tercera que todas las peticiones ftp las gestionar un servidor remoto.

.NoProxy (No desviar a otro Proxy, control segn destino)

Esta directiva hace referencia a la directiva ProxyRemote y permite especificar que peticiones no las ha de enviar al Proxy remoto sino que las tiene que procesar l directamente.

Sus valores pueden ser: domain|SubRed|IpAddress|Hostname [domain|SubRed|IpAddress|Hostname]..., tal como se muestra a continuacin y solo est disponible en Apache 1.3 y superiores.

ProxyRemote * http://192.68.0.84:8087
NoProxy .company.com 192.168.112.0/21 www.hotmail.com

Los ejemplos mostrados corresponden a un dominio una subred y un hostname.

.ProxyPass (Desviar contenidos a un nuevo web server)

Permite al servidor Proxy local actuar como un espejo del servidor que en realidad ahora est sirviendo el contenido. Esta directiva es til si en un pasado nuestro servidor Apache servia unos documentos web que ahora los sirve otro servidor, ya que no ser necesario avisar a la gente del traslado y podrn continuar haciendo la peticin al servidor antiguo ya que la directiva redireccionar sin que el usuario se d cuenta de nada. Adems esta directiva sigue funcionando aunque deshabilitemos la funcin de Proxy.

Sus valores pueden ser: path url, donde "path" es el nombre del antiguo "path virtual local" y "url" es una direccin parcial del servidor remoto, tal como se muestra a continuacin y solo est disponible en Apache 1.1 y superiores.

ProxyPass /mirror/foo/ http://server2.org/

A la prctica si nuestro servidor local tuviera la direccin http://server.org/ y ya no ofreciera el contenido web, al pedir http://server.org/mirror/foo/web.html se redireccionara la peticin a http://server2.org/web.html.

Un ejemplo prctico

Tenemos un servidor Apache que ya no contiene documentos, con la direccin IP: 192.168.0.87 y un nuevo servidor Apache con la direccin IP: 192.168.0.84 que se encargar de servir los documentos a partir de ahora. Configuramos en el servidor 192.168.0.87 la directiva de redireccin:

ProxyPass / http://192.168.0.84/

Ahora con el cliente pedimos http://192.168.0.87/icons/ y recibimos los documentos todo y que ya no los tiene, debido a que automticamente a realizado la peticin a http://192.168.0.84/icons/.

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
SIGUIENTE ARTÍCULO

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.