Как установить apache2-mpm-itk на Debian Linux?

Author admin acount on March 12, 2011 | Print | Bookmark


ITK это патч к традиционной линуксовой модели Prefork, позволяющий выполнение скриптов с правами пользователя,  например в случае с mod_php, с традиционной (не мультиюзерной) моделью, все скрипты выполняются с правами пользователя www-data в Debian или пользователя apache  в большинстве случаев, соответственно страдает безопасность сервера,  т.к. даже если жестко ограничить функции и open_basedir, это не обеспечит 100% изоляции, права остаются правами, и с традиционной моделью весь код выполняется от apache.

Итак, инсталляция apache2-mpm-itk на Debian Linux в связке с ISPManager:


1. Проверяем от какого пользователя сейчас работает:

Пишем скриптик на php такого вида:

<?php echo exec('id'); ?>

Сохраняем его в uid.php и заливаем на сервер, затем выполняем в браузере, результат должен быть примерно такой:

uid=77(www-data) gid=77(www-data) groups=77(www-data)

2. Устанавливаем готовый бинарник mpm-itk:

    # aptitude install apache2-mpm-itk

Перезапускаем apache:

    #/etc/init.d/apache2 restart

Всё должно пройти гладко, т.к. бинарник apache с itk присутствует в стандартном репозитории начиная с Lenny.

Aptitude предложит удалить конфликтующие пакеты типа Prefork – на всё отвечайте Yes.

3. Правим секции virualhost в apache2.conf:

Новые директивы ITK, по сравнению с prefork:

AssignUserID принимает 2 параметра, uid и gid через пробел, соответственно для правильной работы механизма, требуется заменить все вхождения «SuexecUserGroup» на «AssignUserID», в каждом виртуалхосте файла /etc/apache2/apache2.conf.

4. Половина дел сделана, проверяем работу:

Снова выполняем наш скрипт uid.php и мы уже видим совсем другую картину:

    uid=700(username) gid=702(username) groups=701(mgrsecure),702(username)

Все работает отлично!

5. Добавим в конфиг ISPManager’а строку, чтоб новые аккаунты были правильные:

Собственно выполняем код в шелле:

    # echo ‘Option ApacheMPM’ >> /usr/local/ispmgr/etc/ispmgr.conf && killall ispmgr


П.С. Проверьте все права пользователей, там где были выставлены apache и /var/www/username/data/mod-tmp.

Was this article helpful?

Yes No

Category: Виртуальные сервера, Выделенные сервера

Last updated on March 12, 2011 with 1319 views