Al desarrollar una página en un host local, a veces aparece el error "Permiso denegado" que puedo resolver ejecutando chmod -R 777 /var/www
. Sin embargo, la gente me dice que esta es una mala idea por razones de seguridad.
¿Por qué no debería /var/www
tener un chmod de 777?
permissions
security
apache2
www
Luis Alvarado
fuente
fuente
Respuestas:
777 es un mal permiso en general y le mostraré por qué.
A pesar de cómo se ve en un casino o en Las Vegas, 777 no significa un premio gordo para ti. Más bien, premio mayor para cualquiera que desee modificar sus archivos. 777 (y su primo feo 666) permiten permisos de lectura y escritura (y en el caso de 777, Ejecutar) a otros . Puede obtener más información sobre cómo funcionan los permisos de archivos , pero en resumen, hay tres grupos de permisos: propietario, grupo y otros . Al establecer el permiso en 6 o 7 (
rw-
orwx
) para otro, le da a cualquier usuario la posibilidad de editar y manipular esos archivos y carpetas. Por lo general, como puede imaginar, esto es malo para la seguridad.Aquí está mi ejemplo:
Hasta ahora he creado una carpeta e hice un archivo con permisos "malos" (777 y 666). Ahora cambiaré a otro usuario e intentaré manipular esos archivos.
Como este usuario "malicioso" pude colocar archivos en el directorio e inyectar texto en archivos ya existentes. Mientras que a continuación, en un directorio con 755 y archivos con 644, puedo ver dentro de los archivos y directorios, pero no puedo editar los archivos ni crear nuevos:
Para los permisos de Apache, querrá apegarse a 0755 y 0644 (AKA
umask 022
) para carpetas y archivos, respectivamente. Esto le permite, como propietario de los archivos, editarlos y manipularlos mientras le da a Apache los niveles mínimos de acceso necesarios para operar.fuente
/etc/passwd
y verá como usuariosmail
,news
ynobody
. Incluso si está bien que todos los usuarios humanos reales de su sistema puedan modificar el contenido de/var/www
, eso no significa que desee que todos los procesos se ejecuten, ya que estos usuarios "artificiales" pueden hacerlo.ls -lah
,touch bad
o cualquier otro comando. ¿Cómo pueden manipular carpetas y archivos? 2) Herencia. No cubriste ninguna herencia entre carpetas y archivos dentro de ellas. Hay por lo menos 2-3 paso antes de un archivo:/var
,/var/www
,/var/www/project
. ¿Qué permisos de usuario / grupo deberían/var
tener? ¿Qué permisos de usuario / grupo deberían/var/www
tener? Y así. ¿Cómo cooperan?Esencialmente, tener permisos de 777 no te va a hackear por sí solo, pero si alguien tiene un punto de apoyo en cualquier lugar, puede usarse para escalar permisos y obtener un control completo sobre tu computadora. La peor parte es que sus permisos están usando "7", lo que significa leer, escribir y ejecutar permisos.
Digamos que un hacker quiere hacerse cargo de su computadora. Puede conectarse a su computadora usando un navegador web, conectándose a http://yourcomputer.example.com:80/. Si tiene alguna página disponible que le permita cargar imágenes, puede cambiar el nombre de un archivo ejecutable para terminar con ".jpg" y subirlo a su servidor. Ahora busca ese archivo en su navegador web y lo ejecuta, porque a Linux no le importa la extensión, solo ve que es un archivo ejecutable. Puede que eso no lo consiga mucho, pero debido a que se ejecutó en absoluto, sabe que se ejecutó como el usuario de apache. Luego carga una versión modificada que editará los archivos de configuración de apache, otorgándole aún más acceso, digamos que apache mostrará el contenido de / etc / passwd. Luego puede usar esa información para ver qué usuarios existen en el sistema. Luego puede conectarse usando ssh y probar contraseñas comunes para iniciar sesión como esos usuarios; si eso no funciona, podrá usar un ataque de fuerza bruta completo. Si ingresa como usuario con acceso a sudo,
Ahora, puede decir que no es probable, o que no es cómo funcionaría un verdadero hacker. Eso es cierto, pero el punto es que al configurar los archivos para que sean chmod 777, ha abierto un agujero de seguridad que un hacker puede usar como lo considere conveniente.
Si en su lugar sigues el Principio de menor privilegio , entonces ese agujero no ocurre, y tu sistema es mucho más difícil de hackear. Aunque es más difícil hacer las cosas correctamente, aún debe hacer todo lo posible para hacerlo.
fuente