Introducción
Willow Makers aprobó trasladar las inscripciones a otro puerto. Su catálogo y servicio de estado deben seguir disponibles, y el servicio de depuración debe seguir ausente. Revisarás los cambios de red resultantes y entregarás una revisión precisa de la entrega, incluyendo cualquier impedimento para aceptarla.
El entorno recogió una referencia real y después realizó un mantenimiento local. Es preparación de formación, no una afirmación sobre el historial de producción de anoche. Todos los registros son sintéticos; los servicios HTTP reales comparten un contenedor. Usa Terminal en todo momento. Solo están en el ámbito 127.0.0.4 y los puertos TCP 8410,8420,8430,8440,8450. Conserva la referencia, el plan, el código de servicios, los datos y los procesos actuales originales. Crearás escaneos, descargas y una revisión; no repararás este escenario de observación.
Basta con introducir comandos básicos y reconocer rutas. Se explican Nmap, Ndiff, HTTP y la sintaxis shell necesarios. Finding the Live Workshop Service es una preparación útil; no hace falta programar.
Leer el plan y un servicio operativo
Primero establece qué se aprobó y observa una respuesta normal antes de interpretar cambios. Empieza en Terminal. cd cambia el directorio de trabajo de esta shell; los nombres relativos siguientes parten de él. Repite el comando si abres otra terminal.
cd /home/labex/project/nmap-change
cat muestra un archivo de texto. Lee el plan aprobado:
cat plan.csv
CSV significa valores separados por comas: la primera línea nombra columnas y cada línea posterior es un registro. old_port y new_port describen la relación del servicio, no el orden de escaneo. Las filas aprueban mover las inscripciones de 8410 a 8420, mantener catálogo en 8430 y estado en 8440, y mantener depuración ausente en 8450. Un nuevo puerto de inscripciones abierto es un cambio esperado; cualquier otra apertura no queda aprobada automáticamente.
El before.xml preparado es XML Nmap auténtico de antes de esta actualización de formación. before-business.csv contiene la respuesta completa de inscripciones obtenida entonces. Lee la muestra normal del negocio:
cat before-business.csv
Espera tres registros de registration en MAKERS-DAY: R01/Clay session, R02/Print session y R03/Wood session. Exigirás el mismo negocio completo después del traslado.
HTTP es el protocolo petición/respuesta de estos servicios. curl obtiene una URL. Las opciones combinadas -fsS fallan en un error HTTP, ocultan la progresión y siguen mostrando errores; -o guarda la respuesta en el archivo siguiente. La dirección elige el destino, el puerto tras los dos puntos elige el punto de escucha y /manifest.csv el recurso. Descarga el servicio de estado que no cambió:
curl -fsS -o status.csv http://127.0.0.4:8440/manifest.csv
cat status.csv
Espera status/MAKERS-DAY/S01/Ready bajo la cabecera. Esta respuesta correcta es tu control, no prueba de que sobrevivieran todos los servicios previstos. Si escribes mal un archivo, lee el error, usa pwd para ver el directorio actual y repite el cd inicial antes de reintentar el comando corregido. No edites los archivos ni los servidores preparados.
Recoger un escaneo actual comparable
Escanearás el mismo destino y conjunto completo de puertos que la referencia. Sigue en Terminal, en /home/labex/project/nmap-change. Los puertos TCP identifican puntos de escucha. open significa que se aceptó una conexión; closed que el escaneo recibió un rechazo. Una observación pertenece a este origen, destino, protocolo y momento.
Nmap descubre y examina servicios de red. Su conjunto predeterminado de puertos no es este plan aprobado. -sT elige escaneo TCP connect sin privilegios de paquetes sin procesar; -Pn omite la decisión preliminar de descubrimiento para examinar cada puerto seleccionado. No demuestra por sí solo que el destino esté activo. -n omite la resolución inversa de nombres, -p selecciona los puertos permitidos y -oX escribe XML estructurado además de la salida normal. Omitir un puerto haría incompleta la comparación, no demostraría que desapareció su servicio.
El motor de scripts Nmap, NSE, realiza peticiones de aplicación focalizadas. Primero lee la ayuda del script con --script-help:
nmap --script-help http-title
http-title lee un título HTML. Todos los candidatos de este escenario local están declarados como puntos HTTP. El + inicial ejecuta expresamente este único script aunque la base de puertos no reconozca un candidato; es adecuado en este ámbito HTTP conocido, no justifica forzar scripts arbitrarios sobre otros servicios. --script-args pasa su argumento con nombre y http-title.url=/about elige la página descriptiva.
nmap -sT -Pn -n --script=+http-title --script-args=http-title.url=/about -p 8410,8420,8430,8440,8450 -oX after.xml 127.0.0.4
Espera a Nmap done. Deben estar abiertos 8420, 8440 y 8450, y cerrados 8410 y 8430. Lee los títulos reales: inscripciones se trasladó, estado sigue y depuración es accesible. Un nombre convencional de SERVICE no identifica por sí solo el negocio. No se exige una versión exacta del producto.
Si interrumpiste el escaneo o usaste otro ámbito, repite el comando completo corregido para reemplazar after.xml. Renombrar texto plano como XML no crea pruebas estructuradas.
Separar las diferencias de los errores de ejecución
Usarás Ndiff para leer cambios sin tratar cada diferencia como un fallo. Sigue en Terminal. Ndiff compara dos archivos XML de Nmap; no conoce tu plan aprobado.
Una orden shell devuelve un estado de salida numérico. $? corresponde al comando inmediatamente anterior, y echo lo imprime. Mantén juntas las dos líneas de cada comparación para que otra orden no sustituya ese estado. Primero compara la referencia consigo misma:
ndiff before.xml before.xml
echo $?
Espera 0: no hay diferencias significativas. Ndiff ignora el mero cambio de tiempo del escaneo. Compara ahora antes y después. > reemplaza el archivo indicado por la salida estándar del comando; usa solo el destino editable changes.txt:
ndiff before.xml after.xml > changes.txt
echo $?
Espera 1, que indica diferencias encontradas. Es un estado no cero intencional, no una comparación fallida. Una entrada ausente o ilegible produce estado 2, un error de ejecución; corrige su ruta y repite, sin interpretar un informe ausente como ausencia de cambios.
cat changes.txt
Una línea - describe la observación anterior y una + la posterior. Lee estos pares:
-8410/tcp open
+8410/tcp closed
-8420/tcp closed
+8420/tcp open
-8430/tcp open
+8430/tcp closed
-8450/tcp closed
+8450/tcp open
La salida real también contiene cabeceras, nombres de servicio y títulos. Estado en 8440 no ha cambiado y suele omitirse en la vista predeterminada de diferencias. Aun así, debes revisar su requisito de conservación. El par viejo/nuevo de inscripciones puede estar aprobado mientras que la pérdida del catálogo y la exposición de depuración impiden la entrega.
Entregar la revisión del negocio y los cambios
Confirma el negocio realmente trasladado y entrega una revisión completa. Sigue en Terminal. Un título o puerto abierto no demuestra que sobrevivieron los registros originales. Descarga la respuesta completa del nuevo punto:
curl -fsS -o current-business.csv http://127.0.0.4:8420/manifest.csv
cat current-business.csv
cmp compara dos archivos byte a byte. No imprime nada y devuelve cero si coinciden:
cmp before-business.csv current-business.csv
Debes ver los tres registros originales de inscripciones MAKERS-DAY y una comparación correcta. Si escribiste mal la URL, corrígela y repite la descarga. No edites registros para aprobar la comparación. Un negocio realmente distinto impediría la entrega incluso con títulos iguales.
El CSV de revisión tiene cuatro columnas: service, el estado actual en el puerto antiguo, el estado actual en el nuevo y la decisión. Si un elemento mantiene un puerto fijo, incluido un requisito keep o absent, su puerto antiguo y nuevo son el mismo y los estados actuales se repiten. Usa - solo si no existía puerto antiguo; nunca significa puerto cerrado. Las decisiones distinguen approved-move, approved-addition, kept, unexpected-loss y unexpected-open. Una migración con relación viejo/nuevo incompleta sería migration-incomplete; una adición aprobada ausente sería missing-addition, y un punto prohibido que sigue cerrado sería kept-absent.
Un here-document entre comillas pasa las líneas literales siguientes a cat. > reemplaza únicamente tu archivo de revisión; el CSV final debe quedar solo en su línea. Escribe los cuatro elementos del plan:
cat > change-review.csv <<'CSV'
service,old_port_now,new_port_now,decision
registration,closed,open,approved-move
catalog,closed,closed,unexpected-loss
status,open,open,kept
debug,open,open,unexpected-open
CSV
cat change-review.csv
La revisión indica posponer la entrega: el traslado aprobado funciona, pero falta el catálogo necesario y depuración está expuesta inesperadamente. Has terminado la revisión aunque el responsable deba reparar después el escenario. Conserva esas pruebas; no detengas depuración ni restaures el catálogo en esta tarea.
Finalmente, usa otra vez el servicio de estado original:
curl -fsS -o status.csv http://127.0.0.4:8440/manifest.csv
Debe seguir proporcionando el mismo registro Ready. Mantén sin cambios before.xml, before-business.csv, plan.csv y todos los servicios actuales originales.
Resumen
Recogiste pruebas Nmap comparables, interpretaste estados de salida Ndiff, confirmaste todo el negocio migrado y revisaste cada relación de aprobación. Diferencias aprobadas, aperturas inesperadas y pérdidas de servicios necesarios son hallazgos distintos. Una revisión precisa puede exigir posponer la entrega mientras conserva el escenario original.



