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

Настроить безопасный виртуальный хостинг (Apache, PHP, MySQL)

Итак, я настраиваю общий хостинг с Apache, PHP, MySQL, и самый большой вопрос - как это делать с PHP, поскольку существует миллион вариантов, как его безопасно настроить.

План такой:

Я посмотрел на suexec и suphp но они кажутся очень медленными;

http://blog.stuartherbert.com/php/2007/12/18/using-suexec-to-secure-a-shared-server/ http://blog.stuartherbert.com/php/2008/01/18/using-suphp-to-secure-a-shared-server/

Итак, я посмотрел еще и нашел другие решения:

Я попробовал простую настройку с mod_fastcgi + php-fpm, и, похоже, он работает, работает как правильный пользователь и так далее, но защита от перемещения каталогов все еще open_basedir (?)

Одним из решений этого может быть использование параметра chroot php-fpm, но это вызывает множество других проблем, таких как

Подсказки?

С тех пор, как этот вопрос был задан и дан ответ, CloudLinux действительно стал основным дистрибутивом Linux в пространстве общего хостинга. Он основан на RHEL / CentOS в качестве апстрима, хотя и с некоторыми изменениями. Вот некоторые подробности:

  • Он предоставляет что-то под названием CageFS для обработки chroot.
  • Для запуска PHP он предлагает то, что называется mod_lsapi, который представляет собой способ запуска PHP с хорошей производительностью, очень похожий на то, к чему вы привыкли с mod_php (то есть возможность использовать php_flag и php_value в файлах .htaccess, и он выполняет кеширование кода операции в лучшем случае). Это можно сделать с хорошей изоляцией привилегий между пользователями.
  • Он также обеспечивает модификацию на уровне ядра для защиты от атак по символическим ссылкам.

Проект fpm проделал отличную работу, позволив довольно легко развертывать решения для общего хостинга, даже исключая пользователей (однако, есть некоторые проблемы с apache, которые можно решить с помощью символических ссылок; в Интернете есть много руководств по этому поводу).

Решение, включающее php5-fpm, требует mod_fastcgi и позволяет хостеру создавать конфигурации для каждого пользователя (memory_limit, max_execution_time ... просто в качестве примера), и, судя по тому, что я смог увидеть, оно довольно стабильно;)
Что касается проблем с разрешением и использованием электронных писем, их легко решить, добавив библиотеки в chrooted-среду и необходимые исполняемые файлы (например, sendmail).

Проблема, которую я нашел и решаю, связана с неправильными переменными, переданными в скрипты php с помощью php-fpm (после chroot php-fpm должен удалить внешние каталоги, передав скрипту только те, которые находятся внутри chroot ... но это не так, и что-то еще должно позаботиться об этом, что-то вроде прокси между mod_fastcgi и php-fpm).
Мне удалось решить проблему с помощью прокси-сервера fcgi между php-fpm и apache, который автоматически исправляет переменные, поскольку php-fpm в то время, когда я пишу, не может их исправить.