Webdav для linux server

Как настроить WebDAV на Apache в Ubuntu

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

Существует много способов использовать WebDAV-сервер. Например, вы можете поделиться документами Word или Excel со своими коллегами, загрузив их на свой сервер WebDAV. Таким же образом можно поделиться музыкальной коллекцией с семьей и друзьями –достаточно просто предоставить им URL-адрес. При этом никому не нужно устанавливать дополнительное программное обеспечение, поскольку все уже встроено в операционную систему «из коробки».

В этом руководстве вы научитесь настраивать доступ WebDAV через веб-сервер Apache из систем Windows, Mac и Linux по SSL и с парольной аутентификацией.

Требования

  • Сервер Ubuntu 18.04, настроенный по этому мануалу.
  • Домен, привязанный к IP-адресу вашего сервера.
  • Веб-сервер Apache. Чтобы связать домен с вашим веб-сервером, следуйте инструкциям Настройка виртуальных хостов Apache в Ubuntu 18.04.
  • SSL-сертификат для вашего домена. Чтобы получить такой сертификат, обратитесь к руководству Создание сертификата Let’s Encrypt для Apache в Ubuntu 18.04.

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

Войдите на свой сервер как пользователь sudo, чтобы начать работу.

1: Включение WebDAV-модулей Apache

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

Вам нужно включить модули WebDAV с помощью утилиты a2enmod. Это сделают следующие две команды:

sudo a2enmod dav

sudo a2enmod dav_fs

Теперь перезапустите Apache, чтобы загрузить новые модули в работу:

sudo systemctl restart apache2.service

Итак, вы загрузили и запустили функции WebDAV. На следующем этапе мы настроим Apache для обслуживания файлов по WebDAV.

2: Настройка Apache

Сейчас мы создадим все необходимые конфигурации, чтобы внедрить WebDAV на сервер Apache.

Сначала создайте корневую папку WebDAV, /var/www/webdav, в ней будут храниться файлы, которыми вы хотите поделиться через WebDAV:

sudo mkdir /var/www/webdav

Затем сделайте пользователя Apache, www-data, владельцем папки WebDAV:

sudo chown www-data:www-data /var/www/webdav

После этого нам нужно создать место для хранения файла базы данных, который Apache использует для управления и блокировки файлов, доступных по WebDAV. Этот файл должен быть доступен для чтения и изменения только пользователю Apache (широкий доступ к нему может стать причиной утечки конфиденциальной информации).

Создайте новый каталог для хранения файла базы данных с помощью утилиты mkdir:

sudo mkdir -p /usr/local/apache/var/

Параметр -p позволяет утилите mkdir создать все родительские каталоги в указанном вами пути (если какого-то из них не существует).

Затем с помощью утилиты chown передайте права на новый каталог пользователю и группе Apache:

sudo chown www-data:www-data /usr/local/apache/var

Давайте отредактируем файл VirtualHost, который содержит конфигурацию Apache для вашего домена. Он находится в /etc/apache2/sites-enabled/, а его имя заканчивается на le-ssl.conf, если вы использовали Certbot для получения сертификата SSL.

Читайте также:  При запуске проигрывателя windows media

Откройте файл VirtualHost в текстовом редакторе:

sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf

В первой строке поместите директиву DavLockDB:

Затем вставьте директивы Alias ​​и Directory внутри тегов после всех остальных директив:

Alias /webdav /var/www/webdav

Директива Alias ​​связывает запросы к http://your.server/webdav с папкой /var/www/webdav.

Директива Directory включает в Apache поддержку WebDAV для папки /var/www/webdav. Узнать больше о mod_dav можно в документации Apache.

Окончательный файл VirtualHost включает директивы DavLockDB, Alias ​​и Directory, это выглядит следующим образом:

CustomLog $/access.log combined

Alias /webdav /var/www/webdav

Если во время редактирования конфигурации Apache были допущены синтаксические ошибки, веб-сервер не запустится. Поэтому перед перезапуском Apache рекомендуется проверить ошибки в настройках. Для этого используйте утилиту apachectl:

sudo apachectl configtest

Утилита apachectl выведет Syntax OK, если ошибок в файле нет. Получив такое сообщение, вы можете спокойно перезапустить Apache, чтобы активировать новые конфигурации:

sudo systemctl restart apache2.service

Теперь сервер Apache поддерживает расширение WebDAV для обслуживания файлов, которые хранятся в /var/www/webdav. Однако пока мы не включили аутентификацию, читать и редактировать ваши файлы сможет любой пользователь, у кого есть доступ к вашему серверу. В следующем разделе мы включим аутентификацию для WebDAV.

3: Настройка аутентификации для WebDAV

Метод, который мы настроим в этом руководстве, называется дайджест-аутентификацией. Это более безопасный метод аутентификации для WebDAV, особенно в сочетании с HTTPS.

Дайджест-аутентификация работает с файлом, в котором хранятся имена и пароли доверенных пользователей – только они могут получить доступ к серверу WebDAV. Как и файл базы данных, такой файл должен храниться в месте, которое доступно веб-серверу Apache и которое не отображается на вашем сайте.

Поскольку для этой цели мы уже создали папку /usr/local/apache/var/, мы также поместим туда и этот файл.

Сначала создайте в этой папке пустой файл users.password:

sudo touch /usr/local/apache/var/users.password

Затем передайте права на файл группе www-data, чтобы Apache мог читать и изменять файл:

sudo chown www-data:www-data /usr/local/apache/var/users.password

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

sudo htdigest /usr/local/apache/var/users.password webdav 8host

В этой команде есть аргумент webdav – он задает область, ее следует воспринимать как группу, в которую вы и добавляете нового пользователя. Также этот пользователи видят, когда вводят свое имя и пароль, чтобы получить доступ к вашему серверу WebDAV. Вы можете выбрать любое другое имя области, если оно лучше описывает ваш каталог WebDAV.

При запуске команды htdigest будет предложено ввести пароль и подтвердить его:

Adding user 8host in realm webdav

Re-type new password:

Следующим нашим шагом будет включение обязательной аутентификации для доступа к WebDAV – тогда Apache будет требовать ее у всех пользователей и читать для этого файл users.password.

Откройте файл VirtualHost:

sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf

Вставьте следующие строки в блок Directory:

Вот что делают эти строки:

  • AuthType Digest включает метод дайджест-аутентификации.
  • AuthName “webdav” позволяет доступ только пользователям области webdav.
  • AuthUserFile /usr/local/apache/var/users.password проверяет учетные данные с помощью файла /usr/local/apache/var/users.password.
  • Require valid-user открывает доступ любому пользователю, который включен в файл users.password и предоставил правильный пароль.
Читайте также:  Asus x75vc установка windows

Теперь блок выглядит так:

Включите модуль auth_digest, чтобы Apache мог использовать метод дайджест-аутентификации:

sudo a2enmod auth_digest

Наконец, перезапустите Apache, чтобы включить новые настройки:

sudo systemctl restart apache2.service

Итак, мы настроили сервер WebDAV для поддержки HTTPS и дайджест-аутентификации. Он уже готов начать раздачу файлов вашим пользователям. В следующем разделе мы протестируем доступ к серверу WebDAV в системах Windows, Linux и macOS.

4: Доступ к серверу WebDAV

Пора проверить доступ к серверу WebDAV с помощью браузеров в системах macOS, Windows и Linux (KDE и GNOME).

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

Откройте новый файл в текстовом редакторе:

sudo nano /var/www/webdav/webdav-testfile.txt

Добавьте в файл какой-нибудь текст, а затем сохраните и закройте его. Передайте права на файл пользователю и группе www-data:

sudo chown www-data:www-data /var/www/webdav/webdav-testfile.txt

Теперь мы можем попробовать получить доступ к серверу WebDAV.

Система Linux KDE

Сначала откройте менеджер файлов KDE Dolphin. Затем отредактируйте адресную строку, указав такой URL-адрес:

Когда вы нажмете ввод, вам будет предложено ввести имя пользователя и пароль.

Поставьте галочку в Remember password, если вы хотите, чтобы Dolphin сохранил ваш пароль. Затем нажмите Ок, чтобы продолжить. На экране вы увидите содержимое каталога /var/www/webdav/, которым вы можете управлять так, как если бы оно находилось в вашей локальной системе.

Добавьте сервер WebDAV в закладки, перетащив значок папки из адресной строки в раздел Remote в левой части панели навигации.

Система Linux GNOME

Сначала откройте приложение Files, кликнув на его значок в правой части рабочего стола.

Когда приложение откроется, сделайте следующее:

  1. Нажмите на кнопку + Other Locations.
  2. Введите URL-адрес вашего сервера WebDAV в следующей форме:

Затем нажмите Connect. На экране появится форма для аутентификации. В нее введите ваше имя и пароль.

Нажмите Connect, чтобы войти на сервер WebDAV. Поставьте галочку Remember forever, если вы не хотите каждый раз заново вводить пароль при доступе к этому серверу.

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

Система macOS

Сначала откройте приложение Finder. Затем откройте меню Go и выберите Connect to server

Теперь вы увидите новое диалоговое окно, в котором можно указать URL-адрес сервера WebDAV. Этот URL должен иметь следующий вид:

Нажмите кнопку Connect, чтобы продолжить. После этого вам будет предложено ввести имя пользователя и пароль.

Снова нажмите Connect, чтобы завершить процесс добавления сервера WebDAV в вашу систему.

Теперь сервер WebDAV можно найти в Finder в разделе Locations.

Система Windows

Сначала в меню Пуск откройте проводник (File Explorer). Когда приложение откроется, выберите This PC в левой панели навигации.

Затем нажмите Map network drive в верхней панели навигации.

Введите URL-адрес вашего сервера WebDAV в следующем формате:

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

Введите учетные данные и нажмите ОК, чтобы войти на сервер. Поставьте галочку в Remember my credentials, если вы не хотите каждый раз вводить пароль при доступе к этому серверу.

Читайте также:  Команды линукса поиск файла

Теперь WebDAV появится в разделе This PC в левой панели проводника.

Заключение

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

Источник

xandroskin blog | it or not it

WebDAV позволяет пользователям редактировать, добавлять, скачивать файлы на сервере, без необходимости использования FTP. Для организации сервера webdav на машине под управлением Linux достаточно Apache2 с некоторым набором специфичных модулей. Хранение данных авторизации клиентов с помощью стандартного для Apache2 файла паролей вида .htpasswd или же реализовать на базе MySQL (пример конфигурации в конце статьи). Реализацию WebDAV с помощью NGINX можно найти по ссылке.

Для начала ставим веб-сервер и включаем необходимые модули:

Подготавливаем каталог для сетевого хранилища: либо создаем новый, либо выставляем права доступа для www-data к имеющемуся:

Создаем пользователя, который будет иметь доступ к файлам на сервере, например webdav, вводим по запросу пароль и подтверждение, не забываем про права доступа к файлу:

Помимо утилиты htpasswd получить содержимое файла можно с помощью любого онлайн генератора .htpasswd файлов.
Самое время перейти к конфигурированию /etc/apache2/apache2.conf (или одного из виртуальных хостов в /etc/apache2/sites-available/ при использовании модульной настройки веб-сервера). Эта часть текста должна быть помещена внутрь одного из

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

WebDAV-клиент в Linux

Из ubuntu-like систем подключиться к сетевому хранилищу можно с помощью менеджера файлов Nautilus, вот как это выглядит на примере Ubuntu 13.10:

  • Входим в Nautilus, выбираем в меню Файлы -> Подключение к серверу
  • Вводим адрес вида dav://username@domain:port/webdav или davs в случае наличия SSL-сертификатов и соответствующей настройке веб-сервера.
  • Нажимаем подключиться и авторизуемся

WebDAV-клиент в Windows

В Windows из коробки есть возможность подключения сетевых устройств, но работает она по умолчанию только с имеющими сертификаты серверами. «Починить» нативный клиент можно с помощью реестра:

  • Открываем regedit
  • Переходим в ветку HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
  • Находим DWORD32-параметр BasicAuthLevel и выставляем ему значение «2»
  • Перезагружаемся

Возможные значения этого параметра такие:
0 — базовая авторизация (по паре логин-пароль) отключена
1 — базовая авторизация только для SSL-шар
2 — базовая авторизация любых шар, в том числе не SSL
После перезагрузки можно пробовать настраивать сетевое хранилище (на примере Windows 7):

  • Открываем Мой компьютер
  • Выбираем «Подключить сетевой диск»
  • Вводим адрес веб-хранилища в формате http://domain/webdav (или https для соответствующего соединения)
  • Ставим галку «Использовать другие данные», чтобы система не пыталась получить доступ с помощью данных учетной записи Windows

Авторизация с помощью MySQL

Использование базы MySQL может быть оправдано при большом количестве клиентов. Устанавливаем необходимые для работы модули (и сам MySQL в случае его отсутствия):

Включаем установленный модуль:

Входим в mysql и создаем базу и пользователя для доступа к ней:

Создаем таблицу с пользователями:

Добавляем пользователя test:

Правим конфигурацию Apache:

Перезапускаем веб-сервер и проверяем работоспособность.

Источник

Оцените статью