¿Por qué sshd requiere una ruta absoluta?

23

¿Por qué sshdrequiere una ruta absoluta al reiniciar, por ejemplo, en /usr/sbin/sshdlugar desshd

¿Hay alguna implicación de seguridad?

PS el mensaje de error:

# sshd
sshd re-exec requires execution with an absolute path
margarita
fuente

Respuestas:

20

Esto es específico para OpenSSH desde la versión 3.9 en adelante.

Para cada nueva conexión, sshd se volverá a ejecutar, para garantizar que todas las aleatorizaciones en tiempo de ejecución se vuelvan a generar para cada nueva conexión. Para que sshd se vuelva a ejecutar, necesita conocer la ruta completa a sí mismo.

Aquí hay una cita de las notas de la versión 3.9:

  • Haga que sshd (8) se vuelva a ejecutar al aceptar una nueva conexión. Esta medida de seguridad garantiza que todas las aleatorizaciones en tiempo de ejecución se vuelvan a aplicar para cada conexión en lugar de una vez, durante la vida útil del proceso maestro. Esto incluye mapeos mmap y malloc, direccionamiento de biblioteca compartida, orden de mapeo de biblioteca compartida, cookies ProPolice y StackGhost en sistemas que admiten tales cosas

En cualquier caso, generalmente es mejor reiniciar un servicio usando su script de inicio (por ejemplo /etc/init.d/sshd restart) o usando service sshd restart. Por lo menos, le ayudará a verificar que el servicio se iniciará correctamente después del próximo reinicio ...

( respuesta original, ahora irrelevante: mi primera suposición sería que /usr/sbinno está en su $ PATH ) .

Jenny D
fuente
Por supuesto, está en $ PATH, de lo contrario, ¿cómo puedo obtener ese mensaje de error de sshd ;-P
daisy
66
¿Te refieres al mensaje de error que no mencionaste en tu publicación?
Jenny D
2
My bad, editó la publicación
daisy
6

Esto es para evitar que alguien inyecte un sshdprograma en algún lugar de uno de los directorios en su PATH e inadvertidamente lo ejecute. Esta publicación de 2004 ya describe el problema.

Timo
fuente
Si bien esa publicación describe el problema correctamente, las conclusiones extraídas en el hilo son erróneas. No es un error, es una característica :-)
Jenny D
@ JennyD ¿Por qué crees que es un error? Nunca lo implicaba.
Timo
En la publicación a la que se vinculó, una respuesta fue "Error que se introdujo a través de la actualización al último openssh". Ninguna de las respuestas en ese hilo mencionó la razón real para requerir una ruta completa; algunas mencionaron la misma razón que usted, lo cual es muy plausible y muestra por qué es una buena idea usar la ruta completa para cualquier programa que abra posibilidades de inicio de sesión. Pero esa no es la razón real de que este programa en particular tenga ese requisito.
Jenny D