Wiket:ProxyInversIETI
Projectes Ciberseguretat 2022-2023 - IETI Cloud
Reverse Proxy Web Interface
Dins el IETI Cloud tenim un frontend de proxy invers implementat amb HAProxy i Apache2. Volem una interfície web per gestionar-ho amb més facilitat i poder afegir nous dominis sense necessitat de tocar arxius de configuració directament.
El projecte pot contemplar parts molt diferenciades:
1. Fer una recerca i prova de diverses interfícies web per HAProxy (tipus Roxy-Wi) per veure si hi ha alguna que ens faciliti molt la feina, adaptant-se a les nostres necessitats, i que sigui segura.
2. Implementar una senzilla aplicació web de management de proxy invers (en qualsevol llenguatge de programació com PHP o Python) que carregui la configuració de HAProxy, ens la mostri, i ens permeti afegir dominis i subdominis a la nostra infraestructura.
3. Afegir funcionalitat de WAF (Web Application Firewall) com mod_security. Seria ideal implementar WAF Enteprise en el HAProxy. Cal analitzar casos d’ús (calen certificats HTTPS?)
4. Investigar la gestió de proxy invers amb softwares més avançats amb interfície web, i veure si ens serveix per als nostres propòsits: pfSense Traefik v2 Apache (noté mode TCP pel què no pot redirigir ) Nginx
Per a fer les proves requerim també un entorn de treball en Vagrant (o, si es vol investigar, en Terraform) que posi en marxa N VMs de servidor (per a N dominis diferents, amb un mínim de 3) + 1 VM de proxy invers (sigui HAProxy o Traefik). Aquest ens anirà bé per provar tant la part (1,3) dels softwares que trobarem, com la part (2) de desenvolupament de l’aplicació pròpia per a HAProxy.
Para realizar todos estos pasos anteriores, primero deberemos preparar el entorno.
Para ello se utilizará un fichero Vagrantfile en el cual a partir de una serie de parametros determinados nos permitira virtualizar varias maquinas a la vez.
El fichero contendrá los parametros necesarios para generar 5 MV's de manera que habrán 3 servidores con apache instalado, 1 proxy inverso con Traefik, y 1 equipo cliente para realizar las comprobaciones.
A continuación se muestra un diagrama sobre el funcionamiento del sistema desde la petición del cliente, que a traves de uno de los dominios disponibles accede al proxy inverso configurado con TraefikV2, el cual segun la carga de procesamiento que tengan los servidores lo redirigirá al servidor con menor carga de datos.
A partir de las maquinas obtenidas a traves del Vagrantfile, hay unos aspectos a tener en cuenta de modificar para que haya un funcionamiento correcto.
1. Editar el fichero /etc/hosts en el Proxy y añadir la IP del servidor seguido de su dominio. (Ej: 192.168.1.10 srv1.ieti.local)
2. Editar i/o añadir el fichero de configuración de Traefik (traefik.toml/traefik.yaml). Se adjunta un ejemplo:
3. Editar i/o añadir el fichero de configuración del servicio de Traefik (traefik.service). Se adjunta ejemplo: