Apache Версия 2.0 Сервера HTTP
suEXEC особенность обеспечивает Apacheским пользователям способность бежать CGI и ПЕРВАЯ СТЕПЕНЬ ИНТЕГРАЦИИ программы согласно пользовательским удостоверениям личности, отличным от пользовательского удостоверения личности сервера сети запроса. Обычно, когда программа CGI или ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ выполняет, это бежит как тот же самый пользователь, который управляет сервером сети.
используемый должным образом, эта особенность может уменьшить значительно риски безопасности, связанные с позволением пользователям развить и управлять частным CGI или программами ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ. Однако, если suEXEC ненадлежащим образом формируется, это может вызвать любое число проблем и возможно создать новые отверстия в безопасности вашего компьютера. Если Вы не знакомы с управлением корень setuid программы и безопасность выходят, они представляют, мы высоко рекомендуем, чтобы Вы не рассмотрели использование suEXEC.
перед скачком головой вперед в этот документ, Вы должны знать о предположениях, сделанных со стороны Apacheской Группы и этого документа.
сначала, предполагается, что Вы используете производную UNIX операционная система, которая является способной к setuid и setgid операции. Все примеры команды даются в этом отношении. Другие платформы, если они способны к поддержке suEXEC, могут отличаться по их конфигурации.
во вторых, предполагается, что Вы знакомы с некоторыми фундаментальными понятиями безопасности вашего компьютера и ее администрации. Это вовлекает понимание setuid/setgid операции и различные эффекты они могут иметь на вашей системе и ее уровне безопасности.
В-третьих, предполагается, что Вы используете неизмененный версия кодекса suEXEC. Весь кодекс для suEXEC тщательно тщательно исследовался и был проверен разработчиками так же как многочисленными испытателями бета - версии. Каждые меры были приняты, чтобы гарантировать простому все же единогласно безопасную основу кодекса. Изменение этого кодекса может вызвать неожиданные проблемы и новые риски безопасности. Это высоко рекомендованный Вы не изменяете кодекс suEXEC, если Вы не являетесь хорошо сведущими в подробных сведениях программирования безопасности и желаете разделять вашу работу с Apacheской Группой для рассмотрения.
четвертый, и последний, это было решение Apacheской Группы к НЕТ сделать suEXEC часть из установки по умолчанию Apacheа. К этому концу, suEXEC конфигурация требует из администратора осторожного внимания к деталям. После того, как должное рассмотрение далось различным параметрам настройки для suEXEC, администратор может установить suEXEC через нормальные инсталяционные методы. Ценности для этих параметров настройки должны быть тщательно определены и определены администратором, чтобы должным образом поддержать безопасность системы в течение использования suEXEC функциональных возможностей. Это заканчивает этот детальный процесс, что Apache Группа надеется ограничить suEXEC установку только теми, кто осторожен и определил достаточно, чтобы использовать это.
все еще с нами? Да? Хороший. Давайте идти дальше!
прежде, чем мы начинаем формировать и устанавливать suEXEC, мы сначала обсудим модель безопасности, которую Вы собираетесь осуществлять. Делая так, Вы можете лучше понять то, что точно продолжается внутри suEXEC и что меры приняты, чтобы гарантировать безопасности вашей системы.
suEXEC является основанным на setuid программе "обертки", которую называет главный Apache сервер сети. Эту обертку называют, когда запрос HTTP сделан для CGI или программы ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ, которую администратор определял, чтобы бежать как userid кроме того из главного сервера. Когда такой запрос сделан, Apache предоставляет suEXEC обертке название программы и пользователя и удостоверения личности группы, согласно которым должна выполнить программа.
обертка тогда использует следующий процесс, чтобы определить успех или отказ - если любое из этих условий терпит неудачу, программа регистрирует отказ и выходы с ошибкой, иначе это продолжится:
это должно гарантировать, что пользователь, выполняющий обертку - действительно пользователь системы.
обертка только выполнит, если этому будут давать надлежащее число аргументов. Надлежащий формат аргумента известен Apacheскому серверу сети. Если обертка не получает надлежащее число аргументов, это или зарубится, или есть что - то не так с suEXEC частью вашего Apacheского набора из двух предметов.
действительно ли это - пользователь, пользователь позволил управлять этой оберткой? Только одному пользователю (Apache пользователь) разрешают выполнить эту программу.
цель CGI или дорожка программы ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ содержат продвижение '/' или имеют '..' backreference? Им не позволяют; целевая программа CGI/SSI должна проживать в пределах корня документа suEXEC (см.
--with-suexec-docroot=
DIR
ниже).
целевой пользователь существует?
целевая группа существует?
теперь, suEXEC не позволяет
root
выполнять программы CGI/SSI.
минимальное пользовательское число удостоверения личности определено в течение конфигурации. Это позволяет Вам устанавливать самый низкий userid, которому будут позволять выполнить программы CGI/SSI. Это полезно наметить счета "системы".
теперь, suEXEC не позволяет
root
группа, чтобы выполнить программы CGI/SSI.
минимальное число удостоверения личности группы определено в течение конфигурации. Это позволяет Вам устанавливать самый низкий groupid, которому будут позволять выполнить программы CGI/SSI. Это полезно наметить группы "системы".
вот - то, где программа становится целевым пользователем и группой через запросы setgid и setuid. Список доступа группы также калибруется со всеми группами, из которых пользователь является членом.
если это не существует, это не может очень хорошо содержать файлы. Если мы не можем изменить справочник на это, это могло бы aswell не существовать.
если запрос - для регулярной части сервера, действительно ли требуемый является директивным в пределах корня документа suEXEC? Если запрос - для UserDir, является требуемым справочником в пределах справочника, формируемого как userdir suEXEC (см. suEXEC's configuration options )?
мы не хотим открыть справочник другим; только пользователь владельца может быть в состоянии изменить это содержание справочников.
если это не делает существует, это не может очень хорошо быть выполнено.
мы не хотим дать любого кроме владельца способность изменить программу CGI/SSI.
мы не хотим выполнить программы, которые тогда изменят наш UID/GID снова.
действительно ли пользователь - владелец файла?
suEXEC чистит окружающую среду процесса, устанавливая безопасную ДОРОЖКУ выполнения (определенный в течение конфигурации), так же как только проходя через те переменные, названия которых перечислены в безопасном списке окружающей среды (также создал в течение конфигурации).
вот - то, где концы suEXEC и цель программа CGI/SSI начинаются.
это - стандартная операция модели безопасности suEXEC обертки. Это является несколько строгим и может наложить новые ограничения и руководящие принципы для проекта CGI/SSI, но это было развито тщательно постепенное с безопасностью в памяти.
за дополнительной информацией относительно того, как эта модель безопасности может ограничить ваши возможности в отношениях к конфигурации сервера, так же как каких рисков безопасности можно избежать с надлежащей suEXEC установкой, см. "Beware the Jabberwock" секция этого документа.
вот - то, где мы начинаем забаву.
варианты конфигурации suEXEC
--enable-suexec
--with-suexec-xxxxx
выбор нужно обеспечить вместе с
--enable-suexec
выбор позволять APACI, чтобы принять ваш запрос чтобы использовать особенность suEXEC.
--with-suexec-bin=
PATH
suexec
набор из двух предметов должен быть трудно-закодирован в сервере для соображений безопасности. Используйте этот выбор отвергнуть дорожку по умолчанию.
например.
--with-suexec-bin=/usr/sbin/suexec
--with-suexec-caller=
UID
--with-suexec-userdir=
DIR
--with-suexec-docroot=
DIR
--datadir
ценность с суффиксом "/htdocs",
например.
если Вы формируете с "
--datadir=/home/apache
"справочник"/home/apache/htdocs" используется, поскольку документ поддерживает suEXEC обертку.
--with-suexec-uidmin=
UID
--with-suexec-gidmin=
GID
--with-suexec-logfile=
FILE
--logfiledir
).
--with-suexec-safepath=
PATH
компилирование и монтаж suEXEC обертки
если Вы позволили особенность suEXEC с
--enable-suexec
выбор
suexec
набор из двух предметов (вместе с Apache непосредственно) автоматически построен, если Вы выполняете
make
команда.
после того, как все компоненты были построены, Вы можете выполнить команду
make install
устанавливать их. Бинарное изображение
suexec
установлен в справочнике, определенном
--sbindir
выбор. Местоположение по умолчанию - "/usr/local/apache2/sbin/suexec".
пожалуйста отметьте, что Вы нуждаетесь
привилегии корня
для инсталяционного шага. Для обертки, чтобы установить пользовательское удостоверение личности, это должно быть установлено как владелец
root
и должен иметь setuserid набор бита выполнения для способов файла.
урегулирование параноидальных разрешений
хотя suEXEC обертка проверит, чтобы гарантировать, что ее вызывающий - правильный пользователь как определено с
--with-suexec-caller
configure
выбор, есть всегда возможность, что система или библиотека называют использования suEXEC прежде, чем этот чек может быть годным для использования на вашей системе. Чтобы противостоять этому, и потому что это - лучшая практика вообще, Вы должны использовать разрешения файловой системы гарантировать, что только пробеги Apacheа группы как могут выполнить suEXEC.
если например, ваш сервер сети формируется, чтобы бежать как:
User www
Group webgroup
и
suexec
установлен в "/usr/local/apache2/sbin/suexec", Вы должны бежать:
chgrp webgroup /usr/local/apache2/bin/suexec
chmod 4750 /usr/local/apache2/bin/suexec
это будет гарантировать, что только пробеги Apacheа группы как могут даже выполнить suEXEC обертку.
после запуска Apacheа, это ищет файл
suexec
в справочнике, определенном
--sbindir
выбор (неплатеж - "/usr/local/apache/sbin/suexec"). Если Apache найдет должным образом формируемую suEXEC обертку, то это напечатает следующее сообщение к ошибочной регистрации:
[notice] suEXEC mechanism enabled (wrapper:
/path/to/suexec
)
если Вы не видите это сообщение при запуске сервера, сервер наиболее вероятно не находит программу обертки, где это ожидает это, или выполнимое не установлено корень setuid .
если Вы хотите позволить suEXEC механизм впервые, и Apache сервер уже бежит, Вы должны убить и повторно начать Apacheа. Перестарт этого с простым ПОНУКАЕТ, или сигнал USR1 не будет достаточно.
если Вы хотите повредить suEXEC, Вы должны убить и повторно начать Apacheа после того, как Вы удалили
suexec
файл.
запросы о программах CGI назовут suEXEC обертку, только если они - для действительного хозяина, содержащего a
SuexecUserGroup
директива или если они обработаны
mod_userdir
.
Действительные Хозяева:
один способ использовать suEXEC обертку заканчивает
SuexecUserGroup
директива в
VirtualHost
определения. Устанавливая эту директиву к ценностям, отличным от главного удостоверения личности пользователя сервера, все запросы о ресурсах CGI будут выполнены как
пользователь
и
группа
определенный для этого
<VirtualHost>
. если эта директива не определена для a
<VirtualHost>
тогда главный сервер userid принят.
пользовательские справочники:
запросы, которые обработаны
mod_userdir
назовет suEXEC обертку, чтобы выполнить программы CGI под userid требуемого пользовательского справочника. Единственное требование, необходимое для этой особенности, чтобы работать - для выполнения CGI, которое будет позволено для пользователя и что подлинник должен встретить исследование
security checks
выше. См. также
--with-suexec-userdir
compile time option
.
suEXEC обертка напишет информацию регистрации файлу, определенному с
--with-suexec-logfile
выбор как обозначено выше. Если Вы чувствуете, что Вы формируете и устанавливаете обертку должным образом, взглянуть на эту регистрацию и error_log для сервера, чтобы видеть, где Вы, возможно, потерялись.
ОТМЕТИТЬ! эта секция, возможно, не полна. Для последнего пересмотра этой секции документации, см. Apacheскую Группу Online Documentation версия.
есть несколько пунктов интереса относительно обертки, которая может вызвать ограничения на установку сервера. Пожалуйста рассмотрите их перед передачей любых "ошибок" относительно suEXEC.
для безопасности и причин эффективности, просит весь suEXEC, должен остаться или в пределах высокопоставленного документа поддерживают действительные запросы хозяина, или один высокопоставленный личный документ поддерживает запросы userdir. Например, если бы Вы имеете четыре формируемые VirtualHosts, Вы должны были бы структурировать все корни документа ваших VHOST прочь одной главной Apacheской иерархии документа, чтобы использовать в своих интересах suEXEC для VirtualHosts. (Предстоящий пример.)
это может быть опасной вещью, чтобы измениться. Удостоверьтесь каждая дорожка, которую Вы включаете в это, определяют - a доверяемый справочник. Вы не хотите открыть людей до наличия кого - то со всех концов мира, управляющего троянской лошадью на них.
снова, это может вызвать Большая Неприятность если Вы пробуете это, не зная, что Вы делаете. Избегите этого если вообще возможно.