Administración de sistemas, Hardening, Redes

Pfsense alta disponibilidad wan lan carp ovh failover block

Print Friendly, PDF & Email

Presentación del escenario

Topología actual

  • Varios bloques de ips failover de ovh
  • Tenemos un firewall que recibe todo el tráfico y lo distribuye
  • Hay varios dominios que apuntan a una ip, esta ip es una ip failover dentro de una bloque de ovh.
  • Existen varios servidores los cuales usan lxc como sistema de virtualización interno
  • Un vrack de ovh o rack virtual privado lo que nos facilita una lan privada entre los servidores físicos

Inconvenientes

  • Un único punto de fallo para la entrada y salida a la red
  • Necesidad de cambiar en el panel de ovh los bloques manualmente ante una caída, esto provocaba tener que reiniciar nuestro servidor de producción lo cual no es muy buena cosa debido a que cambiaban todas las macs del circuito interno
  • No hay failover ni balanceo o distribución de carga o recursos según uso.

Solución

Vamos a tratar de conseguir alta disponibilidad, redundancia y balanceo añadiendo un nuevo server para solventar los inconvenientes.

Para ello proponemos la siguiente topologia y daremos los siguientes pasos:

Relativo a la instalación de los pfsenses

  • Configurar wan en f1 y f2 por dhcp mediante consola jnlp de ovh, ssh o equivalente.
  • Configurar usuarios, llaves, host y configuración básica

Configuración de la sincronización de la configuración entre firewalls

Pfsync es un protocolo propio de pfsense que sincroniza las configuraciones mediante paquetes cifrados de modo que pfsense1 envía sus configuraciones por una interfaz privada a pfsense2 manteniendo actualizadas las reglas y todo aquello que nosotros le indiquemos.

  • Crear y configurar interface para pfsync usaremos la red 192.168.1.0/29
  • Crear carp para pfsync 192,168.1.1
  • Configuramos alta disponibilidad para pfsync

Carp en la lan

Nuestra Lan será la 10.0.0.0/8 , su gateway será una interfaz carp failover ip 10.0.0.1/8 lo cual proveerá la primera capa de alta disponibilidad.

  • Configuración de una interface carp (ip virtual compartida entre los dos pfsense) para la lan dentro del vrack creando así alta disponibilidad en la lan

Carp en la Wan

Disponemos de un bloque de ips públicas de ovh que queremos que respondan a cualquiera de nuestras máquinas. El bloque es el siguiente:

Failover ovh block 149.101.97.224/28 gateway to ovh 149.101.97.238

Este es resultó el plato fuerte del menú para nosotros debido a que no había manera una vez configurada de hacerle ping desde el exterior, más adelante explicaremos que ocurrió.

  • Configuración de una interface carp wan con un bloque failover dentro del vrack del ovh

Las ips presentadas son ficticias

 

Configuración

Relativo a la instalación de los pfsenses

 

Instalación pfsenses y configuración de las interfaces y gui

Instalación pfsense en dedicado ovh

Configurando pfsense web gui by console

 

Configurar usuario, llaves, host y configuración básica

En System> Cert manager en ambos firewalls importamos nuestro certificado si no queremos que sea autofirmado.

System>General setup configuramos nuestro hostname, nuestros dns, opendns en mi caso y en la parte de abajo de web configurator decidiremos qué se muestra en la pantalla principal

En System>User Manager Configuraremos nuestros grupos de usuarios, con sus llaves ssh.

Ahora en System > Advanced habilitamos nuestro certificado y configuraremos ssh con su key

 

Configuración de la sincronización de la configuración entre firewalls

 

Configurar interface para pfsync en la  192.168.1.0/29

La recomendación es crear una interfaz dedicada para la sincronización por seguridad y para reducir la carga en la red.

Elegimos la red y creamos la interfaz

Para ello en f1 y f2 vamos a crear una vlan, la vlan 10, dependiente de interfaz que luego será la lan para la red 192.168.1.0/29  ya que necesitamos tres ips utilizables.

subnetting red 192

Configuramos las ips

Ahora configuraremos la misma red, distinta ip en ambos firewalls

En F1:                                                                               En F2

 

 

 

 

 

 

Permitimos el paso en el firewall

Lo siguiente es crear la correspondiente regla de firewall que permita el tráfico deseado, en nuestro caso voy a permitir todo el tráfico temporalmente para en caso de fallo descartar bloqueo de firewall.

Si queremos hilar fino, podemos permitir sólo el tráfico de los protocolos pfsync e icmp.

Esto lo haríamos tanto en f1 como en f2

 

 

 

 

 

Comprobamos conectividad

Desde f1 hacemos ping a f2 y desde f2 a f1 para ver que se ven entre ambos

 

Creamos carp configurando una virtual ip en ambos host
f1 carp
f1 carp
F2 carp
F2 carp

 

 

 

 

Configuramos alta disponibilidad para pfsync

System>High Avail Sync

En f1, nuestro máster seleccionamos la interfaz por la que deseamos que se sincronicen y le ponemos la ip de f2, también le configuramos la ip el admin y la contraseña en la parte inferior.

En f2  sólamente configuramos la parte superior poniendo la ip de f1

 

 

Ahora sólo nos quedan las reglas de nat y comprobamos que funcione.

Nat

El Nat debe de estar en Manual Outbound Nat, en nuestro caso mostramos la interfaz de la lan como ejemplo, no he necesitado crear reglas de nat específicas para pfsync

Si queremos ver más detalles o la guía– oficial se encuentra aquí:

https://doc.pfsense.org/index.php/Configuring_pfSense_Hardware_Redundancy_(CARP)

Carp en lan

Configuramos la interfaz

Bien una vez que tenemos configurada una interfaz carp, hacer el resto resulta casi trivial

Con nuestra interfaz lan configurada como interfaz física

En f1 configuramos la ip 10.0.0.2/8 en nuestro caso, somos conscientes del desaprovechamiento de ips pero es requisito heredado de la topologia anterior.

En f2 configuraremos la ip 10.0.0.3/8

Dejamos los gateways vacío de momento

Creamos el carp

Ahora vamos a crear la interfaz carp en ambos con la ip 10.0.0.1/8 que será el gateway de esta red.

El vhid group será el 2 si hemos creado la interfaz 192.168.1.1/29 como cap antes

Es necesario ponerle la misma pass en ambos firewalls para que se vean

Añadimos las reglas

Necesitamos reglas de nat y firewall acordes para que funcione, nosotros vamos a poner las básica y luego cada cual que lo ajuste a su entorno.

Añadimos el gateway

Con esto configurado vamos a usar nuestra nueva virtual carp interfaz o dicho de forma más sencilla ip compartida y balanceada entre ambos firewalls como gateway para esta red, de modo que aunque uno de los firewalls falle el otro responda a la lan.

Primero en System/Routing/Gateways añadimos el gateway

Ahora se lo configuramos a nuestra interfaz y comprobamos que todo funciona con esto conseguimos redundancia en la lan.

Carp en Wan bloque failover de ovh

Este fue el plato fuerte del menú.

Resulta que para que funcione correctamente hay que meter el bloque failover dentro del vrack de ovh, esto pone la red en modo bridge y crea un router que debes de averiguar, puedes llamarles o probar a hacer ping al bloque hasta ver cual contesta y ese será tu router.

Hay que configurar un bridge de la interfaz lan como primer punto y asignarle la primera ip disponible en f1, luego haremos lo mismo en f2 asignándole la segunda ip disponible, configuraremos las reglas de nat y firewall y como punto importante el gateway de esta red debe ser el router de ovh aunque luego en carp le configuraremos tantas ips como queramos dentro de nuestro rango de red en carp funcionarán a modo failover entre ambos firewalls no teniendo que preocuparnos de añadirlas manualmente.

Vamos por partes:

Añadimos el bridge en f1 y f2

Y le configuramos la interfaz con una de las ips del bloque

El bridge nos ha creado la interfaz Opt1

Nuestra red es la 149.101.97.224/28

Ips desde 149.101.97.225 -239 la 239 es la de broadcast así que esa no la usamos, la 149.101.97.238 es el router de ovh de nuestra red y la puerta de enlace que debemos configurar.

En f1 configuramos la 149.101.97.236, en f2 configuramos la 149.101.97.236

Podemos crear ya nuestro gateway al tiempo que configuramos la interfaz

 

 

 

 

 

 

Firewall rules y nat

Creamos las reglas de firewall y las de nat igual que hemos hecho con la lan y el carp.

 

 

 

 

 

Creamos Carp

Ahora nuestro primer carp va a ser la 149.101.97.237/28 pero podremos configurar en carp todo el resto de ips disponibles de ese rango de red y luego apuntar nuestros dominios a estas ips.

Acordaros que residen en ambos firewalls y cada firewall puede estar en un datacenter de un pais.

Eso sí, no podremos configurar más de un rango de red

Para crear las interfaces carp haremos igual que anteriormente Firewall>VirtualIp selecionamos OPT1

 

 

 

 

 

Y esto es todo por el momento.

1 thought on “Pfsense alta disponibilidad wan lan carp ovh failover block

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *