Apache. Документация на русском


Разделы:   1    2    3    4    5    6    7    8    9      10      11    12    13    14    15    16  

Раздел 10. Модули Апача

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167      168      170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

 <         > 
  RU            EN  

Пункт 168. Модуль Apache mod_привилегии

Этот модуль позволяет запускать разные виртуальные хосты с разными идентификаторами пользователя и группы Unix и с разными привилегиями Solaris. В частности, он предлагает решение проблемы разделения привилегий между разными виртуальными хостами, впервые обещанной заброшенным perchild MPM. Он также предлагает другие улучшения безопасности.

В отличие от perchild, mod_privileges сам по себе не является MPM. Он работает в модели обработки для установки привилегий и пользователей/групп для каждого запроса в запущенном процессе. Поэтому он не совместим с многопоточным MPM и отказывается работать под ним.

mod_privileges вызывает проблемы с безопасностью, аналогичные проблемам с suexec. Но в отличие от suexec, он применяется не только к CGI-программам, но и ко всему циклу обработки запроса, включая внутрипроцессные приложения и подпроцессы. Он идеально подходит для запуска PHP-приложений под mod_php , что также несовместимо с многопоточными MPM. Он также хорошо подходит для других внутрипроцессных скриптовых приложений, таких как mod_perl , mod_python и mod_ruby , а также для приложений, реализованных на C в виде модулей Apache, где разделение привилегий является проблемой.

Вопросы безопасности

mod_privileges вводит новые проблемы безопасности в ситуациях, когда в процессе веб-сервера может выполняться ненадежный код . Это относится к ненадежным модулям и сценариям, работающим под такими модулями, как mod_php или mod_perl. Скрипты, работающие извне (например, как CGI или на сервере приложений за mod_proxy или mod_jk), НЕ затрагиваются.

Основные проблемы безопасности с mod_privacy:

  • Запуск от имени системного пользователя вызывает те же проблемы с безопасностью, что и mod_suexec, и его почти эквиваленты, такие как cgiwrap и suphp.
  • Вредоносное пользовательское расширение (модуль или сценарий), осведомленное о привилегиях, может повысить свои привилегии до любого объекта, доступного процессу httpd на любом виртуальном хосте. Это создает новые риски, если (и только если) mod_privacy скомпилирован с параметром BIG_SECURITY_HOLE .
  • Вредоносное пользовательское расширение (модуль или сценарий), осведомленное о привилегиях, может повысить привилегии, чтобы установить свой идентификатор пользователя для другого системного пользователя (и/или группы).

Директива PrivilegesMode позволяет выбрать режим FAST или SECURE . Вы можете смешивать режимы, используя режим FAST для доверенных пользователей и полностью проверенные пути кода, в то же время навязывая режим SECURE, когда ненадежный пользователь может ввести код.

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

Быстрый режим
В режиме FAST запросы выполняются внутри процесса с выбранным uid/gid и привилегиями, поэтому накладные расходы незначительны. Это подходит для безобидных ситуаций, но не защищает от повышения привилегий злоумышленником с помощью внутрипроцессного модуля или сценария.
БЕЗОПАСНЫЙ режим
Запрос в режиме SECURE разветвляет подпроцесс, который затем теряет привилегии. Это очень похоже на запуск CGI с помощью suexec, но для всего цикла запроса и с преимуществом детального контроля привилегий.

Вы можете выбрать разные PrivilegesMode s для каждого виртуального хоста и даже в контексте каталога внутри виртуального хоста. Режим FAST подходит, когда пользователь (пользователи) является доверенным и/или не имеет права загружать внутрипроцессный код. Режим SECURE подходит для случаев, когда в процессе может выполняться ненадежный код. Однако даже в режиме SECURE нет защиты от злоумышленника, который может внедрить код с привилегиями, работающий до начала цикла обработки запроса.



Директива DTracePrivileges

Описание:Определяет, включены ли привилегии, необходимые для dtrace.
Синтаксис: DTracePrivileges On|Off
По умолчанию: DTracePrivileges Off
Контекст:конфигурация сервера
Положение дел:Экспериментальный
Модуль:мод_привилегии
Совместимость:Доступно в Solaris 10 и OpenSolaris с непотоковыми MPM ( prefork или пользовательскими MPM).

Эта общесерверная директива определяет, будет ли Apache работать с привилегиями, необходимыми для запуска dtrace. Обратите внимание, что DTracePrivileges On сам по себе не активирует DTrace, но DTracePrivileges Off не позволит ему работать.



Директива PrivilegesMode

Описание:Найдите компромисс между скоростью и эффективностью обработки и защитой от вредоносного кода, поддерживающего привилегии.
Синтаксис: PrivilegesMode FAST|SECURE|SELECTIVE
По умолчанию: PrivilegesMode FAST
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:Экспериментальный
Модуль:мод_привилегии
Совместимость:Доступно в Solaris 10 и OpenSolaris с непотоковыми MPM ( prefork или пользовательскими MPM).

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

Эта директива немного отличается для <Directory> контекста (включая эквиваленты, такие как Location/Files/If) и верхнего уровня или <VirtualHost> .

На верхнем уровне он устанавливает значение по умолчанию, которое будет унаследовано виртуальными хостами. В виртуальном хосте режим FAST или SECURE действует на весь HTTP-запрос, и любые настройки в контексте <Directory> будут игнорироваться . Третий псевдорежим SELECTIVE откладывает выбор между FAST и SECURE директивами в контексте <Directory> .

В <Directory> контексте это применимо только в том случае, если для VirtualHost был установлен ВЫБОРОЧНЫЙ режим. В этом контексте можно установить только FAST или SECURE (SELECTIVE не имеет смысла).

Предупреждение

Если для виртуального хоста выбран режим SELECTIVE, активация привилегий должна быть отложена до тех пор, пока на этапе сопоставления обработки запроса не будет определен <Directory> контекст, применимый к запросу. Это может дать злоумышленнику возможность ввести код через RewriteMap выполнение на верхнем уровне или <VirtualHost> в контексте до того, как привилегии будут удалены и установлен идентификатор пользователя/gid.

Директива VHostCGIMode

Описание:Определяет, может ли виртуальный хост запускать подпроцессы, и привилегии, доступные для подпроцессов.
Синтаксис: VHostCGIMode On|Off|Secure
По умолчанию: VHostCGIMode On
Контекст:виртуальный хост
Положение дел:Экспериментальный
Модуль:мод_привилегии
Совместимость:Доступно в Solaris 10 и OpenSolaris с непотоковыми MPM ( prefork или пользовательскими MPM).

Определяет, разрешено ли виртуальному хосту запускать fork и exec, привилегии, необходимые для запуска подпроцессов. Если для этого параметра установлено значение « Выкл. », виртуальному хосту будет отказано в привилегиях, и он не сможет запускать ни традиционные CGI-программы, ни сценарии под традиционными mod_cgi , а также подобные внешние программы, например, созданные mod_ext_filter или RewriteMap prog . Обратите внимание, что это не мешает программам CGI работать с альтернативными моделями процессов и безопасности, такими как mod_fcgid, что является рекомендуемым решением в Solaris.

Если установлено значение On или Secure , виртуальному хосту разрешено запускать внешние программы и сценарии, как указано выше. Настройка VHostCGIMode Secure приводит к отказу в привилегиях для подпроцессов, как описано для VHostSecure .



Директива VHostCGIprivs

Описание:Назначьте произвольные привилегии подпроцессам, созданным виртуальным хостом.
Синтаксис: VHostPrivs [+-]?privilege-name [[+-]?privilege-name] ...
По умолчанию: None
Контекст:виртуальный хост
Положение дел:Экспериментальный
Модуль:мод_привилегии
Совместимость:Доступно в Solaris 10 и OpenSolaris с непотоковыми MPM ( prefork или пользовательскими MPM) и при mod_privileges компиляции с параметром времени компиляции BIG_SECURITY_HOLE .

VHostCGIPrivs может использоваться для назначения произвольных привилегий подпроцессам, созданным виртуальным хостом, как описано в разделе VHostCGIMode . Каждое имя-привилегии является именем привилегии Solaris, например, file_setid или sys_nfs .

Имя привилегии может дополнительно иметь префикс + или -, что соответственно разрешает или запрещает привилегию. Если используется ни +, ни -, все привилегии, назначенные виртуальному хосту, будут запрещены. Вы можете использовать это, чтобы переопределить любой из наборов по умолчанию и создать свой собственный набор привилегий.

Безопасность

Эта директива может открыть огромные дыры в безопасности подпроцессов apache, вплоть до запуска их с полномочиями корневого уровня. Не используйте его, если вы полностью не понимаете, что делаете!



Директива VHostGroup

Описание:Задает идентификатор группы, под которым работает виртуальный хост.
Синтаксис: VHostGroup unix-groupid
По умолчанию: Inherits the group id specified in Group
Контекст:виртуальный хост
Положение дел:Экспериментальный
Модуль:мод_привилегии
Совместимость:Доступно в Solaris 10 и OpenSolaris с непотоковыми MPM ( prefork или пользовательскими MPM).

Директива VHostGroup устанавливает группу Unix, в рамках которой сервер будет обрабатывать запросы к виртуальному хосту. Группа устанавливается перед обработкой запроса и затем сбрасывается с помощью привилегий Solaris. Поскольку параметр применяется к процессу , он несовместим с многопоточными MPM.

Юникс-групп является одним из:

Имя группы
Относится к данной группе по имени.
# затем номер группы.
Относится к группе по ее номеру.

Безопасность

Эту директиву нельзя использовать для запуска apache с правами root! Тем не менее, это открывает потенциальные проблемы безопасности, подобные тем, которые обсуждаются в документации suexec.

Смотрите также

  • Group
  • SuexecUserGroup


Директива VHostPrivs

Описание:Назначьте произвольные привилегии виртуальному хосту.
Синтаксис: VHostPrivs [+-]?privilege-name [[+-]?privilege-name] ...
По умолчанию: None
Контекст:виртуальный хост
Положение дел:Экспериментальный
Модуль:мод_привилегии
Совместимость:Доступно в Solaris 10 и OpenSolaris с непотоковыми MPM ( prefork или пользовательскими MPM) и при mod_privileges компиляции с параметром времени компиляции BIG_SECURITY_HOLE .

VHostPrivs может использоваться для назначения произвольных привилегий виртуальному хосту. Каждое имя-привилегии является именем привилегии Solaris, например, file_setid или sys_nfs .

Имя привилегии может дополнительно иметь префикс + или -, что соответственно разрешает или запрещает привилегию. Если используется ни +, ни -, все привилегии, назначенные виртуальному хосту, будут запрещены. Вы можете использовать это, чтобы переопределить любой из наборов по умолчанию и создать свой собственный набор привилегий.

Безопасность

Эта директива может открыть огромные дыры в безопасности apache, вплоть до выполнения запросов с полномочиями корневого уровня. Не используйте его, если вы полностью не понимаете, что делаете!



Директива VHostSecure

Описание:Определяет, работает ли сервер с повышенной безопасностью для виртуального хоста.
Синтаксис: VHostSecure On|Off
По умолчанию: VHostSecure On
Контекст:виртуальный хост
Положение дел:Экспериментальный
Модуль:мод_привилегии
Совместимость:Доступно в Solaris 10 и OpenSolaris с непотоковыми MPM ( prefork или пользовательскими MPM).

Определяет, обрабатывает ли виртуальный хост запросы с усиленной безопасностью за счет удаления привилегий, которые редко требуются на веб-сервере, но которые доступны по умолчанию обычному пользователю Unix и поэтому могут требоваться модулями и приложениями. Рекомендуется оставить значение по умолчанию (Вкл.), если только оно не препятствует запуску приложения. Поскольку параметр применяется к процессу , он несовместим с многопоточными MPM.

Примечание

Если VHostSecure приложение не работает, это может быть предупреждением о том, что приложение следует проверить на предмет безопасности.



Директива VHostUser

Описание:Задает идентификатор пользователя, под которым работает виртуальный хост.
Синтаксис: VHostUser unix-userid
По умолчанию: Inherits the userid specified in User
Контекст:виртуальный хост
Положение дел:Экспериментальный
Модуль:мод_привилегии
Совместимость:Доступно в Solaris 10 и OpenSolaris с непотоковыми MPM ( prefork или пользовательскими MPM).

Директива VHostUser устанавливает идентификатор пользователя Unix, под которым сервер будет обрабатывать запросы к виртуальному хосту. Идентификатор пользователя задается перед обработкой запроса и затем сбрасывается с помощью привилегий Solaris. Поскольку параметр применяется к процессу , он несовместим с многопоточными MPM.

Unix-userid является одним из:

Имя пользователя
Относится к данному пользователю по имени.
# затем номер пользователя.
Обращается к пользователю по его номеру.

Безопасность

Эту директиву нельзя использовать для запуска apache с правами root! Тем не менее, это открывает потенциальные проблемы безопасности, подобные тем, которые обсуждаются в документации suexec.

Смотрите также

  • User
  • SuexecUserGroup


 <         > 

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167      168      170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

Рейтинг@Mail.ru