Tengo una LAMP básica instalada y me gustaría asegurar que PHP no pueda acceder a nada fuera del directorio /var/www. ¿Cómo puedo hacer eso? Por "acceso" me refiero también a leer archivos y listados de directorios.
Lo pido por motivos de seguridad. Estoy ejecutando WordPress en mi servidor y si alguien accede a la cuenta de administrador, puede editar el código de la plantilla a través del cual puede acceder a cualquier parte del sistema.
¡Gracias!
Respuesta1
Estos son los pasos clave para asegurar una configuración de LAMP:
- Asegúrese de que todos los sitios web se ejecuten con su propio usuario. Puedes lograr esto con Apache mod_itk/mod_php o PHP-FPM (generalmente con Apache o Nginx)
- Asegúrese de que root sea el propietario de los archivos y que el grupo sea el usuario del servidor web (o viceversa)
- Asegúrese de que los derechos de acceso sean 640 para archivos y 750 para directorios. Sólo las carpetas de carga de Wordpress son 660/770.
- Solo cuando actualice o instale complementos, cambie los derechos de acceso de los archivos PHP.
Asegúrese de que los archivos PHP no se puedan ejecutar en la carpeta de imágenes:
<FilesMatch "/uploads/\.(asp|php|php5|pl)$"> Deny from all </FilesMatch>
Esta técnica no funciona muy bien con Wordpress porque los complementos instalan archivos php en esa carpeta. Es posible que sea mejor proteger las carpetas de cargas/2017, etc.
- Mantener la instalación actualizada
- Mantenga actualizado el software del servidor
- Ejecute una revisión periódica del registro
- tener copias de seguridad
- Ser capaz de reconstruir rápidamente