Saltar al contenido
TCPRiesgo alto si se expone

Puerto 2375 (Docker API (sin cifrar)): para qué sirve y cómo protegerlo

El puerto 2375 TCP es el de la API remota de Docker sin TLS. Exponerlo equivale a dar acceso root al servidor a cualquiera: basta con lanzar un contenedor que monte el sistema de ficheros del host. Los bots lo buscan constantemente para instalar mineros de criptomonedas.

Qué es el puerto 2375

Por defecto Docker solo escucha en el socket local /var/run/docker.sock. El 2375 aparece cuando alguien añade -H tcp://0.0.0.0:2375 para gestionar Docker en remoto, a menudo siguiendo un tutorial antiguo.

Con acceso a la API se puede ejecutar docker run -v /:/host --privileged y tener control total de la máquina. No hay usuario ni contraseña que lo impida.

¿Es peligroso tener abierto el puerto 2375?

Riesgo alto: No debe estar abierto a Internet.

  • Acceso root inmediato al servidor.
  • Uno de los vectores favoritos de los mineros de criptomonedas.

Cómo proteger el puerto 2375

  • No expongas nunca la API sin TLS.
  • Para gestionar Docker en remoto usa SSH: DOCKER_HOST=ssh://usuario@servidor.
  • Si necesitas la API por red, usa el 2376 con certificados de cliente.

Comandos y configuración

Comprobar si el puerto 2375 está abierto

bash
sudo ss -tlnp | grep ':2375 '
nc -zv 203.0.113.10 2375
sudo nmap -p 2375 203.0.113.10

Gestionar Docker remoto por SSH (sin abrir puertos)

bash
docker context create servidor --docker "host=ssh://ana@203.0.113.10"
docker --context servidor ps

¿Está expuesta la API en mi servidor?

bash
sudo ss -tlnp | grep -E ':2375|:2376'
curl -s http://127.0.0.1:2375/version

También puedes comprobarlo desde fuera de tu red con nuestro escáner de puertos online.

Herramientas para comprobarlo

Preguntas frecuentes

¿Cómo gestiono Docker en otro servidor sin abrir el 2375?

Con contextos de Docker sobre SSH: docker context create con host=ssh://usuario@servidor. Usa la conexión SSH que ya tienes, sin abrir nada más.

Puertos relacionados

Ver la lista de puertos