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

Apache, suexec, PHP, suPHP

Хотя мне как Linux вполне комфортно пользователь, мой Линукс Админ-фу слабоват. Таким образом, я здесь ищу руководство по серверу CentOS, который я собираюсь построить.

Мне нужно настроить веб-сервер Apache2 для нескольких наших клиентов. Я хочу, чтобы веб-контент каждого клиента находился в их домашнем каталоге (USERDIR в apache.conf, верно?) для статических HTML-сайтов. Я хочу, чтобы Apache запускался как клиент (suexec?). Некоторые из их вещей будут приложениями PHP, и у меня сложилось впечатление, что я хочу взглянуть на suphp а потом.

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

Итак, вопросы (смело отвечайте на любой или на все):

  1. У кого-нибудь есть надежные ссылки на текущие / современные руководства, которые помогли бы мне все это настроить? Нет, сайт документации apache не является руководством ;-)
  2. Поскольку у меня есть сочетание статических сайтов и приложений PHP, нужно ли мне устанавливать suexec и suphp? Если да, то вызывает ли это какие-либо проблемы, о которых мне следует знать?
  3. Стоит ли мне искать другие варианты вместо suexec и suphp?

Я планирую предоставить конечным пользователям доступ к их материалам по SSH, SFTP или SCP (если это на что-то влияет).

Заранее спасибо за вашу помощь.

[Редактировать] Я должен был упомянуть об этом раньше: одна из ключевых целей моих поисков - подражать провайдеру виртуального хостинга, связанного с разрешениями файлов и владением. Я действительно хотел бы избежать обучения пользователей необходимости изменять такие вещи только для того, чтобы увидеть их дополнения / изменения.

Использование suexec и suphp обеспечивает другой тип разделения привилегий, отличный от стандартного.

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

Модель suexec / suphp заключается в том, что веб-сервер (при запуске скриптов) работает под учетной записью пользователя, поэтому веб-сайт имеет разрешение делать все, на что у пользователя есть разрешение. В некоторой степени это устраняет разделение между пользователем и веб-сервером, но взамен обеспечивает РАЗНОЕ разделение: то есть между веб-сайтом одного пользователя и веб-сайтом другого пользователя в одном и том же поле.

По умолчанию PHP всегда работает под учетной записью пользователя Apache, поэтому сценарии PHP одного веб-сайта могут получить доступ к любым файлам, которые доступны сценариям PHP другого сайта. Следовательно, если одна учетная запись на сервере будет взломана, инфекция может распространиться на другие. SuPHP предотвращает это.

Ни suexec, ни suphp не повлияют на то, как apache обслуживает статический контент.. Все старые правила остаются в силе. Вместо этого suexec и suphp изменяют учетную запись, под которой будут работать CGI и PHP (соответственно). Suexec запускает исполняемый файл CGI под учетной записью владельца, в то время как SuPHP заставляет скрипты PHP запускаться под учетной записью владельца.

Suexec и SuPHP не обязательно лучше. Они просто разные. Они не предотвратят взлом веб-сайта (и, возможно, могут сделать его Полегче взломать), но они предотвратят распространение компрометации на одном сайте на все остальные. Для администратора сайта эта изоляция, возможно, более важна, поэтому некоторые системы общего хостинга делают suexec и suphp по умолчанию.

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

В частности:

  • Владелец и группа файла должны соответствовать владельцу веб-сайта (как параметр в конфигурации apache).
  • Файл не должен быть доступен для записи всем
  • Родительский каталог не должен быть доступен для записи всем