воскресенье, 27 июня 2021 г.

Создание WebDAV-сервера в linux и windows

WebDAV позволяет пользователям редактировать, добавлять, скачивать файлы на сервере, без необходимости использования FTP.

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

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

sudo apt-get install apache2
sudo a2enmod dav
sudo a2enmod dav_fs

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

mkdir /home/webdav
chown -R www-data. /home/webdav

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

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

Помимо утилиты htpasswd получить содержимое файла можно с помощью любого онлайн генератора .htpasswd файлов.

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

# упрощаем себе жизнь, хранилище будет доступно по ссылке domain/webdav
# вместо указания длинного пути до каталога
Alias /webdav /home/webdav
<Location /webdav>
Options Indexes #разрешаем видеть содержимое папок
DAV On #активируем DAV
AuthType Basic #авторизоваться будем по логину и паролю
AuthName "webdav"
AuthUserFile /etc/apache2/webdav.password #путь до файла паролей
Require valid-user #не пускаем внутрь без авторизации
Allow from all #доступ отовсюду, можно ограничить по желанию
RewriteEngine off #не преобразовывать длинные имена файлов (если включен mod_rewrite)
</Location>

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

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

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

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

Перейдите в панель управления.

В панели управления откройте элемент Programs and Features, и перейдите в  режим установки функций Windows (Turn Windows Features on or off).

Разверните узел Internet Information Services, затем World Wide Web Services, и  Common HTTP Features.Установка WebDAV на IIS 7.5 в Windows 7

Отметьте WebDAV Publishing и нажмите OK

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

Откройте меню Start-> Administrative Tools-> Server Manager.

В окне управления сервером выберите Roles и отметьте Web Server (IIS).

В окне Web Server (IIS), найдите секцию Role Services и добавьте новую роль Add Role Services.

В списке служб разверните элемент Common HTTP Features, выберите опцию WebDAV Publishing и нажмите Next.Установка WebDAV на IIS 7.5 в Windows Server 2008 R2

Затем нажмите Install.

После установки расширения WebDAV, закройте окно установки кнопкой Close.


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

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

В менеджере IIS Manager, разверните дерево сайтов и выберите Default Web Site.

Щелкните по элементу WebDAV Authoring Rules.WebDAV Authoring Rules

На странице  WebDAV Authoring Rules щелкните в правой колонке(Actions) по сслыке Enable WebDAVВключить WebDAV в Windows 7

После включения WebDAV, создадим правила доступа к содержимому,  нажав кнопку Add Authoring Rule.WebDAV  Authoring Rule

В окне Add Authoring Rule укажем:

All content – значит, что правило будет применяться для контента всех типов.

Выберите «Specified users»и введте имя пользователя «administrator»

Права доступа: Read, Source и Write.

После настройки, жмите OK.WebDAV права доступа в iis 7

В панели управления IIS выберите опцию Authentication.Аутентификация в WebDAV 

В окне аутентификации активируйте аутентификацию Windows (Windows Authentication), если IIS будет работать только в качестве сервера WebDAV, анонимную аутентификацию можно отключить.WebDAV аутентифкация Windows Authentication

Вернитесь на уровень сайта Default Web Site и выберите Authorization Rules (либо .Net Authorization Rules)WebDAV .Net Authorization Rules

Создайте Allow правило (либо убедитесь, что оно уже существует), в котором администратору было бы разрешено получать доступ к серверу (в моем случае, такое правило уже было, и всем пользователям — All Users, в том числе администратору был разрешен доступ к IIS).

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

net use * http://localhost/

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

Подключение WebDAV сервер на nginx

Для начала необходимо скачать исходные пакеты nginx с официального сайта. Если требуется дополнительный функционал, стягиваем репозиторий

Во время сборки nginx указываем путь до дополнительного модуля с помощью опции --add-module=/путь/до/папки, а также включаем в параметры опцию --with-http_dav_module

После успешной установки веб-сервера переходим к настройке. Выбираем директорию, которую хотим выделить под управление по сети. Проверяем доступность для пользователя, под которым работает nginx (см. его настройки)

Создаем пару логин+пароль для авторизации на нашем сервере. Авторизация по протоколу HTTP Basic Authentication в nginx предоставляется с помощью модуля ngx_http_auth_basic_module, который включен по умолчанию. Генерируем хэш пароля с помощью утилиты из набора apache-utils htpasswd или любым онлайн генератором файлов .htpasswd.

В файле конфигураций nginx создаем location, в котором будет содержаться описание работы с этой директорией. О доступных в рамках этого модуля директивах можно найти информацию в официальной документации. Пример настройки:

location / {
     #указываем нужные методы
     dav_methods PUT DELETE MKCOL COPY MOVE;
     #работает,только если включали дополнительный модуль
     dav_ext_methods PROPFIND OPTIONS;
     #создавать промежуточные каталоги в методе PUT
     create_full_put_path on;
     #права доступа для создаваемых объектов
     dav_access group:rw all:r;
     #добавляем авторизацию
     auth_basic "Please login for access";
     #путь до файла с хэшем пароля
     auth_basic_user_file /mnt/disk/.passwd.dav;
     #разрешаем просмотр директории
     autoindex on;
     #отключаем ограничение по размеру на загрузку файлов
     client_max_body_size 0;
     #путь до корня выделенной под WebDAV директории
     root /mnt/disk;
}
  • Перезапустив nginx проверяем доступность каталога по сети с помощью браузера или любого удобного WebDAV-клиента


Комментариев нет:

Отправить комментарий