Я собираюсь настроить VPS, на котором будут размещены несколько веб-сайтов моих компаний, доступ к которым будет иметь только я. Эти веб-сайты являются нашими собственными сайтами, поэтому на сервере будет работать мой собственный код.
Итак, мне интересно, стоит ли мне разделять сайты с их собственным пользователем / группой, чтобы изолировать каждый сайт? Очевидно, я не буду загружать оболочку на один из сайтов для чтения файлов с другого сайта - я могу просто использовать SSH:>
Но я думаю о том, может ли кто-то взломать один из сайтов из-за уязвимости, обнаруженной в CMS / моем коде / и т. Д. Если я отключу его в песочнице, то взломают этот сайт, а не все.
Стоит ли мне возиться с этим?
Запускать сайты в песочнице - всегда хорошая идея. Но важный вопрос, который вам нужно задать: готовы ли вы и ваши клиенты снизить производительность, вызванную внедрением suexec / suPHP?
Я не могу найти более свежую статью, но этот пост 2007 года Тест suexec показывает, что он примерно в 30 раз медленнее, чем обычный mod_php.
Если ваши клиенты работают в стеках смешанных технологий (например, требуются Perl и PHP), вы можете рассмотреть читатель MPM вместо. Peruser MPM не является частью основной кодовой базы Apache, но он указан в официальная вики Apache что, казалось бы, наводит на мысль, что фонд Apache считает, что эта разработка MPM не исчезнет в одночасье.
Теперь, если ваши клиенты работают только с обычным стеком LAMP (акцент на P), вы можете изучить PHP-FPM вместо. Это реализация PHP-CGI, которая обеспечивает встроенную песочницу, chroot и многие другие настройки, не предлагаемые встроенным PHP-CGI + suPHP. Плюс, с PHP 5.3.3 PHP-FPM является частью основного стека PHP, поэтому вам не нужно беспокоиться о проблемах совместимости.
Простой ответ: да, стоит.
Разделение разных (логических) пользователей в системе - всегда хорошая идея. Имея отдельных пользователей на сайте, вы также можете более легко установить квоту файловой системы или ограничения процессов.
В зависимости от требований к производительности и возможностей ваших приложений вы можете запускать свои скрипты через FastCGI, а не через простой CGI (который использует SuPHP).