¿Cómo puedo configurar una stack LAMP segura en CentOS?

He estado usando Linux durante años, pero necesito algunas aclaraciones sobre cuáles son probablemente principios bastante básicos de cómo funciona el sistema operativo, pero definitivamente necesito una aclaración debido a problemas de security.

Estoy en una situación en la que alguien instaló partes de una stack LAMP en nuestro nuevo server CentOS. Han instalado todo usando el usuario raíz, que si no me equivoco, significa que todos esos progtwigs (daemons y similares) se ejecutarán utilizando la count de usuario raíz. Me han hecho creer, a través de mis experiencias, que hacer esto es una MALA idea.

He visto algunas cosas sobre cómo crear un usuario para cada process, como tener un usuario para apache, mysql, php. ¿Es esta la forma correcta de hacerlo? Si es así, ¿cómo puedo crear estos usuarios con los permissions que necesitan?

¿Creo una count de usuario, luego instalo el software usando esa count de usuario?

He buscado estas preguntas individualmente para tratar de get alguna información, pero siento que me faltan algunas piezas o que he entendido mal algo. Lo que es más importante para mí es que configuro esta configuration de forma segura para que no termine en una mala situación. Realmente podría usar alguna orientación en este asunto. Si alguien puede proporcionar aclaraciones sobre los problemas que he presentado, o tengo algunos resources que puedo pasar, eso sería increíble.

"Instalar como usuario root" no es algo necesariamente negativo, especialmente si se instaló utilizando gestores de packages. Por ejemplo, la installation de mysql en CentOS a través de yum, creará un usuario de mysql y el process de mysql generalmente se ejecuta como ese usuario.

Para comenzar, mira esto: https://serverfault.com/questions/212269/tips-for-securing-a-lamp-server . Si tiene preguntas específicas, publíquelas en una nueva pregunta aquí o en serverfault.com.

En la mayoría de los sistemas, incluido CentOS, debe instalar como usuario raíz para tener los derechos de escribir los progtwigs y files en las ubicaciones correctas.

Eso no significa que los progtwigs una vez instalados se ejecutan como root. La mayoría no lo hará y algunos, como Apache se ejecutarán como un usuario especial. Pero para iniciar estos progtwigs y get resources restringidos (como el puerto 80 y el 443), estos progtwigs deben ser iniciados por root y luego cambiar a un usuario dedicado que no sea root.

Necesitará un acceso raíz de todos modos para instalar y configurar cualquier software en su server.

Después de eso, puede trabajar como usuario habitual y acceder a sus files.

Vea aquí, por ejemplo, la installation y configuration de LAMP en el server CentOS.