En general, ¿cuándo se debe crear una nueva cuenta de usuario para ejecutar un software de Internet en un servidor?
Por ejemplo, supongamos que estoy usando un servidor Debian compartido (por ejemplo, a través de Dreamhost) y quiero ejecutar algunos sitios web usando WordPress, algunos usando Redmine, algunos usando Ruby on Rails, tal vez algunos usando Django, y me gustaría servir Mercurial repositorios también.
En los servidores Dreamhost y muchos otros servidores configurados de manera similar, todo esto podría hacerse bajo una sola cuenta de usuario , pero puedo ver algunos inconvenientes de ese enfoque:
- Un .bashrc más largo
- Si esa cuenta se ve comprometida, también lo hacen todos los sitios que se ejecutan bajo ella.
Por otro lado, tener muchas cuentas de usuario podría ser un poco difícil de seguir, especialmente si algunas de ellas tienen requisitos idénticos en términos de software instalado. Por ejemplo, tener una cuenta para cada sitio web que ejecuta WordPress puede ser excesivo.
¿Cuál es la mejor práctica? ¿Es simplemente una cuestión de reducir el número de sitios alojados (o repositorios alojados, etc.) por cuenta de usuario proporcionalmente al nivel de paranoia?
Por favor publique sus opiniones sobre esto, exponiendo sus razones.
Además, si tiene alguna razón para pensar que el enfoque adoptado en un servidor privado o VPS debe diferir del enfoque adoptado en un servidor compartido, describa cuáles son y, nuevamente, sus razones.
fuente
mod_suexec
es que "las solicitudes no CGI siguen siendo procesos con el usuario especificado en la directiva de usuario", por lo que si PHP es un módulo, todavía se está ejecutando como el usuario "principal" de Apache. Sin embargo, es una gran solución si todo lo que está ejecutando es CGI.En general, lo que hago es tener un usuario para los servicios externos que no pueden iniciar sesión ("nadie", por ejemplo) y una cuenta que puede iniciar sesión y su o sudo. Naturalmente, asegúrese de que sus nombres de usuario sean diferentes y no sean fáciles de adivinar.
No veo que sea necesario tener un usuario por servicio a menos que esté ejecutando un entorno de alojamiento compartido donde cada cliente tenga un inicio de sesión. Si realmente te ves como un objetivo muy atractivo para hackear, también puedes aislar tanto como sea posible. Sin embargo, a menos que esté haciendo algo muy controvertido o alojando datos financieros, en realidad no es tan atractivo como objetivo.
fuente