Сервер в кармане, или просто о сложном!

главная - Статьи - WWW (HTML, PHP и др.)



Ограничение службы Apache в Windows

На Web Security Blog опубликовано письмо Юрия Зайцева (Yury Zaytsev), в котором он описывает свой опыт по изолированию Apache в ОС Windows. Под изолированием понимается максимальное ограничение возможности доступа к системе, что существенно понижает возможность выполнения злонамеренных действий. Вот выдержка из этого письма:

Сперва необходимо создать локального пользователя (например, "Apache") (вы можете даже установить пароль для него, но особого смысла в этом нет) и запретить для него локальный вход и вход из сети с помощью политик групп. Затем надо запретить пользователю "Apache" любой доступ к локальным дискам (запрещается все: листинг каталога, чтение, запись, изменение). Это делается через вкладку Свойства(Properties)->Безопасность(Security). Теперь любой процесс, созданный с правами "Apache" не сможет даже просматривать каталоги. У некоторых пользователей Windows вкладка Безопасность(Security) отсутствует. О том как это исправить можно прочитать тут.

Теперь нам надо разрешить этому пользователю чтение и листинг каталога сервера Apache (производиться через Свойства каталога(Properties)->Безопасность(Security)), а также разрешить запись для PID файла (/logs/httpd.pid) и для лог-файлов. И в завершении необходимо подправить службу (service) сервера Apache. В диалоге Службы (вызывается с помощью команды services.msc или через Панель управления->Администрирование->Службы) выбирается служба Apache и в свойствах меняется вход в систему от пользователя "Apache".

Далее перезагрузка, проверка с помощью диспетчера задач (Task Manager), что процесс сервера запущен от имени пользователя "Apache", проверка работоспособности сервера. Готово.

Изложенный выше метод значительно повышает безопасность выполнения скриптов: теперь, даже если кто-то будет использует уязвимость вашего PHP/Perl скрипта (при использовании SAPI/mod_perl), он не только не сможет просматривать каталоги выше каталога сервера, но даже не сможет изменить какой-нибудь файл внутри каталога Apache, кроме тех, которые вы явно разрешили изменять.

Мой метод полностью копирует Unix-ную технологию chroot (и chmod). Это примитивно и эффективно. В любом случае это не раз избавляло меня от использования эксплоитов уязвимостей PHP скриптов.

Источник: http://apachedev.ru/



Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?