Ограничение службы 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 скриптов.

Комментарии

Нет комментариев. Вы можете быть первым!

Оставить комментарий