Настройка доступа к Apache через WebDAV в Ubuntu

WebDAV – это встроенное в HTTP распределенное средство для веб-авторинга, которое позволяет легко обмениваться файлами и совместно работать с другими пользователями.

Это расширение можно установить на веб-сервер, что откроет удаленный к локальным файлам в браузере (доступ с правами на чтение и запись). Данное руководство поможет установить WebDAV на сервер Ubuntu 12.04 и настроить его под веб-сервер Apache.

Установка Apache

Для использования WebDAV сервер Apache имеет специальный модуль WebDAV.

Сначала нужно установить Apache из стандартных репозиториев Ubuntu.

sudo apt-get update
sudo apt-get install apache2

После установки веб-сервер доступен в браузере; для этого нужно ввести IP.

Включение поддержки WebDAV

Встроенную поддержку WebDAV для Apache обеспечивают несколько модулей. Нужно дать им доступ к их функциям.

Чтобы включить поддержку WebDAV, используйте команды:

sudo a2enmod dav
sudo a2enmod dav_fs

Чтобы обновить настройки, перезапустите веб-сервер:

sudo service apache2 restart

Теперь веб-сервер Apache поддерживает WebDAV, но его настройка ещё не завершена.

Создание файловой системы

Создайте каталог для хранения файлов WebDAV.

Стандартный каталог document root для веб-сервера Apache в Ubuntu – это /var/www.

Однако в данном руководстве контент WebDAV будет храниться в каталоге -/webdav/.

sudo mkdir /webdav

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

sudo chown www-data /webdav

Защита паролем

Теперь можно настроить процедуру аутентификации для получения доступа к содержимому каталога, создав файл htpasswd.

Этот файл нужно поместить вне только что созданного каталога, иначе пользователи будут иметь к нему доступ. Также нужно создать нового пользователя и ввести его пароль.

sudo htpasswd -c /etc/apache2/webdav.password username

Теперь файл содержит данные о новом пользователе и его хэшированный пароль. Передайте права собственности на файл группе www-data и заблокируйте доступ к файлу для всех остальных:

sudo chown root:www-data /etc/apache2/webdav.password
sudo chmod 640 /etc/apache2/webdav.password

Настройка Apache

Теперь нужно настроить доступ к каталогу, хранящему контент, и обслуживание этого каталога при помощи модулей WebDAV. Также нужно отметить настроенную аутентификацию.

Отредактируйте основной конфигурационный файл виртуального хоста:

sudo nano /etc/apache2/sites-available/default

На данный момент веб-сервер обслуживает контент из стандартного каталога /var/www. Нужно добавить настройки для поддержки контента WebDAV.

После разделов Directory добавьте директиву alias. После этого Apache будет обслуживать запросы, заканчивающиеся на /webdav, из каталога /webdav.

Также нужно добавить данные о настроенной аутентификации.

. . .
. . .
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Alias /webdav /webdav
<Location /webdav>
Options Indexes
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /etc/apache2/webdav.password
Require valid-user
</Location>
. . .
. . .

Сохраните и закройте файл.

Перезапустите Apache:

sudo service apache2 restart

Тестирование

Теперь можно проверить настройку в браузере, а затем на клиенте WebDAV.

Чтобы убедиться, что аутентификация настроена правильно, перейдите к IP-адресу или домену сервера с помощью веб-браузера.

На экране должна появиться стандартная страница index.html сервера Apache:

It works!
This is the default page for this server.
The web server software is running but no content has been added, yet.

Теперь попробуйте добавить к IP или домену секцию /webdav:

your_IP_address_or_domain/webdav

Сервер должен запросить имя пользователя и пароль (созданные вместе с файлом паролей).

После этого браузер покажет пустой каталог, так как в настоящее время в нём не хранится ни одного файла. Это можно будет исправить при помощи клиента WebDAV.

Клиент WebDAV

Существует много клиентов WebDAV; в данном руководстве для простоты используется клиент командной строки cadaver.

Установите cadaver из стандартных репозиториев (предпочтительно на другой сервер или машину Linux).

sudo apt-get install cadaver

Создайте файл, который потом можно будет подгрузить в каталог WebDAV.

cd ~
touch testfile

Откройте браузер и перейдите по ссылке:

cadaver http://your_IP_address_or_domain/webdav
Authentication required for webdav on server `162.243.2.14':
Username:

Чтобы ссылка сработала правильно, нужно обязательно ввести http://.

Теперь нужно снова пройти авторизацию, после чего вы получите доступ к интерфейсу командной строки.

dav:/webdav/>

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

Чтобы просмотреть содержимое каталога сервера, наберите:

ls
Listing collection `/webdav/': collection is empty.

Каталог пуст. Добавьте в него тестовый файл.

put testfile

Снова запросите содержимое каталога:

ls
Listing collection `/webdav/': succeeded.
testfile                               0  Sep 20 19:36

Чтобы создать каталог и открыть его, введите:

mkdir hello
cd hello

Теперь в нём можно создать файл:

edit file.html

Добавьте в него любой код:

<h1>Hi!!!</h1>

Чтобы закрыть строку, введите:

exit

Вернитесь в браузер и снова попробуйте открыть ссылку:

your_IP_address_or_domain/webdav

Блокирование листинга каталога

Листинг каталога позволяет просмотреть доступные файлы WebDAV, потому его рекомендуется запретить (особенно при работе в сети).

Чтобы доступная в сети часть файлов действовала как веб-сайт, а не как список каталогов, нужно удалить строку Options Indexes из конфигурационного файла:

sudo nano /etc/apache2/sites-available/default
Alias /webdav /webdav
<Location /webdav>
Options Indexes     ## Remove this line
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /etc/apache2/webdav.password
Require valid-user
</Location>
. . .
. . .

Перезапустите Apache:

sudo service apache2 restart

После этого нужно создать обычные веб-страницы для постоянной работы (например, index.html).

sudo nano /webdav/index.html
<h1>Default WebDAV Page</h1>
<p>This is the default page with directory listings turned off</p>

Сохраните и закройте файл.

Эта страница будет появляться при переходе в главный каталог WebDAV; однако клиенты всё еще могут  редактировать каталог.

Default WebDAV Page
This is the default page with directory listings turned off

Заключение

Теперь каталог WebDAV защищён при помощи базовой аутентификации. Если каталог содержит контент, который обязательно должен быть надежно защищен, возможно, вам лучше обратиться к средствам SSL. К сожалению, это выходит за рамки данной статьи.

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

Tags: , ,

Добавить комментарий