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
sudo ss -tlnp | grep ':2375 '
nc -zv 203.0.113.10 2375
sudo nmap -p 2375 203.0.113.10Gestionar Docker remoto por SSH (sin abrir puertos)
docker context create servidor --docker "host=ssh://ana@203.0.113.10"
docker --context servidor ps¿Está expuesta la API en mi servidor?
sudo ss -tlnp | grep -E ':2375|:2376'
curl -s http://127.0.0.1:2375/versionTambié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.