Домашний сервер на Orange Pi — часть 5: настраиваем WebDAV сервер на базе Apache

В прошлой статье мы с вами установили и настроили WEB-сервер на базе Apache. Сегодня мы рассмотрим настройку WebDAV сервера на базе уже установленного Apache.

Что такое WebDAV
WebDAV (Web Distributed Authoring and Versioning) — это протокол для передачи данных и работы с ними, построенный поверх HTTP 1.1. Следует заметить, что передача может быть как защищенной, так и незащищенной. В самом протоколе защищенность отсутствует, но она может быть добавлена через реализацию аутентификации на веб-сервере и шифрование посредством SSL, следовательно, в таком случае будет использоваться не HTTP, а HTTPS.

Настройка WebDAV сервера

Первым делом, заходим на наш сервер.

sshexample

Почему используется данная команда для входа на сервер, а не классический вызов ssh - смортите предыдущие статьи.

и создаем каталог, который мы выделим под хранилище, не зря же мы подключали внешний диск?
На вопрос: "Почему на внешнем диске?", отвечу так - мы не знаем какие файлы будем там хранить, а нагружать систему (коневой каталог) большим объёмом данных, это не правильно.

mkdir /media/disk/webdav

Сдедующим шагом, открываем файл конфигурации нашего виртуального хоста в настройках сервера Apache2:

sudo nano /etc/apache2/sites-available/example.ru.conf

И перед закрывающим тегом, добавим следующие строки:

Alias /webdav /media/disk/webdav

<Directory /media/disk/webdav>
       DAV On
       AuthType Digest
       AuthName "dav"
       AuthUserFile /etc/webdavpasswd
       Require valid-user 
       Options Indexes FollowSymLinks 
       AllowOverride None 
       AddDefaultCharset UTF-8 
</Directory>

После закрывающего тега </VirtualHost> добавляем строку

DAVLockDB /var/lib/dav/lockdb

Рассмотрим некоторые параметры добавленной секции немного подробнее:

Директива Alias связывает запросы к ресурсу http://example.ru/webdav с каталогом /media/disk/webdav.
Секция Directory задает настройки нашего каталога.

DAV On - включает WebDAV
AuthType Digest - указывает тип аутентификации.

Существует несколько схем аутентификации, отличающихся по уровню безопасности:
Basic — наиболее простая схема, при которой username и password пользователя передаются в заголовке Authorization в незашифрованном виде. Однако при использовании протокола HTTPS, является относительно безопасной. (В одной из следующих статей, мы рассмотрим подключение SSL сертификата к нашему серверу)
Digest — challenge-response-схема, при которой сервер посылает уникальное значение nonce, а браузер передает MD5 хэш пароля пользователя, вычисленный с использованием указанного nonce. Более безопасная альтернатива Basic схемы при незащищенных соединениях.

AuthName "dav" - имя области аутентификации, можно задать любое
AuthUserFile /etc/webdavpasswd - файл с паролями пользователей
Require valid-user - разрешать доступ только прошедшим аутентификацию пользователям.
DAVLockDB /var/lib/dav/lockdb - Данная директива определяет файл базы данных блокировок. Файл создастся модулем автоматически, но каталог, указанный в директиве, должен существовать и должен быть доступен для записи процессу веб-сервера. Данная директива должна быть расположена либо в глобальном контексте сервера (вне секций , ), либо в контексте виртуального хоста (внутри секции ).

Создаём каталог для файла блокировки:

sudo mkdir -m 777 /var/lib/dav

Теперь создадим пользователей WebDAV ресурса. Для создания пользователей с Digest аутентификацией, используется утилита - htdigest, первого пользователя заводим командой:

sudo htdigest -с /etc/webdavpasswd dav example

Ключ указывает утилите о том, что файл паролей отсутвует и его, необходимо создать, если файл существует, то он будет перезаписан. После имени файла паролей указывается область аутентификации, у нас - это dav, и имя пользователя.
Далее, утилита предложит нам задать пароль пользователя и подтвердить его повторным вводом. Второго и последующих пользователей создаем той же командой, но уже без ключа -c:

sudo htdigest /etc/webdavpasswd dav example2

Файл паролей, имеет три колонки разделённых :

example:dav:f1a72e5e422c8f799f41742ae2c80cb6

Первая графа - это логин;
Вторая - область аутентификации;
Третья - MD5-хеш пароля.

Теперь, для того чтобы аш WebDAV сервер начал работать, подключим необходимые модули Apache.
Выполним в терминале следующие команды:

sudo a2enmod dav
sudo a2enmod dav_fs
sudo a2enmod auth_digest
sudo a2enmod rewrite 

Проверим конфигурацию сервера на наличие ошибок и перезапустим сервер:

sudo apachectl -t
sudo systemctl restart apache2 

Теперь проверим работоспособность нашего WebDAV-сервера.
Первым делом создадим два каталога внутри /media/disk/webdav/: test1 и test2, для того, чтобы внутри одного создать подкаталог, а другой удалить из браузера во время проверки.
В терминал введем команду:

mkdir /media/disk/webdav/{test1,test2}

Теперь в адресной строке браузера введем адрес нашего сервера, через слэш указав, что обращаемся к каталогу webdav: http://192.168.1.211/webdav. После чего, мы должны увидеть форму аутентификации, а затем листинг директории.

Но из браузера мы не сможем управлять содержимым нашего сервера, но большинство файловых менеджеров (Finder в Mac OS, Nautilus и Thunar в Linux) поддерживают подключение WebDAV сервера как сетевой каталог и работать с ним нативно. Для подключения в Mac OS, необходимо открыть файловый менеджер и выбрать пункт "Подключение к серверу" и указать адрес сервера (так же как мы указывали в браузере). В Linux системе указать явно тип протокола: dav или davs в случае использования протокола ssl.
После подключения к серверу проведём проверку работоспособности: создадим и удалим каталоги на сервере.

Безусловно WebDAV-сервер не является полноценной заменой облачного хранилища, но и данная конфигурация обеспечит нам быстрый доступ к файлам, которые хранятся у нас на сервере.
На этом всё, до скорых встреч.

Домашний сервер на Orange Pi часть 1: установка ОС и первичная настройка
Домашний сервер на Orange Pi — часть 2: подключение USB-диска
Домашний сервер на Orange Pi — часть 3: установка и настройка серверов ssh, samba и ftp
Домашний сервер на Orange Pi — часть 4: установка LAMP-сервера

Похожие записи

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