Webdav сервер своими руками

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Настройка WebDAV-сервера на базе Apache

Настройка WebDAV-сервера на базе Apache

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

Прежде всего обозначим некоторые особенности и ограничения. В современных условиях мы не видим смысла использовать WebDAV поверх небезопасного протокола HTTP, разве что в пределах периметра локальной сети. Также не следует использовать Basic-аутентификацию, которая предает пароль по сети в открытом виде, особенно в связке с HTTP, тем более что современные Windows-системы не поддерживают такое сочетание.

Для нормальной работы нам понадобится веб-сервер на базе Apache с настроенным SSL и валидным сертификатом, как настроить такой сервер мы рассказывали в статье: Настраиваем Apache для работы по HTTPS (SSL) с сертификатами Let’s Encrypt. В дальнейшем мы будем опираться на приведенную там конфигурацию.

Прежде всего определимся с местом хранения, так как WebDAV является расширением веб-сервера, то и данные логично разместить в /var/www, создадим там директорию webdav и назначим ее владельцем веб-сервер:

Затем откроем файл конфигурации виртуального хоста, который будет обслуживать WebDAV, в нашем случае это /etc/apache2/sites-available/example.com-ssl.conf и добавим в самый его конец, перед закрывающим тегом следующие строки:

Директива Alias позволяет связать запросы к ресурсу https://example.com/webdav с папкой /var/www/webdav несмотря на то, что она находится вне корневой директории сайта. Секция Directory задает настройки, применяемые к данной директории.

  • DAV On — включает WebDAV
  • AuthType Digest — задает тип аутентификации. Digest-аутентификация не использует пароли в открытом виде, храня и передавая MD5-хеш.
  • AuthName «dav» — имя области аутентификации, можно выбрать на собственное усмотрение
  • AuthUserFile /etc/davpasswd — файл с паролями пользователей
  • Require valid-user — разрешать доступ только прошедшим аутентификацию пользователям.

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

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

Файл паролей имеет следующую структуру:

Первой частью строки идет имя, затем область аутентификации и затем MD5-хеш пароля. Для удаления пользователя просто удалите относящуюся к нему строку.

После чего подключим необходимые модули Apache:

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

Для проверки наберите в любом браузере https://example.com/webdav и вы должны увидеть форму аутентификации, после которой вы увидите листинг директории.

Читайте также:  Бижутерия своими руками мастер класс по бижутерии

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

В Linux настраиваем подключение к серверу, при необходимости протокол указываем как davs (либо dav при доступе через http), например? так выглядит подключение в Gnome 3:

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

Еще более серьезной проблемой является блокировка открытых файлов, что может приводить к потере данных при совместном редактировании. Несмотря на то, что WebDAV поддерживает блокировки открытых файлов, не все клиенты корректно с ними работают, например, Nautilus Gnome3 корректно обрабатывает такие ситуации, выдавая предупреждение:

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

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

Как видим, настройка WebDAV на базе веб-сервера Apache очень проста и не занимает много времени.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Или подпишись на наш Телеграм-канал:

Источник

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:

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

Источник

Установка и настройка WebDAV на IIS в Windows

В этой заметке мы поговорим о замечательной надстройке над службой Internet Information Services (IIS) под названием WebDAV. WebDAV это протокол для доступа к общим файлам и папкам через интернет, чем то похожий на FTP. Передача файлов по протоколу WebDAV может быть осуществлена через различные межсетевые экраны и брандмауэры, передаваемую информацию можно шифровать, да и работа с файлами и папками реализована намного удобнее, полностью напоминая работу службы общего доступа к фалам и папкам в Windows.

Вместе с выходом Windows Server 2008 Microsoft презентовала обновленную версию модуля WebDAV для IIS 7. Данный модуль существенно расширил возможности, удобство и безопасность использования WebDAV для доступа к файлам в Интернет, кроме того теперь он стал поддерживать многопользовательскую работу и блокировку файлов.

В этой статье мы поговорим о том, как установить WebDAV на ОС Windows 7 и Windows Server 2008 R2, как его настроить и каким образом можно получить доступ к файлам и папкам, к которым открыт общий сетевой доступ по WebDAV .

Еще раз напомню, что WebDAV это расширение службы IIS, поэтому, если у вас еще не установлен IIS, сделайте это (как вы, наверное, помните и в Windows 7 и в Windows Server 2008 R2, IIS идет по умолчанию, но в целях безопасности этот компонент нужно включать отдельно). Установка WebDAV в Windows 7 и в Windows 2008 R2 немного отличается.

Установка WebDAV на IIS 7.5 в Windows Server 2008 R2

  1. Откройте меню Start-> Administrative Tools-> Server Manager.
  2. В окне управления сервером выберите Roles и отметьте Web Server (IIS).
  3. В окне Web Server (IIS), найдите секцию Role Services и добавьте новую роль Add Role Services.
  4. В списке служб разверните элемент Common HTTP Features, выберите опцию WebDAV Publishing и нажмите Next.
  5. Затем нажмите Install.
  6. После установки расширения WebDAV, закройте окно установки кнопкой Close.
Читайте также:  Диванные подушки своими руками крючком схемы

Установка WebDAV на IIS 7.5 в Windows 7

Настраиваем публикацию WebDAV в менеджере IIS

На этом этапе мы включим WebDAV для сайта IIS и дадим права на редактирование содержимого локальному администратору.

  1. В менеджере IIS Manager, разверните дерево сайтов и выберите DefaultWebSite.
  2. Как показано на рисунке, щелкните по элементу WebDAVAuthoringRules.
  3. На странице WebDAV Authoring Rules щелкните в правой колонке(Actions) по сслыке EnableWebDAV
  4. После включения WebDAV, создадим правила доступа к содержимому, нажав кнопку AddAuthoringRule.
  5. В окне Add Authoring Rule укажем:
    • All content – значит, что правило будет применяться для контента всех типов.
    • Выберите «Specified users»и введте имя пользователя «administrator»
    • Права доступа: Read, Source и Write.
    • После настройки, жмите OK.
  6. В панели управления IIS выберите опцию Authentication.
  7. В окне аутентификации активируйте аутентификацию Windows (WindowsAuthentication), если IIS будет работать только в качестве сервера WebDAV, анонимную аутентификацию можно отключить.
  8. Вернитесь на уровень сайта Default Web Site и выберите AuthorizationRules (либо .Net Authorization Rules)
  9. Создайте Allow правило (либо убедитесь, что оно уже существует), в котором администратору было бы разрешено получать доступ к серверу (в моем случае, такое правило уже было, и всем пользователям — All Users, в том числе администратору был разрешен доступ к IIS).

Попробуем теперь подключиться к сайту WebDAV c учетной записью администратора, для чего в командной строке наберите:

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

Если же нужно расшарить определенную папку на диске, необходимо создать виртуальный каталог IIS. Для этого щелкните правой кнопкой мыши по сайту и выберите ‘Add New Virtual Directory’:

Укажите алиас (имя виртуального каталога IIS) и путь к папке, к которой необходимо открыть доступ и нажмите OK.

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

Сетевой диск, подключенный по WebDAV выглядит так:

Как вы видите WebDAV — это отличное средство для удаленного доступа к файлам и папкам в Windows поверх протокола HTTP, которое можно использовать, даже через межсетевой экран. Кроме того, так как WebDAV базируется на службе IIS, это означает, что в такой архитектуре мы можем использовать различные технологии обеспечения безопасности и средства управления IIS, в том числе HTTPS для шифрования передаваемых данных (при использовании обычного HTTP вся информация передается в открытом виде, кроме пароля, который при использовании Windows Authentication шифруется).

Опишем еще несколько аспектов использования WebDAV

  • Если вы используете Basic authentication вместе с HTTP, это означит, что ваш пароль будет пересылаться в открытом виде, поэтому лучше использовать протокол HTTPS или все-таки включить аутентификацию Windows.
  • Не забудьте, что IIS работает из под учетной записи, у которой нет доступа к большинству каталогов и файлам, поэтому придется назначить NTFS права этой учетной записи вручную.
  • Для того, чтобы подключить диск по WebDAV с клиента Windows XP, необходимо убедится, что запущена служба WebClient
  • Чтобы подключить каталог WebDAV по HTTPS, воспользуйтесь командой:

Источник

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