Предоставить доступ в корневом каталоге для апача, но не других пользователей?

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

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

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

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

http://i.imgur.com/LVFMle2.png (никакой представитель для показа изображения непосредственно)

1
задан 12 August 2015 в 23:49
2 ответа

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

Например:

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

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

.
2
ответ дан 3 December 2019 в 20:49

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

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

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

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

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

.
0
ответ дан 3 December 2019 в 20:49

Теги

Похожие вопросы