Pound - Servidor Proxy Reverso

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Pound
Autor
Robert Segall, Apsis GmbH
[1]
Información general
Última versión estable 2.6 (info)
28 de diciembre de 2011; hace 2 años (2011-12-28)
Última versión en pruebas 2.7a (info)
9 de abril de 2012; hace 2 años (2012-04-09)
Género Servidor Web
Programado en C, HTTP, HTTPS
Sistema operativo Multiplataforma
Licencia GNU General Public License
Estado actual Estable
Idiomas Inglés
En español No No
[editar datos en Wikidata ]

Pound - Servidor Proxy Reverso es un proxy reverso de configuración simple y versátil. Es Software libre, pudiéndose descargar libremente desde internet, y ser utilizado y modificado de acuerdo a las necesidades del usuario.

Historia[editar]

De acuerdo a la definición encontrada en el sitio de “Apsis IT Security” (http://www.apsis.ch/pound/index.html), o bien a la definición de la página de manual (LINUX: man pound), Pound es un reverse-proxy capaz de realizar balance de carga. Pound acepta peticiones de clientes HTTP/HTTPS y las distribuye hacia uno o varios servidores web. En el caso de las peticiones HTTPS, las mismas son descifrados por Pound, y pasadas a los servidores web como http plano.

Pound es capaz de detectar cuando un servidor web no responde, evitando enviar peticiones a éstos hasta que restablezcan su función correcta.

En caso de declararse más de un servidor web en la configuración, Pound escoge aleatoriamente, basado en las prioridades definidas. Pound realiza también la tarea de mantener las sesiones establecidas entre los clientes y los servidores web.

Instalación[editar]

Al instalar el Pound (en Debian y derivados: apt-get install pound), los archivos de configuración se ubicarán en la carpeta /etc/pound/

Los archivos relevantes para determinar el funcionamiento del reverse-proxy son:

/etc/pound/pound.conf /etc/pound/cert.pem

En caso de utilizar el pound para gestionar peticiones HTTPS, el último archivo mencionado guarda el certificado de clave pública para HTTPS. La ubicación de este archivo, junto con el resto de la configuración del reverse-proxy, se sitúa dentro del primer archivo (/etc/pound/pound.conf)


Para definir correctamente el comportamiento de Pound, el archivo de configuración deberá considerar al menos los siguientes 3 elementos:

  • HTTPListeners
  • Services
  • BackEnds

Listeners[editar]

Los Listeners definen la forma en que Pound recibe las peticiones de los clientes. Los dos tipos posibles de Listeners son HTTP y HTTPS.

Servicios[editar]

Los servicios definen el modo en que se responderá a las peticiones. Los servicios pueden ser definidos dentro de un listener (actuando únicamente para las peticiones que cumplan las condiciones definidas en ese listener), o globalmente, actuando para todas las peticiones. Los servicios imponen también condiciones, indicando a qué tipo de petición se refieren. En particular, puede definirse un servicio para que filtre o redireccione las peticiones que involucren una determinada URL, o en cuyo encabezado se identifique un patrón determinado. En el ejemplo al final de este texto, se define un servicio para identificar la petición de archivos de imagen del tipo png, a fin de descargar todas estas imágenes de un mismo back-end (servido web).

Back-Ends[editar]

Los Back-Ends identifican a los servidores web reales que contienen la información pedida por el cliente. Existen 3 tipos de BackEnd: Regular: recibe las peticiones y devuelve el contenido buscado respuestas. Redirect: en este caso el Pound responde con una orden de redireccionamiento. Emergency: Responde únicamente en caso de que todos los demás back-ends estén fuera de servicio.

En cada servicio pueden definirse varios Back-Ends. En ese caso Pound los elegirá aleatoriamente basándose en las prioridades asignadas a cada uno.

Configuración[editar]

Ejemplo de aplicación:

Configuración del archivo /etc/pound/pound.conf

User       “www-data”
Group   “www-data”

LogLevel        1

Alive   5

ListenHTTP
        Address 192.168.135.129
        Port    80
        
        Service
                HeadRequire     “.png”

                BackEnd
                        Address 127.0.0.1       #Servidor que almacena las imágenes
                        Port    8080
                End
        End
        
        Service
                BackEnd
                        Address 127.0.0.1
                        Port    8080
                        Priority        1
                End

                BackEnd
                        Address 192.168.135.1
                        Port    8080
                        Priority        2
                End     
        End
End

ListenHTTP
        Address 127.0.0.1
        Port    80
        
        Service
                BackEnd
                        Address 127.0.0.1
                        Port    8080
                End
        End
End

La configuración presentada corresponde a una topología de red de 2 máquinas. En esta topología, ambas máquinas corren un servidor web apache, respondiendo solicitudes http a través del puerto 8080. Una de ellas responde únicamente a su dirección de loopback, y corre a su vez el pound (reverse-proxy), respondiendo este último a solicitudes http externas a través del puerto 80.

Ventajas[editar]

Esta configuración tiene ventajas de seguridad, ya que si bloqueamos las solicitudes entrantes a través del puerto 8080, entonces no habrá forma de llegar a los servidores apache, excepto a través del reverse-proxy que redirecciona las solicitudes entrantes a los puertos y direcciones IP de los back-ends ubicados en el cluster de computadores.

Enlaces externos[editar]