В этой заметке мы поговорим о замечательной надстройке над службой 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
- Откройте меню Start-> Administrative Tools-> Server Manager.
- В окне управления сервером выберите Roles и отметьте Web Server (IIS).
- В окне Web Server (IIS), найдите секцию Role Services и добавьте новую роль Add Role Services.
- В списке служб разверните элемент Common HTTP Features, выберите опцию WebDAV Publishing и нажмите Next.
- Затем нажмите Install.
- После установки расширения WebDAV, закройте окно установки кнопкой Close.
Установка 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 Publishing и нажмите OK.
Настраиваем публикацию WebDAV в менеджере IIS
На этом этапе мы включим WebDAV для сайта IIS и дадим права на редактирование содержимого локальному администратору.
- В менеджере IIS Manager, разверните дерево сайтов и выберите Default Web Site.
- Как показано на рисунке, щелкните по элементу WebDAV Authoring Rules.
- На странице WebDAV Authoring Rules щелкните в правой колонке(Actions) по сслыке Enable WebDAV
- После включения WebDAV, создадим правила доступа к содержимому, нажав кнопку Add Authoring Rule.
- В окне Add Authoring Rule укажем:
- В панели управления IIS выберите опцию Authentication.
- В окне аутентификации активируйте аутентификацию Windows (Windows Authentication), если IIS будет работать только в качестве сервера WebDAV, анонимную аутентификацию можно отключить.
- Вернитесь на уровень сайта Default Web Site и выберите Authorization Rules (либо .Net Authorization Rules)
- Создайте Allow правило (либо убедитесь, что оно уже существует), в котором администратору было бы разрешено получать доступ к серверу (в моем случае, такое правило уже было, и всем пользователям — All Users, в том числе администратору был разрешен доступ к IIS).
Попробуем теперь подключиться к сайту WebDAV c учетной записью администратора, для чего в командной строке наберите:
net use * http://localhost/
В результате в системе появиться новый сетевой диск, подключенный с сервера с помощью WebDAV.
Если же нужно расшарить определенную папку на диске, необходимо создать виртуальный каталог IIS. Для этого щелкните правой кнопкой мыши по сайту и выберите ‘Add New Virtual Directory’:
Укажите алиас (имя виртуального каталога IIS) и путь к папке, к которой необходимо открыть доступ и нажмите OK.
Теперь, чтобы подключить данный каталог, нужно воспользоваться командой:
net use * _https://winitpro.ru/projects
Сетевой диск, подключенный по 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, воспользуйтесь командой:
net use x: "_https:// winitpro.ru/projects " /User:UserName Password
Настраивали обмен пользователей, находящихся в разных регионах, через общую шару на выделенном серваке с Win2008.
Подняли WebDAV с HTTPS по этой инструкции. Все работает как надо! Thanks!
Спасибо за статью.Подскажиет пожалуйста. Как настроить блокировки таким образом чтобы при открытии документа одним пользователем выпадало сообщение «данный документ доступен только для чтения и тр.пр.», если в данный момент этот документ уже редактируется другим пользователем.
Встроенными средствами — никак. Если пользователь открывает файл на WebDAV, он сначала скачивается локально и затем открывается. При сохранении изменения, обновленная копия перезатирает оригинал.
Скорее всего вам лучше подойдет Sharepoint — он позволяет обрабатывать ситуации одновременного открытия одного файла несколькими пользователями.
Нашел в параметрах WebDAV, поведение блокировки.И нужно было обязательно перезагрузиться, иначе не работало.Теперь при открытии одним пользователем документа, другой при попытке в это же время отредактировать, получить сообщение что доступен только для чтения.Есть свои оговорки. Не пишет каким пользователем открыто.Автокадовские документы в таком случае становятся вообще не доступными для чтения. сообщает «Файл испорчен», но после того как отредактируют и закроют становится доступным и рабочим.Я изначально пробовал эмулировать фтп как локальный диск, но в сравнении с WebDAV и рядом не стоит.
Ух-ты, как интересно! Не знал!
Можете подробнее описать где это в IIS настраивается?
тут всё по шагам расписано, не тупи
Здравствуйте.
При выполнении net use * http://localhost/ получаю системную ошибку 67 — не найдено сетевое имя
Что это может быть?
ошибка 67
уже все перепробовал.
Скажите что не так?
Какая ОС?
В Win 8 / Server 2012 должна быть установлена фича Desktop Experience и запущена служба Web Client. Если не установлены, после установки обязательно перезагрузитесь
C:\Users\i>net use * _http://localhost/
Системная ошибка 1920.
Доступ к этому файлу из системы отсутствует.
______________________
Как в windows 10 установить Desktop Experience? Я ничего не нагуглил.
И нет в windows 10 такой службы Web Client. Вообще. Есть служба «Веб-клиент» я полдня потратил на поиски несуществующей Web Client, хотел уже винду переустанавливать, пока случайно не увидел «Веб-клиент». Пишите пожалуйста как службы называются в windows на русском. Если человек использует windows на английском то он и помощь будет искать в англоязычном интернете.
И нет в windows 10 такой службы Web Client. Вообще. Есть служба «Веб-клиент»
ппц вы внимательный
Спасибо Вам огромное, здоровья счастья любви))
Добрый день.
Поднял все как у Вас в статье — работает (сервер 2012Р2)
Но клиенты с ХР и 2003 (да-да) подключиться не могут — ошибка 67 (если через net use).
а если ручками — неправильное имя папки. задайте другой путь.
Может подскажите куда копать ?
Спасибо
Обычные шары на 2012r2 сервере старые клиенты могут открыть?
Тут только доступ через WebDav. Обычные шары немогу проверить. но с этого клиента (2003\XP) отлично подключается по WebDAv на 2008R2.
нашел решение.
оказывается, windows 2003r2 не хочет прямой ссылке (_http://site.com), а если менять путь на (_http://site.com/folder) и так работает.
Возможно дело в отсутствии в 2012 r2 драйвера для smb 1.0 (https://winitpro.ru/index.php/2014/12/01/podderzhka-smb-1-0-v-windows-server-2012-r2/)
Также проверьте, что 80 порт на сервере со стороны старых клиентов доступен.
Всем привет! У меня в разделе Authentication нет Авторизации Windows. Почему?
Приветствую. Скорее всего не установлен компонент роли IIS: Windows Authentication (Roles->Web Server->Security-> Windows Authentication )
Привет!)
А можно каким-либо образом мониторить подключенных пользователей?
В идеале: где и что делают.
За пользователями можно смотреть, использую счетчики производительсности как в статье https://winitpro.ru/index.php/2015/02/13/monitoring-kolichestva-polzovatelej-na-sajte-iis/.
Можно парсить логи IIS или включать аудит событий на файловой системе (проблематично при больших объемах).
А как понять на какой адрес заменять winitpro.ru?
Знаю свой белый IP. Настроил на роутере проброс на локальный IP сервера и указал порт 80
«Теперь, чтобы подключить данный каталог, нужно воспользоваться командой:
net use * _https://winitpro.ru/projects»
Всё, понял. Только почему-то не могу закидывать файлы более 50мб.
В реестре \HKLM\System\CurrentControlSet\Services\WebClient\Parameters
FileSizeLimitInBytes — прописал максимально возможные 4Гб (4 294 967 295 Bytes)
Вы правите параметр реестра FileSizeLimitInBytes на клиенте? Какая версия ОС на webdav сервере и клиенте?
Здравствуйте, столкнулся с таким же затруднением. Можете написать, что вы тогда поняли?)
Судя по комментарию ему просто помгло увеличение ограничения на макс. размер файла в gfhfvtnht FileSizeLimitInBytes dtnrb HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
Ошибка была «Error 0x800700DF: The file size exceeds the limit allowed and cannot be saved»
Не помните, как получилось подключиться?
Локально все работает, удалённо нет, 80 порт прокинут.
Удалённо, если зайти через браузер, просит логин и пароль, вводишь, все равно не принимает и ничего не отображает, с локальной сети отображает дефолтный сайт iis.
UPD
Теперь и с внешней сети дефолтный сайт отображается и принимает логин и пароль, но подключить диски все равно не получается.
Настроил и успешно подключаюсь из Windows. При попытке подключиться из Linux:
Ошибка HTTP: Unauthorized
Добрый день.
Что-бы диск подключался со сквозной авторизацией от AD пользователя.
надо это делать? — https://winitpro.ru/index.php/2016/05/18/nastrojka-kerberos-avtorizacii-na-sajte-iis/
В браузере не нужна прозрачная авторизация. только по net use x: «_https://winitpro.ru/projects «
Добрый день
Немного туплю на шаге Authoring Rule
Зачем туда админа добавлять.
Если у нас авторизация Windows?
и как заставить работать net use * _https://winitpro.ru/projects
со встроенной авторизацией в домене чтоб пользователя не спрашивало учётных данных если они совпазают?
Сейчас из доменой сети не работает авторизация а снаружи ок.
имена сервера и снаружи и изнутри одинаковые webdav.contoso.ru
Отвечаю https://learn.microsoft.com/ru-ru/troubleshoot/windows-server/networking/credentials-prompt-access-webdav-fqdn-sites
Добрый день. Никогда не работал с этой технологией. Скажите, через нее можно нарезать доступ к разным папкам для разных пользователей в домене, или же будет доступна одна общая папка?