<-
Apache > HTTP Server > Documentation > Version 2.0

Поддержка suEXEC

suEXEC особенность обеспечивает Apacheским пользователям способность бежать CGI и ПЕРВАЯ СТЕПЕНЬ ИНТЕГРАЦИИ программы согласно пользовательским удостоверениям личности, отличным от пользовательского удостоверения личности сервера сети запроса. Обычно, когда программа CGI или ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ выполняет, это бежит как тот же самый пользователь, который управляет сервером сети.

используемый должным образом, эта особенность может уменьшить значительно риски безопасности, связанные с позволением пользователям развить и управлять частным CGI или программами ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ. Однако, если suEXEC ненадлежащим образом формируется, это может вызвать любое число проблем и возможно создать новые отверстия в безопасности вашего компьютера. Если Вы не знакомы с управлением корень setuid программы и безопасность выходят, они представляют, мы высоко рекомендуем, чтобы Вы не рассмотрели использование suEXEC.

top

Before we begin

перед скачком головой вперед в этот документ, Вы должны знать о предположениях, сделанных со стороны Apacheской Группы и этого документа.

сначала, предполагается, что Вы используете производную UNIX операционная система, которая является способной к setuid и setgid операции. Все примеры команды даются в этом отношении. Другие платформы, если они способны к поддержке suEXEC, могут отличаться по их конфигурации.

во вторых, предполагается, что Вы знакомы с некоторыми фундаментальными понятиями безопасности вашего компьютера и ее администрации. Это вовлекает понимание setuid/setgid операции и различные эффекты они могут иметь на вашей системе и ее уровне безопасности.

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

четвертый, и последний, это было решение Apacheской Группы к НЕТ сделать suEXEC часть из установки по умолчанию Apacheа. К этому концу, suEXEC конфигурация требует из администратора осторожного внимания к деталям. После того, как должное рассмотрение далось различным параметрам настройки для suEXEC, администратор может установить suEXEC через нормальные инсталяционные методы. Ценности для этих параметров настройки должны быть тщательно определены и определены администратором, чтобы должным образом поддержать безопасность системы в течение использования suEXEC функциональных возможностей. Это заканчивает этот детальный процесс, что Apache Группа надеется ограничить suEXEC установку только теми, кто осторожен и определил достаточно, чтобы использовать это.

все еще с нами? Да? Хороший. Давайте идти дальше!

top

suEXEC Security Model

прежде, чем мы начинаем формировать и устанавливать suEXEC, мы сначала обсудим модель безопасности, которую Вы собираетесь осуществлять. Делая так, Вы можете лучше понять то, что точно продолжается внутри suEXEC и что меры приняты, чтобы гарантировать безопасности вашей системы.

suEXEC является основанным на setuid программе "обертки", которую называет главный Apache сервер сети. Эту обертку называют, когда запрос HTTP сделан для CGI или программы ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ, которую администратор определял, чтобы бежать как userid кроме того из главного сервера. Когда такой запрос сделан, Apache предоставляет suEXEC обертке название программы и пользователя и удостоверения личности группы, согласно которым должна выполнить программа.

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

  1. пользователь выполняет эту обертку действительный пользователь этой системы?

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

  2. обертку называли с надлежащим числом аргументов?

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

  3. этому действительному пользователю разрешают управлять оберткой?

    действительно ли это - пользователь, пользователь позволил управлять этой оберткой? Только одному пользователю (Apache пользователь) разрешают выполнить эту программу.

  4. цель CGI или программа ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ имеют опасную иерархическую ссылку?

    цель CGI или дорожка программы ПЕРВОЙ СТЕПЕНИ ИНТЕГРАЦИИ содержат продвижение '/' или имеют '..' backreference? Им не позволяют; целевая программа CGI/SSI должна проживать в пределах корня документа suEXEC (см. --with-suexec-docroot= DIR ниже).

  5. действительно ли целевое имя пользователя действительно?

    целевой пользователь существует?

  6. действительно ли целевое название группы действительно?

    целевая группа существует?

  7. является целевым пользователем НЕТ суперпользователь?

    теперь, suEXEC не позволяет root выполнять программы CGI/SSI.

  8. является целью userid ВЫШЕ минимальное число удостоверения личности?

    минимальное пользовательское число удостоверения личности определено в течение конфигурации. Это позволяет Вам устанавливать самый низкий userid, которому будут позволять выполнить программы CGI/SSI. Это полезно наметить счета "системы".

  9. является целевой группой НЕТ суперпользовательская группа?

    теперь, suEXEC не позволяет root группа, чтобы выполнить программы CGI/SSI.

  10. является целью groupid ВЫШЕ минимальное число удостоверения личности?

    минимальное число удостоверения личности группы определено в течение конфигурации. Это позволяет Вам устанавливать самый низкий groupid, которому будут позволять выполнить программы CGI/SSI. Это полезно наметить группы "системы".

  11. обертка могла успешно стать целевым пользователем и группой?

    вот - то, где программа становится целевым пользователем и группой через запросы setgid и setuid. Список доступа группы также калибруется со всеми группами, из которых пользователь является членом.

  12. мы можем изменить справочник на тот, в котором цель проживает программа CGI/SSI?

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

  13. справочник - в пределах Apacheского webspace?

    если запрос - для регулярной части сервера, действительно ли требуемый является директивным в пределах корня документа suEXEC? Если запрос - для UserDir, является требуемым справочником в пределах справочника, формируемого как userdir suEXEC (см. suEXEC's configuration options )?

  14. является справочником НЕТ перезаписываемый кем - либо еще?

    мы не хотим открыть справочник другим; только пользователь владельца может быть в состоянии изменить это содержание справочников.

  15. цель программа CGI/SSI существуют?

    если это не делает существует, это не может очень хорошо быть выполнено.

  16. является целью программа CGI/SSI НЕТ перезаписываемый кем - либо еще?

    мы не хотим дать любого кроме владельца способность изменить программу CGI/SSI.

  17. является целью программа CGI/SSI НЕТ setuid или setgid?

    мы не хотим выполнить программы, которые тогда изменят наш UID/GID снова.

  18. действительно ли целевой пользователь/группа - то же самое как пользователь/группа программы?

    действительно ли пользователь - владелец файла?

  19. мы можем успешно чистить окружающую среду процесса, чтобы гарантировать безопасные операции?

    suEXEC чистит окружающую среду процесса, устанавливая безопасную ДОРОЖКУ выполнения (определенный в течение конфигурации), так же как только проходя через те переменные, названия которых перечислены в безопасном списке окружающей среды (также создал в течение конфигурации).

  20. мы можем успешно стать целью программа CGI/SSI и выполнить?

    вот - то, где концы suEXEC и цель программа CGI/SSI начинаются.

это - стандартная операция модели безопасности suEXEC обертки. Это является несколько строгим и может наложить новые ограничения и руководящие принципы для проекта CGI/SSI, но это было развито тщательно постепенное с безопасностью в памяти.

за дополнительной информацией относительно того, как эта модель безопасности может ограничить ваши возможности в отношениях к конфигурации сервера, так же как каких рисков безопасности можно избежать с надлежащей suEXEC установкой, см. "Beware the Jabberwock" секция этого документа.

top

Configuring & Installing suEXEC

вот - то, где мы начинаем забаву.

варианты конфигурации suEXEC

--enable-suexec
этот выбор позволяет особенность suEXEC, которая никогда не устанавливается или активизируется по умолчанию. По крайней мере один --with-suexec-xxxxx выбор нужно обеспечить вместе с --enable-suexec выбор позволять APACI, чтобы принять ваш запрос чтобы использовать особенность suEXEC.
--with-suexec-bin= PATH
дорожка к suexec набор из двух предметов должен быть трудно-закодирован в сервере для соображений безопасности. Используйте этот выбор отвергнуть дорожку по умолчанию. например. --with-suexec-bin=/usr/sbin/suexec
--with-suexec-caller= UID
username под которым обычно бежит Apache. Это - единственный пользователь, позволил выполнять эту программу.
--with-suexec-userdir= DIR
определить, чтобы быть подсправочником под домашними каталогами пользователей, где suEXEC доступ нужно позволить. Весь executables под этим справочником будет выполним suEXEC как пользователь, таким образом они должны быть "безопасными" программами. Если Вы используете "простую" директиву UserDir (то есть один без "*" в этом) это должно собираться та же самая ценность. suEXEC не будет работать должным образом в случаях, где директива UserDir указывает на местоположение, которое не то же самое как домашний каталог пользователя как ссылается в passwd файле. Ценность по умолчанию - "public_html".
если Вы будете иметь действительных хозяев с различным UserDir для каждого, то Вы будете должны определить их ко всем, проживают в одном родительском справочнике; тогда название тот родительский справочник здесь. если это не будет определено должным образом, то "~userdir" cgi запросы не будет работать!
--with-suexec-docroot= DIR
определить как набор DocumentRoot для Apacheа. Это будет единственной иерархией (кроме UserDirs), который может использоваться для suEXEC поведения. Справочник по умолчанию- --datadir ценность с суффиксом "/htdocs", например. если Вы формируете с " --datadir=/home/apache "справочник"/home/apache/htdocs" используется, поскольку документ поддерживает suEXEC обертку.
--with-suexec-uidmin= UID
определить это, поскольку самый низкий UID позволил быть целевым пользователем для suEXEC. Для большинства систем, 500 или 100 обычно. Ценность по умолчанию - 100.
--with-suexec-gidmin= GID
определить это, поскольку самый низкий ЦЕНУРОЗ позволил быть целевой группой для suEXEC. Для большинства систем, 100 обычно и поэтому используется как ценность по умолчанию.
--with-suexec-logfile= FILE
это определяет имя файла, к которому все suEXEC сделки и ошибки зарегистрированы (полезный для того, чтобы ревизовать и отлаживать цели). По умолчанию logfile называют "suexec_log" и располагается в вашем стандарте logfile справочник ( --logfiledir ).
--with-suexec-safepath= PATH
определить безопасную окружающую среду ДОРОЖКИ, чтобы пройти к CGI executables. Ценность по умолчанию - "/usr/local/bin:/usr/bin:/bin".

компилирование и монтаж 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 обертку.

top

Enabling & Disabling 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 файл.

top

Using 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 .

top

Debugging suEXEC

suEXEC обертка напишет информацию регистрации файлу, определенному с --with-suexec-logfile выбор как обозначено выше. Если Вы чувствуете, что Вы формируете и устанавливаете обертку должным образом, взглянуть на эту регистрацию и error_log для сервера, чтобы видеть, где Вы, возможно, потерялись.

top

Beware the Jabberwock: Warnings & Examples

ОТМЕТИТЬ! эта секция, возможно, не полна. Для последнего пересмотра этой секции документации, см. Apacheскую Группу Online Documentation версия.

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