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  

Пункт 129. Модуль Apache mod_dav

Этот модуль предоставляет функции WebDAV класса 1 и класса 2 («Распределенное создание и управление версиями через Интернет») для Apache. Это расширение протокола HTTP позволяет создавать, перемещать, копировать и удалять ресурсы и коллекции на удаленном веб-сервере.

Включение WebDAV

Чтобы включить mod_dav , добавьте в контейнер в файле следующее apache2.conf :

 Дав Он 

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

Кроме того, расположение базы данных блокировки DAV должно быть указано в глобальном разделе вашего apache2.conf файла с помощью DavLockDB директивы:

 DavLockDB /usr/local/apache2/var/DavLock 

Каталог, содержащий файл базы данных блокировки, должен быть доступен для записи User и Group под которым работает Apache.

Вы можете добавить <Limit> пункт в <Location> директиву, чтобы ограничить доступ к местоположениям с поддержкой DAV. Если вы хотите установить максимальное количество байтов, которое клиент DAV может отправить за один запрос, вы должны использовать директиву LimitXMLRequestBody . Директива normal LimitRequestBody не влияет на запросы DAV.

Полный пример

 DavLockDB "/usr/local/apache2/var/DavLock"
<Каталог "/usr/local/apache2/htdocs/foo">
 Требовать все предоставленные
 Дав Он
 Основной тип авторизации
 Имя авторизации DAV
 AuthUserFile "user.passwd"
 <LimitExcept ПОЛУЧИТЬ ПАРАМЕТРЫ ОТПРАВКИ>
 Требовать администратора пользователя
 </LimitExcept>
</Каталог> 

Проблемы с безопасностью

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

Любое место на сервере, где включен DAV, должно быть защищено аутентификацией. Использование базовой HTTP-аутентификации не рекомендуется. Вы должны использовать как минимум дайджест-аутентификацию HTTP, которая предоставляется модулем mod_auth_digest . Почти все клиенты WebDAV поддерживают этот метод аутентификации. Альтернативой является обычная аутентификация через соединение с поддержкой SSL.

Чтобы mod_dav управлять файлами, он должен иметь возможность записывать в каталоги и файлы, находящиеся под его контролем, используя User и Group под которыми работает Apache. Новые созданные файлы также будут принадлежать этому User и Group . По этой причине важно контролировать доступ к этой учетной записи. Репозиторий DAV считается частным для Apache; изменение файлов за пределами Apache (например, с использованием FTP или инструментов на уровне файловой системы) не должно быть разрешено.

mod_dav могут подвергаться различным видам атак типа «отказ в обслуживании». Директиву LimitXMLRequestBody можно использовать для ограничения объема памяти, потребляемой при анализе больших запросов DAV. Директиву DavDepthInfinity можно использовать для предотвращения PROPFIND потребления больших объемов памяти запросами к очень большому репозиторию. Другая возможная атака типа «отказ в обслуживании» заключается в том, что клиент просто заполняет все доступное дисковое пространство множеством больших файлов. В Apache нет прямого способа предотвратить это, поэтому вам следует избегать предоставления доступа DAV ненадежным пользователям.

Сложные конфигурации

Одним из распространенных запросов является использование mod_dav для управления динамическими файлами (скрипты PHP, сценарии CGI и т. д.). Это сложно, потому что GET запрос всегда будет запускать сценарий, а не загружать его содержимое. Один из способов избежать этого — сопоставить два разных URL-адреса с содержимым, один из которых будет запускать сценарий, а другой позволит загружать его и управлять им с помощью DAV.

 Псевдоним "/phparea" "/home/gstein/php_files"
Псевдоним "/php-source" "/home/gstein/php_files"
<Расположение "/php-источник">
 Дав Он
 ForceType текстовый/обычный
</местоположение> 

С этой настройкой его http://example.com/phparea можно использовать для доступа к выходным данным PHP-скриптов, а также http://example.com/php-source с клиентом DAV для управления ими.



Директива Дава

Описание:Включить HTTP-методы WebDAV
Синтаксис: Dav On|Off|provider-name
По умолчанию: Dav Off
Контекст:каталог
Положение дел:Расширение
Модуль:mod_dav

Используйте Dav директиву, чтобы включить HTTP-методы WebDAV для данного контейнера:

 <Расположение "/foo">
 Дав Он
</местоположение> 

Значение On на самом деле является псевдонимом поставщика по умолчанию filesystem , который обслуживается модулем mod_dav_fs . Обратите внимание, что после того, как вы включили DAV для некоторого местоположения, его нельзя отключить для дополнительных местоположений. Полный пример конфигурации см. в разделе выше.

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

Директива DavDepthInfinity

Описание:Разрешить PROPFIND, глубина: бесконечные запросы
Синтаксис: DavDepthInfinity on|off
По умолчанию: DavDepthInfinity off
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:Расширение
Модуль:mod_dav

Используйте DavDepthInfinity директиву, чтобы разрешить обработку PROPFIND запросов, содержащих заголовок «Глубина: бесконечность». Поскольку этот тип запроса может представлять собой атаку типа «отказ в обслуживании», по умолчанию он не разрешен.



Директива DavMinTimeout

Описание:Минимальное количество времени, в течение которого сервер удерживает блокировку ресурса DAV.
Синтаксис: DavMinTimeout seconds
По умолчанию: DavMinTimeout 0
Контекст:конфигурация сервера, виртуальный хост, каталог
Положение дел:Расширение
Модуль:mod_dav

Когда клиент запрашивает блокировку ресурса DAV, он также может указать время, когда блокировка будет автоматически удалена сервером. Это значение является только запросом, и сервер может игнорировать его или сообщить клиенту произвольное значение.

Используйте DavMinTimeout директиву, чтобы указать в секундах минимальное время ожидания блокировки для возврата клиенту. По умолчанию веб-папки Microsoft имеют тайм-аут 120 секунд; можно DavMinTimeout изменить это значение на более высокое (например, 600 секунд), чтобы уменьшить вероятность того, что клиент потеряет блокировку из-за задержки в сети.

Пример

 <Расположение "/MSWord">
 Давминтимеаут 600
</местоположение> 


 <         > 

Пункты:   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