webew
Войти » Регистрация
 
Linux

suexec и apache2-mpm-itk

6 июня 2015, 22:05
Автор: tehnology-online
У меня стоит suexec. Натолкнулся на информацию об apache2-mpm-itk. И возник у меня вопрос, а надо ли мне его устанавливать, если у меня уже стоит suexec? И если да, то для чего? В чем между ними разница?
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
NO USERPIC

tehnology-online

И в довесок если не сложно, может подскажите, на что обратить внимания для безопасности. Знаю информации много, но уже устал перечитывать одно и тоже, причем везде чего-то да не хватает. Хотелось бы все и сразу в одном месте.
06.06.2015, 22:07
Ответить

paulus

Здравствуйте. Всё зависит от того, какой у Вас сценарий использования apache.

suexec влияет на то, под каким пользователем запускаются другие приложения, обрабатывающие запрос (т.е. приложения CGI/SSI).

itk влияет на то, под каким пользователем запускается сам процесс apache, который обрабатывает запрос (в том числе и PHP, если он запускается через mod_php).

Если у Вас стандартный случай приложения на PHP, то, скорее всего, Вам не нужно ни то, ни другое. Если Вам нужны отдельные права, то тогда просто выбираете то место, где нужны отдельные права, и выбираете нужный модуль.
07.06.2015, 00:06
Ответить
NO USERPIC

tehnology-online

Поясните пожалуйста, предположим я хочу запускать приложения exec. Надо ли мне ставить apache2-mpm-itk и почему? И я так понимаю suexec мне уже придется удалять ну или не использовать. Объясните, пожалуйста, в чем их концептуальная разница, простым языком на простом примере.
07.06.2015, 11:21
Ответить

paulus

Что Вы подразумеваете в «запускать приложения exec»? Apache не умеет exec. Имеется в виду exec в PHP?

Если да, то модель получается приблизительно такая:

1. Корневой apache запущен под каким-то пользователем (предположительно, www-data).
2. При поступлении запроса, apache создает процесс-обработчик (fork), который наследует права от корневого процесса (т.е. остается www-data).
3. Библиотека обработки PHP (mod_php) работает в контексте процесса 2 (соответственно, тоже www-data).
4. Изнутри PHP Вы выполняете exec, который наследует права от процесса 2 (поэтому остается www-data).


Посмотрим на suexec:

1. Предыдущая последовательность не использует CGI, поэтому suexec никак на нее повлиять не может.


Посмотрим на itk:

1. Корневой процесс itk обязан быть запущен под суперпользователем (root, это потенциально вносит брешь в безопасность системы).
2. При поступлении запроса, apache создает процесс-обработчик, который наследует права корневого процесса (root), но после проверки контекста меняет свои права на указанного пользователя (например, www-data).
3. Библиотека обработки PHP работает в контексте процесса 2 (тоже www-data).
4. Изнутри PHP Вы выполняете exec, который наследует права процесса (тоже www-data).


Надеюсь, разницу это поясняет. А чтобы решить задачку, задачку придется описать ;-)
07.06.2015, 14:31
Ответить
NO USERPIC

tehnology-online

Ну хорошо, а как это вписывается в тот факт, что
SuexecUserGroup user user
обязывает запускать те же php скрипты от имени user и создает файлы опять же от его имени
07.06.2015, 21:53
Ответить

paulus

Одно из двух — или этот пользователь совпадает с пользователем в директиве User, или Вы запускаете PHP как CGI ;-)
07.06.2015, 22:51
Ответить
NO USERPIC

tehnology-online

Т.е. установив php как CGI, я получу тоже самое что и установив php как mod_php + apache2-mpm-itk? Или есть какие-то отличия?
08.06.2015, 00:15
Ответить

paulus

В условиях идеально написанного кода itk будет работать быстрее, т.к. CGI будет загружать интерпретатор PHP на каждый запрос. В реальных условиях — может быть по разному. И ошибки безопасности могут быть разными. Но в первом приближении будет одинаково.
08.06.2015, 11:30
Ответить
NO USERPIC

tehnology-online

спасибо за ответы
08.06.2015, 16:48
Ответить
NO USERPIC

tehnology-online

Подскажите, а я правильно понимаю. apache2-mpm-itk работает через mod_php, что не дает возможности использовать собственный php.ini
25.06.2015, 11:35
Ответить

paulus

Он будет использовать тот php.ini, который использует apache, да. С другой стороны, никто не мешает его менять. Или собрать mod_php с альтернативным путем для поиска этого файла.
25.06.2015, 21:37
Ответить
NO USERPIC

tehnology-online

Всмысле ничто не мешает его менять?
25.06.2015, 21:45
Ответить

paulus

Если Вы так легко меняете технологии, то наверняка у Вас как минимум свой виртуальный сервер, на котором Вы можете отредактировать любой файл, следовательно, и php.ini тоже сможете отредактировать.
26.06.2015, 00:42
Ответить
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
© 2008—2017 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100

Реклама: