Control de fuente heredado: CVS bajo xinetd
Contamos con un equipo que utiliza control de fuente heredado: cvs. Ejecutamos cvs pserver bajo xinetd (archivo de configuración a continuación).
Bandera de auditoría
Una auditoría de seguridad generó una alerta: "asegúrese de que el servidor cvs no se ejecute bajo la raíz".
Pregunta:
¿Puedo bloquear de forma segura el 'servidor cvs' reemplazando "usuario=root" por "usuario=cvs"? ¿Algún efecto secundario dañino o 'trampas'?
Nota: El usuario "cvs" es propietario de todos los archivos en el directorio 'cvs root' "/var/cvs/cvs"
Lo pregunto porque he buscado en toda la documentación de hace una década y todos los ejemplos tienen 'usuario=root' y ninguno sugiere cambiar el parámetro "usuario=" para aumentar la seguridad.
Actualizar: Lo intenté. Funcionó. No hay problemas.
Gracias
Ejemplo: archivo de configuración cvspserver
# Begin /etc/xinetd.d/cvspserver
service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /usr/bin/cvs
server_args = -f --allow-root=/var/cvs/cvs pserver
}
# End /etc/xinetd.d/cvspserver
Respuesta1
Deberías seguir absolutamente sus consejos. Es un consejo extremadamente bueno.
Generalmente, al hacer esto, deberá asegurarse de que el demonio tenga suficientes derechos para hacer lo que hace. En este caso específico, lo más probable es que eso solo signifique la propiedad que ya tiene. Mi sugerencia sería hacer una copia de seguridad de su repositorio y simplemente seguir adelante y realizar el cambio.
La forma en que esto funciona es que xinetd (que a menudo se ejecuta como root) eliminará privilegios y luego ejecutará /usr/bin/cvs con stdin y stdout dirigidos hacia el socket que administra xinetd. Realmente no hay nada que ver con eso. CVS es bastante simple y no debería requerir ningún permiso más allá de poder manipular los archivos bajo su raíz.