balanceador web pound: redirigir de https a http

18
innova by Alex TECHNOLOGY Innova Technology Think | Create | Explorer Manual de instalación de un balanceador Pound

Upload: alejandro-marin

Post on 18-Nov-2014

1.387 views

Category:

Technology


3 download

DESCRIPTION

Tutorial para montar un balanceador Pound: https a http http://alexismarin.wordpress.com/

TRANSCRIPT

Page 1: Balanceador Web Pound: Redirigir de https a http

innovaby AlexTECHNOLOGY

Innova TechnologyThink | Create | Explorer

Manual de instalación de un balanceador Pound

Page 2: Balanceador Web Pound: Redirigir de https a http

índice① Introducción② Requisitos③ Instalación de Pound④ Generar un certificado digital autofirmado⑤ Ejemplo

Page 3: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY

Introducción

El objetivo de Pound es poder redirigir una petición de entrada entre varios servidores. Así, si tenemos una pagina web con carga, podemos tener varios servidores detrás que la tengan alojado. Los clientes cuando accedan a nuestra web, creerán que es la misma pagina web, pero realmente Pound va enviando las peticiones entre varios servidores.

Esta el objetivo principal de Pound, pero otra función no menos importante de Pound, es la capacidad de recibir conexiones https y enviarlas por http a nuestro servidor real. De esta forma la conexión entre el cliente y nuestra sede esta encriptada y desde round hasta el servidor final (en nuestro caso web) va en texto claro, pero ya vamos dentro de nuestro entorno.

Bien nosotros en este ejemplo vamos a usar la segunda opción de Pound, redirigir de https a http.

Page 4: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY

Introducción

Conexiones HTTPS

POUND SERVER

Conexiones HTTPS

Conexiones HTTPS

Page 5: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY

Requisitos02

Para poder desarrollar este laboratorio nos basaremos en los siguientes requerimientos:

• Distribución de Linux, en nuestro caso centOS 5,5 64 bits.• Ejecutable de Pound para nuestra distribución de Linux (pound-2.3.3-

1.el5.rf.x86_x64.rpm)• IP estática de entrada.• Tantos servidores web como deseemos.

Page 6: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY

Instalación de Pound03

Para hacer la instalación de Pound necesitamos permisos de administrador sobre la máquina Linux.

sudo rpm –ihv pound-2.4.3-1.el5.rf.x86_64.rpm

Si no tenemos alguna dependencia instalada, nos lo indicará, por lo que deberemos de proceder a instalarlas.

s

Page 7: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY

Instalación de Pound03

Para que Pound funcione correctamente, debemos deshabilitar SeLenux, para ello desde la consola de Centos, escribiremos el comando:

setup

s

Page 8: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY

Instalación de Pound03Nos vamos a Configuración del Firewall. Marcando como vemos las opciones “Deshabilitado” tanto para Nivel de seguridad como para SELinux.

Nos vamos a Configuración del Firewall. Marcando como vemos las opciones “Deshabilitado” tanto para Nivel de seguridad como para SELinux.

Page 9: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY

Generar un certificado digital autofirmado04En el siguiente paso vamos a crear un certificado temporal ssl (si lo tuviésemos ya, solo tenemos que copiarlo a la ruta /etc/ssl)

mkdir /etc/sslcd /etc/sslopenssl genrsa -out server.key 1024cp server.key server.key.orgopenssl rsa -in server.key.org -out server.keyopenssl req -new -key server.key -out server.csropenssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crtopenssl x509 -in server.crt -textopenssl x509 -in server.crt -out server.pemOpenssl rsa -in server.key >> server.pem

Ya tendremos nuestro certificado de pruebas, guardado en la ruta /etc/ssl en el fichero server.pem

Page 10: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY

Ejemplo05Bien ahora vamos a lo interesante, configurar el servidor de Pound.

En este último paso vamos a poner un ejemplo de cómo configurar Pound, para que acepte peticiones HTTPS y las envíe a diferentes servidores web sobre HTTP, usando el certificado anteriormente creado.

Ejemplo:

Todo el tráfico entrante a la maquina por el puerto 443 y que tenga como dominio en la petición http “www.innovatechnoloy.eu” lo debe enviar a 10.0.13.25 por el puerto 80.

Todo el tráfico entrante a la maquina por el puerto 443 y que tenga como dominio en la petición http “vdi.innovatechnoloy.eu” lo debe enviar a 10.0.13.70 por el puerto 80.

Page 11: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY05

Vamos a verlo de forma grafica:

Conexiones HTTPSPOUND SERVER

Conexiones HTTPS

www.innovatechnology.eu

vdi.innovatechnology.eu

Page 12: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY05

Todo la configuración de Pound se encuentra en el fichero /etc/pound, lo editamos con nuestro editor favorito (nano, vi, vim…)

nano /etc/pound

Page 13: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY05

Modificamos el fichero para que quede como sigue:

User “www-data”Group “www-data”ListenHTTPS Address 0.0.0.0 Port 443 Cert “/etc/ssl/server.pem” Service HeadRequire “Host:.*www.innovatechnoloy.eu.*” BackEnd Address 10.0.13.25 Port 80 End End Service HeadRequire “Host:.*vdi.innovatechnoloy.eu.*” BackEnd Address 10.0.13.70 Port 80 End EndEnd

Page 14: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY05

Con estas tres líneas definimos que escuchamos por cualquier interfaz de nuestro servidor Pound y que escuchamos por el puerto 443 y que el certificado se encuentra en la ruta /etc/ssl con el nombre de server.pem

Address 0.0.0.0Port 443Cert “/etc/ssl/server.pem”

En cada campo “Service” definimos que estamos esperando en la cabecera de la petición http y donde lo enviamos y el puerto de conexión entre Pound y el servidor

Page 15: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY05

En “HeadRequire” es donde definimos que estamos esperando para enviarlo a un servidor o a otro.

Ejemplo: Todo las peticiones a la url www.innovatechnology.eu lo vas a enviar a los servidores que defina en la sección “BackEnd“

HeadRequire “Host:.*www.innovatechnology.eu.*”

En el campo “BackEnd” dentro del servicio, establezco los servidores a donde voy a redirigir las peticiones en caso de que coincidan con el HeadRequire anterior.

Page 16: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY05

Ejemplo: Todo lo que coincida con www.innovatechnology.eu envíalo a los servidores 10.0.13.25 y 10.0.13.26 (que son los servidores con apache donde esta la pagina web alojada), podemos poner tantos como queramos, y envía la petición al servidor por el puerto 80

BackEnd Address 10.0.13.25 Address 10.0.13.26 Port 80 End End

Page 17: Balanceador Web Pound: Redirigir de https a http

TECHNOLOGYinnovaINNOVA TECHNOLOGY05

Como otro ejemplo de configuración, voy a poner la configuración para escuchar directamente peticiones a un servidor Pound y este a varios servidores web para balancear la carga entre ellos:

User “www-data”Group “www-data” ListenHTTPS Address 0.0.0.0 Port 80 Service BackEnd Address 10.0.13.25 Address 10.0.13.26 Address 10.0.13.27 Address 10.0.13.28 Port 80 End End End

Page 18: Balanceador Web Pound: Redirigir de https a http

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 2012-2014 Alejandro Marín. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

innovaby AlexTECHNOLOGY

www.innovatechnology.eu