Nuevo servidor web: ¿Qué cuentas de usuario debo crear y qué permisos proporcionar?

Nuevo servidor web: ¿Qué cuentas de usuario debo crear y qué permisos proporcionar?

Este es un seguimiento de mi pregunta.aquí.

Estoy configurando el primer servidor web y estoy buscando qué cuentas de usuario crear y qué permisos proporcionar para una mayor seguridad. A continuación se muestra lo que tengo.

Para 2 desarrolladores, tengo 2 cuentas (y se agregan al grupo suplementario devs) y solo a ellos se les permite conectarse mediante ssh al servidor. Para la aplicación web (basada en Django), he creado 1 usuario normal app(no lo he configurado como --systemusuario y pertenece al grupo app) con acceso de shell. Los 2 desarrolladores, después de conectarse mediante ssh al servidor, solicitarán appcualquier actualización e iniciarán/detendrán la aplicación. El usuario appno tiene permiso para actuar su(bloqueado al no agregar a la configuración del grupo al /etc/pam.d/suusar pam_wheel.so). También tengo una tercera cuenta sin sucapacidades para tareas relacionadas con copias de seguridad donde un trabajo cron realizará ssh y recuperará archivos de registro, estado, etc.

Avíseme si es necesario mejorar los aspectos de seguridad. (PD: soy un novato aquí)

Respuesta1

surequiere compartir una contraseña. Prefiero sudo. Por lo tanto, los desarrolladores ejecutarían sudo -u app commandpara ejecutar commandcomo appo sudo -u app -ipara iniciar un shell interactivo como app. Posiblemente sudo -u app -i /bin/bashsi ha configurado appel shell de ' en algo como /bin/false o /bin/true.

Si no necesitan un shell completo como aplicación, sino que solo necesitan reiniciar la aplicación, puede limitar los comandos que pueden ejecutar como aplicación. Utilice una ACL predeterminada en los directorios a los que necesitan acceder, lo que otorga acceso a los desarrolladores y a la aplicación para que no tenga problemas de permisos del sistema de archivos. El principio de privilegio mínimo es lo que debes seguir, en mi humilde opinión. Si no necesitan hacerlo, no les dé acceso para hacerlo.

Normalmente prefiero usar claves solo para ssh. Si puede hacer eso, desactive las contraseñas para los desarrolladores y configure las reglas sudo para que no requieran una contraseña. Entonces no se necesitan contraseñas para nadie y, por lo tanto, no hay contraseña que revelar/perder/restablecer.

Tarea de lectura para esta noche, porque es demasiado para esta publicación: "cómo funcionan las ACL del sistema de archivos" y "cómo configuro sudo". Quizás seguido de la gestión de claves ssh.

información relacionada