¿Qué seguridad proporciona nginx entre los bloques del servidor?

2
  

¿Qué seguridad proporciona nginx entre los bloques del servidor?

Aquí hay un ejemplo de escenario. Digamos que tengo dos bloques de servidor configurados con nginx. Cada uno sirve una aplicación web para usuarios autenticados. Me preocupa que si se compromete una aplicación web, se pueda aprovechar para obtener acceso a la otra aplicación web.

Por ejemplo, digamos que una aplicación web tiene una vulnerabilidad de inclusión remota de archivos que permite al atacante obtener un shell. Ese shell tendría los privilegios del servidor web (www-data). Con esos privilegios, el atacante podría comenzar a leer archivos de la otra aplicación web, ¿no?

¿Hay alguna separación adicional que uno pueda configurar en los bloques del servidor nginx para mayor seguridad en este escenario?

    
pregunta mikeazo 17.06.2014 - 15:17
fuente

1 respuesta

3

No hay aislamiento (desde una perspectiva de seguridad) entre bloques de servidores: los bloques de servidores solo existen como un espacio de nombres para directivas relacionadas. Nginx solo puede tener un usuario configurado, ya que se convierte en ese usuario justo después de enlazar a los sockets de red (lo que requiere que la raíz se enlace a los puertos < 1024).

Lo que puedes hacer, y lo que he hecho en el pasado, es ejecutar las aplicaciones como diferentes usuarios. No especifica el idioma que está utilizando, pero, por ejemplo, ejecuto uwsgi workers y los ejecuto en usuarios por aplicación para aislar mis aplicaciones. Los sockets deben ser de lectura / escritura de www-data (por lo general, lo hago a través del grupo, por lo que el socket de Unix para el servidor de aplicaciones termina como appname: www-data, modo 0660) y los archivos estáticos deben ser legibles por nginx (si quieres servir archivos estáticos directamente).

    
respondido por el David 17.06.2014 - 18:16
fuente

Lea otras preguntas en las etiquetas