Назад | Перейти на главную страницу

Разрешить доступ к домашнему каталогу для apache, но не другим пользователям?

Я создаю сайт, который автоматически управляет выделенным сервером. Он выполняет всевозможные вещи, например создает пользователей и настройки apache, указывающие на их домашний каталог.

В домашних каталогах размещаются двоичные файлы игры, а к домашней папке можно получить доступ из Интернета, но можно получить доступ только к несущественным файлам ресурсов (.wav .mdl .spr и т. Д.), Так настроен apache. Итак, чтобы это работало, мне нужны права на выполнение и чтение для всех файлов.

Проблема в том, что двоичные файлы, запущенные в домашней папке одного пользователя, могут получить доступ к домашней папке других пользователей, читать и записывать файлы в ней.

Как я могу сделать домашний каталог пользователя недоступным для кого-либо, кроме него, и через apache? Вот как выглядит дерево папок:

http://i.imgur.com/LVFMle2.png (нет репутации, чтобы показать изображение напрямую)

Установите ACL для домашнего каталога каждого пользователя, к которому Apache должен иметь доступ. Это позволяет избежать глупых уловок с группами, которые на самом деле могут вызвать больше проблем, чем решить.

Например:

setfacl -R -m u:httpd:rx,d:u:httpd:rx /home/username

позволит httpd пользователь может читать все в этом каталоге, включая подкаталоги и любые вновь созданные файлы.

Я бы предложил, чтобы домашний каталог каждого пользователя принадлежал пользователю и группе пользователей, и только пользователь и группа могли попасть в каталог (770), а затем сделать Apache членом группы каждого пользователя.

Кроме того, не забудьте реализовать некоторую форму защиты от атак по символическим ссылкам (см. https://documentation.cpanel.net/display/EA/Symlink+Race+Condition+Protection для некоторых опций - эта ссылка относится не только к cPanel).

Подход, который упростит задачу и не требует защиты от атак по символическим ссылкам, заключается в использовании MPM ITK, если вы не возражаете против снижения скорости (см. Также «Причуды и предупреждения» на его домашней странице). В этом случае Apache запускается от имени каждого отдельного пользователя веб-сайта.

Вы также можете проверить Многосайтовый хостинг - упускают важную уязвимость для защиты сайтов друг от друга? для обсуждения безопасности многосайтового хостинга и некоторых других подходов.

Отказ от ответственности: я не могу обещать, что любое из приведенных выше предложений на 100% безопасно, поэтому используйте его на свой страх и риск =).