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 --system
usuario y pertenece al grupo app
) con acceso de shell. Los 2 desarrolladores, después de conectarse mediante ssh al servidor, solicitarán app
cualquier actualización e iniciarán/detendrán la aplicación. El usuario app
no tiene permiso para actuar su
(bloqueado al no agregar a la configuración del grupo al /etc/pam.d/su
usar pam_wheel.so
). También tengo una tercera cuenta sin su
capacidades 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
su
requiere compartir una contraseña. Prefiero sudo. Por lo tanto, los desarrolladores ejecutarían sudo -u app command
para ejecutar command
como app
o sudo -u app -i
para iniciar un shell interactivo como app
. Posiblemente sudo -u app -i /bin/bash
si ha configurado app
el 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.