При разработке страницы на локальном хосте я иногда получаю сообщение об ошибке «Отказано в доступе», которое можно устранить, запустив chmod -R 777 /var/www
. Тем не менее, люди говорят мне, что это плохая идея по соображениям безопасности.
Почему бы не /var/www
иметь chmod 777?
permissions
security
apache2
www
Луис Альварадо
источник
источник
Ответы:
777 - плохое разрешение в целом, и я покажу вам, почему.
Несмотря на то, как это может выглядеть в казино или в Лас-Вегасе, 777 не означает для вас джекпот. Скорее, джекпот для тех, кто хочет изменить ваши файлы. 777 (и его уродливый родственник 666) разрешают права на чтение и запись (а в случае с 777 - Выполнить) другим . Вы можете узнать больше о том, как работают разрешения для файлов , но вкратце есть три группы разрешений: владелец, группа и другие . Установив разрешение 6 или 7 (
rw-
илиrwx
) для других, вы даете любому пользователю возможность редактировать и управлять этими файлами и папками. Как правило, как вы можете себе представить, это плохо для безопасности.Вот мой пример:
До сих пор я создал папку и сделал файл с «плохими» разрешениями (777 и 666). Теперь я переключусь на другого пользователя и попробую манипулировать этими файлами.
Как этот «злой» пользователь, я мог помещать файлы в каталог и вставлять текст в уже существующие файлы. Принимая во внимание, что ниже, в каталоге с 755 и файлами с 644, я могу видеть внутри файлы и каталоги, но я не могу ни редактировать файлы, ни создавать новые:
Для разрешений Apache вам нужно будет придерживаться 0755 и 0644 (AKA
umask 022
) для папок и файлов соответственно. Это позволяет вам, как владельцу файлов, редактировать и манипулировать ими, предоставляя Apache минимальные уровни доступа, необходимые для работы.источник
/etc/passwd
и вы увидите , как пользовательmail
,news
иnobody
. Даже если все реальные пользователи вашей системы могут изменять содержимое/var/www
, это не значит, что вы хотите, чтобы все процессы выполнялись так, как это могут делать «искусственные» пользователи.ls -lah
,touch bad
или любые другие команды. Как они могут манипулировать папками и файлами? 2) Наследование. Вы не охватили никакого наследования между папками и файлами внутри них. Есть по крайней мере , 2-3 шага до файла:/var
,/var/www
,/var/www/project
. Какие разрешения должны/var
быть у пользователя / группы ? Какие разрешения должны/var/www
быть у пользователя / группы ? И так далее. Как они сотрудничают?По сути, наличие прав доступа 777 само по себе не приведет к хакерской атаке, но если кто-то вообще вступит в какую-либо привязку, его можно использовать для повышения разрешений и получения полного контроля над вашим компьютером. Хуже всего то, что ваши разрешения используют «7» - это означает, что права на чтение, запись и выполнение .
Допустим, хакер хочет захватить ваш компьютер. Он может подключиться к вашему компьютеру с помощью веб-браузера, подключившись к http://yourcomputer.example.com:80/, Если у вас есть какие-либо доступные страницы, которые позволяют ему загружать изображения, он может переименовать исполняемый файл, заканчивающийся на «.jpg», и загрузить его на свой сервер. Теперь он просматривает этот файл в своем веб-браузере и запускает его, потому что Linux не заботится о расширении, он только видит, что это исполняемый файл. Это может не дать ему много, но, поскольку он вообще работал, он знает, что он работал как пользователь apache. Затем он загружает измененную версию, которая будет редактировать конфигурационные файлы apache, предоставляя ему еще больший доступ - скажем так, чтобы apache выводил содержимое / etc / passwd. Затем он может использовать эту информацию, чтобы увидеть, какие пользователи существуют в системе. Затем он может подключиться с помощью ssh и попробовать общие пароли, чтобы войти в систему как эти пользователи - если это не сработает, он перейдет к использованию полной атаки методом перебора. Если он входит как пользователь с доступом sudo,
Теперь вы можете сказать, что это маловероятно или что настоящий хакер не будет работать. Это правда, но суть в том, что, установив для файлов chmod 777, вы открыли дыру в безопасности, которую хакер может использовать, как считает нужным.
Если вы вместо этого будете следовать Принципу наименьших привилегий , то этой дыры не будет, и ваша система будет намного сложнее взломать. Несмотря на то, что все сложнее сделать правильно, вы все равно должны приложить все усилия для этого.
источник