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
5544con la credencial fija. - External Probe no establece una conexión TCP nueva a ese puerto.
- External Probe sigue recibiendo
PUBLIC STATUS OKdesde8001; los pedidos de informes siguen cargándose. - Existe el pedido
practice-2con artículoGreen 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.



