Me gustaría permitir que los usuarios que no son de confianza ejecuten aplicaciones de Node arbitrarias. Si utilizo iptables para bloquear todo excepto los servidores de confianza, hago que la carpeta de inicio de cada usuario solo sea visible para ellos, y use runuser para iniciar su servidor, ¿existe algún riesgo de que accedan a los datos de los demás?
Básicamente, solo crearé un nuevo usuario para la instancia, copiaré la aplicación en el directorio de inicio, lo chown / chmod it, y luego lo haré:
runuser -l their-user-name -c /usr/local/bin/node /users/their-user-name/server.js
Me doy cuenta de que pueden inundar la memoria / cpu / io. Y, obviamente, pueden abrir sus propios datos, pero aparte de eso ... ¿hay algún riesgo de seguridad que me falte?
Mi plan es usar iptables para permitir que cada usuario específico abra un servidor en un puerto específico, que solo puede recibir conexiones entrantes desde mi servidor nginx. Y luego permitir conexiones salientes a un servidor de base de datos de confianza.