Categorías destacadas
programacion php    
Artículo
1
¡votar!

 Servidores Proxy


Configuración e instalación de Apache

. Como instalar el servidor Apache-Proxy

. Instalación mediante RPM

La manera más sencilla de poner en funcionamiento Apache en nuestro sistema es instalar una versión en RPM ya sea desde el CD de nuestra distribución o desde por ejemplo nuestra zona privada, ninguna versión anterior a la 1.1 es recomendada y nosotros aconsejamos lógicamente obtener la más actualizada posible.

Para instalar una versión 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 distribución de RedHat 7-3 y es el que utilizaremos para realizar esta documentación).

Una vez instalado nuestro servidor Apache únicamente tenemos que editar el fichero de configuración de Apache llamado httpd.conf (generalmente situado en /etc/httpd/conf/httpd.conf), ya que el módulo para la función de Proxy ya estará compilado y únicamente tendremos que cargarlo.

Para activarlo simplemente descomentar las dos siguientes líneas:

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

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

. Instalación mediante código fuente

En caso que ya tengamos una versión de Apache en nuestro sistema y no aparezcan las dos líneas descritas en Instalación mediante RPM, posiblemente no tengamos compilado el módulo para poder utilizar el servidor como Proxy. En este caso deberíamos comprobar si disponemos de la librería libproxy.so en nuestro sistema, si es así, simplemente añadimos las dos líneas que faltan en httpd.conf. En caso de no disponer de la librería, debemos recompilar e instalar el código fuente.

Recomendamos guardar el archivo httpd.conf si deseamos conservar nuestra configuración actual. Una vez estemos seguros que no disponemos de la librería libproxy.so, podemos proceder a la descarga del paquete con el código 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 parámetros:

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

Esta orden permite especificar el directorio donde se instalará el servidor apache (deberíamos especificar el mismo que teníamos). Una vez realizado esto se generarán los Makefiles y un nuevo fichero llamado config.status que actúa como script para seguir configurando. Por tanto indicaremos los módulos que queremos instalar que en éste caso serán: el modulo para poder utilizar módulos y el módulo para Proxy, tal como mostramos a continuación:

./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 código fuente mediante la orden make all y posteriormente indicar que se instale en el sistema mediante make install.

. Ejemplo de configuración de sus directivas

En éste apartado mostramos un pequeño ejemplo de las directivas que deberían 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 función 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 función 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.

. Explicación de las directivas

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

. ProxyRequest (Activar Proxy)

Esta directiva permite activar o desactivar la función de Proxy. Tener en cuenta que se anularán 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 continuación 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 más de una dirección IP o puerto. Por defecto si no especificamos ninguna IP escucha para todas, pero solo para el puerto indicado.

Sus valores pueden ser [dirección-IP:]puerto tal como se muestra a continuación y solo está disponible en Apache 1.1 y superiores.

Listen 8087
Listen 80
Listen 192.168.0.87:8080

. AllowCONNECT (Permitir método CONNECT)

Permite especificar una lista de puertos a los que el Proxy mediante el método CONNECT quizá conecte.

Sus valores pueden ser port [port]... tal como se muestra a continuación 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 práctico

Para probar su funcionamiento utilizaremos el cliente telnet con el fin de realizar una conexión a un host remoto a través 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 conexión, el cliente telnet espera que le indiquemos una petición. 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 sesión telnet se realiza a través del Proxy y lógicamente mantenida por éste ya que si desactivamos Apache con la orden: service httpd stop, la conexión se pierde.

. ProxyBlock (Control acceso URL, control según destino)

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

Sus valores pueden ser *|word|host|domain [word|host|domain]... tal como se muestra a continuación 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.

Además, esta directiva es muy interesante ya que en caso de enviar las peticiones a un Proxy remoto mediante la directiva ProxyRemote, el bloqueo se continúa realizando y por tanto se podrían 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 según destino)

Permite indicar que páginas web serán gestionadas por un servidor Proxy remoto, es decir será el remoto quien realizará la petición al servidor y la cacheará.

Sus valores pueden ser URL http://hostname[:port] tal como se muestra a continuación 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 línea 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 según 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 continuación 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 podrán continuar haciendo la petición al servidor antiguo ya que la directiva redireccionará sin que el usuario se dé cuenta de nada. Además esta directiva sigue funcionando aunque deshabilitemos la función de Proxy.

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

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

A la práctica si nuestro servidor local tuviera la dirección http://server.org/ y ya no ofreciera el contenido web, al pedir http://server.org/mirror/foo/web.html se redireccionaría la petición a http://server2.org/web.html.

Un ejemplo práctico

Tenemos un servidor Apache que ya no contiene documentos, con la dirección IP: 192.168.0.87 y un nuevo servidor Apache con la dirección 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 redirección:

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 automáticamente a realizado la petición a http://192.168.0.84/icons/.

Publicado por:
asdin istn
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon