Puerto 8009: El conector AJP de Tomcat (y la vulnerabilidad Ghostcat)

El puerto 8009 es el conector AJP de Tomcat, emparejado con el conector HTTP en el 8080. Esto es lo que hace y por qué casi nunca debería estar expuesto directamente a internet.

El puerto 8009 aparece junto al 8080 en cualquier máquina que corre Apache Tomcat, pero hace un trabajo diferente: es el conector AJP, no el HTTP.

Qué suele escuchar en el puerto 8009

  • Apache Tomcat (conector AJP): Tomcat expone AJP en el 8009 para comunicación de protocolo binario con un proxy inverso como Apache HTTP Server (mod_jk/mod_proxy_ajp) o nginx, como alternativa al HTTP plano.
  • Jenkins y otras herramientas Java que integran Tomcat: Algunas herramientas que empaquetan Tomcat también exponen este conector aunque nunca hayas configurado AJP intencionalmente.

¿Es seguro terminarlo?

Para desarrollo local, sí: detener el proceso de Tomcat (o solo este conector, si únicamente necesitas HTTP) es seguro y no afectará nada fuera de esa instancia de Tomcat.

¿Es sospechoso?

Este es uno de los pocos puertos de esta referencia que vale la pena revisar activamente por exposición, no solo por presencia. AJP fue el mecanismo detrás de Ghostcat (CVE-2020-1938), una vulnerabilidad de 2020 que permitía a un atacante leer archivos (incluyendo código fuente de aplicaciones web y configuración) de un servidor Tomcat con AJP alcanzable. La solución, si corres Tomcat, es asegurarte de que el puerto 8009 nunca esté expuesto al internet público y de estar en una versión parcheada de Tomcat. En tu propia máquina de desarrollo local detrás de un router, no es un riesgo activo: la preocupación es específicamente sobre servidores expuestos a internet.

Cómo revisar el puerto 8009 en macOS

lsof -i :8009

Si estás corriendo un Tomcat local para desarrollo:

kill -9 $(lsof -ti :8009)

Portie facilita confirmar exactamente qué está enlazado al 8009 en tu máquina, útil tanto para limpieza de desarrollo local como para verificar dos veces los puertos expuestos de un servidor antes de desplegarlo en cualquier lugar público.

Preguntas frecuentes

¿Para qué es el puerto 8009?

Es el conector AJP (Apache JServ Protocol) en Apache Tomcat, usado para la comunicación entre Tomcat y un servidor web frontal como Apache HTTP Server o nginx, separado del propio conector HTTP de Tomcat, que normalmente corre en el 8080.

¿Es seguro terminar un proceso en el puerto 8009?

Sí, si es una instancia local de Tomcat que estás corriendo para desarrollo. Detener Tomcat (en vez de solo terminar el puerto) es la forma más limpia de hacerlo.

¿Es el puerto 8009 un riesgo de seguridad?

Puede serlo. AJP fue el vector de CVE-2020-1938, apodado Ghostcat, que permitía a atacantes leer archivos arbitrarios de un servidor Tomcat si AJP estaba expuesto. El conector nunca debería ser alcanzable desde el internet público: está pensado solo para comunicación interna.

Prueba Portie gratis

Ve cada puerto abierto en tu Mac, qué app lo usa y cierra procesos desde la lista.

Descargar gratis