Estoy desarrollando una aplicación web que expondrá una API pública al mundo, pero almacenará datos personales muy confidenciales y privados. Tener el contenido hackeado sería fatal.
Estaré usando las siguientes tecnologías:
- REST (sobre HTTPS)
- servidor Apache en el backend
- base de datos PostgreSQL
Se me ha ocurrido una idea (lo pensé yo mismo, por lo que puede tener vulnerabilidades que los expertos en seguridad pueden detectar aquí).
Los componentes de mi entorno seguro son los siguientes:
-
Máquina A: servidor frontal (público) en una máquina dedicada (yo). Esta máquina tiene reglas de firewall para permitir solo conexiones TCP a través del puerto 443 (HTTPS) (ii). La configuración de Apache solo acepta ciertos patrones de expresiones regulares de la API publicada (iii). Apache reenvía la solicitud al servidor B, utilizando una asignación de API interna y utilizando un puerto secreto no estándar
-
Máquina B: (yo). Esta máquina se ha configurado para aceptar solo datos de la Máquina A (ii). Aquí es donde existen la lógica de aplicación y los datos. (iii). Los resultados se devuelven a la Máquina A, para enviar al solicitante.
¿Puede alguien mejorar esta configuración (es decir, 'endurecer' o hacerlo más seguro)?