Seguridad de archivos de aplicaciones web y contraseñas de bases de datos en un entorno de alojamiento compartido de Linux

Seguridad de archivos de aplicaciones web y contraseñas de bases de datos en un entorno de alojamiento compartido de Linux

Tengo una aplicación web en una máquina de alojamiento compartido Linux. Digamos que tengo un .htpasswdarchivo, algunas configuraciones que almacenan una contraseña de base de datos y, en general, no quiero que la gente husmee en mi código fuente en busca de vulnerabilidades.

El servidor web (Apache) necesita acceso de lectura (y escritura en algunos casos) a los archivos anteriores. Sin embargo, no quiero que otras personas en el mismo host compartido tengan acceso.

Nunca he entendido del todo cómo se supone que funciona esto. La preguntaaquíes similar, pero parece apuntar más a evitar que la aplicación web aloje accidentalmente un archivo de contraseñas.

AFAIK, todo lo que tengo para trabajar son los permisos básicos de Linux. En un servidor, se espera que otorgue permisos a "otros" para Apache. Luego, eliminar los permisos del grupo en el que se encuentran todos los demás usuarios les niega el acceso. Esto parece bastante indirecto. En otro servidor hay un nobodygrupo configurado public_htmlcon solo permisos de grupo establecidos.

Una preocupación es que si el usuario de Apache tiene acceso a mis archivos, se podría escribir y ejecutar un script simple para que otro usuario obtenga acceso:

<?php
header("Content-Type: text/plain");
include $_GET['f'];
?>

TLDR: necesito que Apache tenga acceso a los archivos fuente y las contraseñas, pero no a otros usuarios en la misma máquina (excepto los administradores).

¿Qué es una configuración común?

Preguntas relacionadas:

Respuesta1

Cree un grupo, agregue apache/www-data al grupo. Entonces:

chown -R apache:nombre de grupo /var/www/mywebapp/ && \ chmod -R 640 /var/www/mywebapp

Esto otorgará al propietario permisos de lectura y escritura (6) y al grupo de lectura (4) para la carpeta y todos los subdirectorios y archivos. El usuario de Apache podrá acceder a los archivos, al igual que el propietario, pero otros no podrán hacerlo. Debe asegurarse de que no puedan consultar al usuario de Apache.

Utilice bloques de directorio en la configuración de vhost para restringir el acceso a nivel de carpeta. http://httpd.apache.org/docs/2.0/misc/security_tips.html#Ver Proteger archivos del servidor http://www.anchor.com.au/hosting/dedicated/Security_Hardening_of_an_Apache_Virtual_Host

información relacionada