Домашний сервер на 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-сервера