Protege la base de datos de informes

CiberseguridadBeginner
Practicar Ahora

Introducción

Una aplicación de informes lee pedidos sintéticos de otra base PostgreSQL. External Probe también puede alcanzarla actualmente. La página de informes debe seguir disponible mientras cierras esa ruta no prevista.

El desafío comienza en un entorno independiente. Aplica las pruebas de conexión, la inspección de rutas y las reglas ordenadas de Gateway practicadas en el laboratorio a otro mapa de direcciones y puerto.

Protege la base de datos de informes

Situación actual

Abre Order Page para ver pedidos, mapa y observaciones de conexiones en vivo. Report Client es el nodo legítimo de la aplicación; External Probe representa un cliente no previsto. Gateway controla el tráfico reenviado. Son contenedores con espacios de nombres de red separados que comparten el núcleo de una instancia.

Alcance

Modifica solo la cadena LAB_FORWARD del Gateway en ejecución. No cambies rutas, direcciones, credenciales, configuración de la base, código ni servicios. La cadena superior FORWARD ya está conectada y deniega lo que no coincida. Las reglas deben durar esta sesión; la persistencia tras reiniciar queda fuera del alcance.

Origen Destino Resultado requerido
Report Client 172.29.10.40 Base 172.29.20.15:5544 Permitir lecturas PostgreSQL reales
External Probe 172.29.10.50 Base 172.29.20.15:5544 Bloquear conexiones TCP nuevas
Ambos clientes Estado público 172.29.20.15:8001 Permitir

El siguiente salto de los clientes es 172.29.10.254; la base responde mediante 172.29.20.254. Los datos fijos de conexión son usuario shopapp, contraseña training-only, base shop y tabla orders, con columnas id e item. tcp-probe ADDRESS PORT, ip route get ADDRESS, psql y curl funcionan como se enseñó. La aplicación usa la misma credencial.

Referencia: -A añade al final, -s coincide con origen, -d con destino, -p tcp con protocolo, --dport con puerto de destino y -j elige la acción. -F CHAIN vacía solo esa cadena; -nvL CHAIN lista reglas numéricas y contadores. Las respuestas necesitan seguimiento de conexiones. Una denegación amplia anterior a una excepción específica prevalece.

Tu objetivo

La base de informes debe aceptar al cliente legítimo y rechazar conexiones TCP nuevas de External Probe, manteniendo funcionales la página y el estado público. La base y su credencial deben permanecer iguales.

Criterios de aceptación

  • Report Client lee filas reales por PostgreSQL en 5544 con la credencial fija.
  • External Probe no establece una conexión TCP nueva a ese puerto.
  • External Probe sigue recibiendo PUBLIC STATUS OK desde 8001; los pedidos de informes siguen cargándose.
  • Existe el pedido practice-2 con artículo Green tea, creado en Order Page después del cambio. No se entrega informe ni captura.

Pistas

¿Qué origen corresponde a la excepción?

Usa el cliente que abre la conexión a la base, no la dirección del navegador ni de Gateway. El mapa e ip route get identifican ese origen.

¿Por qué dejó de funcionar el tráfico legítimo?

Compara la primera regla coincidente, su puerto de destino y el manejo de respuestas. El puerto difiere del laboratorio. Puedes reconstruir la cadena del ejercicio tras un error.

¿Un error de autenticación demuestra contención?

Un rechazo de contraseña significa que PostgreSQL era accesible. Usa la prueba TCP para la ruta prohibida y una consulta real para la permitida. Prueba el estado público por separado.

Resumen

Aplicaste el filtrado a otro cliente y puerto, conservando informes respaldados por la base y el estado público. Las pruebas funcionales de permitir/denegar demuestran el resultado; una puerta de enlace permisiva, una base detenida o una contraseña inválida no lo hacen.

✨ Revisar Solución y Practicar