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

Разумные разрешения для webroot с использованием Apache-MPM-ITK

Я установил apache2-mpm-itk на новый VPS для запуска нескольких сайтов на одном сервере с изоляцией, следуя приведенным здесь инструкциям: http://www.webtatic.com/packages/httpd-itk/. Я хочу заблокировать его как можно больше, но также мне нужно иметь возможность управлять файлами на каждом виртуальном хосте как каждый пользователь виртуального хоста.

Он рекомендует установить владельца корневой папки и разрешения следующим образом:

chown owner-user:vhost-group /path/to/webroot
chmod o-rwx /path/to/webroot

ls -ald /path/to/webroot
# drwxr-x--- 20 owner-user vhost-group 4096 Apr  5 19:38 /path/to/webroot

На моем сервере у меня есть root, пользователь без полномочий root, который является sudoer, и пользователь vhost для этого сайта (у которого нет привилегий sudo).

Настройка корневого веб-сайта с разрешениями 755, а затем установка владельца на владельца-пользователя (я установил его для своего пользователя sudoer без полномочий root) означает, что я не могу изменять файлы и каталоги в веб-корневом каталоге как пользователь vhost. (нет групповых разрешений на запись в корневом веб-каталоге). Единственное, что я могу придумать, это дать пользователю vhost-user привилегии sudo, но это не кажется безопасным.

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

Причина, по которой я не сменил пользователя каталога на vhost-user, заключается в том, что он предоставит процессу httpd доступ на запись, о котором вы все равно должны позаботиться, так как если в коде пользователя есть уязвимости, файлы могут быть взломаны .

Как я могу установить разрешения / пользователей и т. Д., Чтобы они были безопасными, но по-прежнему позволяли пользователю vhost управлять своим собственным домашним каталогом?

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

Сначала замечание. Вы должны были использовать

chown -R owner-user:vhost-group /path/to/webroot
chmod -R 640 /path/to/webroot
chmod -R u+X,g+X /path/to/webroot

если /path/to/webroot не оказалось пустым.

Глупый, но, к сожалению, правильный ответ на ваш вопрос прост: извините, ваш вопрос не имеет смысла. Зачем?

Вы определяете (т.е. принимаете определение этого веб-сайта) «безопасный» как «нет доступа для записи для пользователя X». И теперь вы хотите, чтобы оба были «безопасными» и имели права записи для этого пользователя. Очевидно, это невозможно.

На ваш вопрос можно будет ответить, только если в данном случае вы дадите как точное, так и удобное определение понятия «безопасность».

Мое первое предложение - разделить пользователей. Зачем vhost-user управлять файлами, а не дополнительными vhost-manage учетная запись? Имеет ли смысл иметь это требование?

Следующий момент: отсутствие доступа на запись в каталог просто не позволяет вам удалять и создавать файлы, но не позволяет изменять эти файлы. Вам просто нужен доступ на запись к этим файлам (не обязательно ко всем файлам).

Мне не кажется, что создание и удаление файлов с помощью сценария sudo представляет угрозу безопасности; особенно тогда, если это делается не как root, а как пользователь, единственной целью которого является владение этим деревом каталогов.