- IIS: Webdav over SSL
- Сайт является не обновляемой с 20.07.2019 копией сайта alex-white.ru
- С клиентского компьютера с Windows нельзя получить доступ к веб-папке WebDAV
- Симптомы
- Причина
- Обходной путь
- Почему компьютер под управлением ОС Windows не может подключить сетевую папку по протоколу WebDAV?
- Windows webdav no ssl
IIS: Webdav over SSL
Сайт является не обновляемой с 20.07.2019 копией сайта alex-white.ru
WebDAV (Web Distributed Authoring and Versioning) или просто DAV — набор расширений и дополнений к протоколу HTTP, поддерживающих совместную работу пользователей над редактированием файлов и управление файлами на удаленных веб-серверах.
1 На Win server 2012 R2 настроить Webdav средствами IIS. Встроенным клиентом в Win 8.1 подключится к Webdav серверу.
2 Настроить шифрованое соединение через https (ssl)
3 Подключится с мобильных ОС (android, win phone 8.1)
1. Берём win 2012 R2 и устанавливаем IIS с поддержкой WebDav Publishing.
2. Делаем нужную А запись в DNS сервере, по которой будем обращаться к Webdav. К примеру webdav.mydomain.ru. Создаём домен (не забыв указать нужные права на хомяк) в IIS и включаем поддержку Webdav в WebDAV authoring rule. Создаём правило подключения пользователей — WebDAV authoring, указав нужные параметры доступа и выбрав пользователей\группуы. Далее в свойствах сайта заходим в раздел Authentication, и разрешаем только Windows Authentication. По сути минимум настроек сделано, WebDAV будет работать.
3. Настраиваем клиента. В домашних Win ОС клиент по умолчанию доступен. В серверных нужно доставить Desktop Experience в Features. Подключать можно с консоли NET USE * http://webdav.mydomain.ru в результате будет подключён сетевойдиск или сетевая папка. Но это по протоколу HTTP и при этом данные будут ходить в открытом виде, кроме пароля авторизации. Для шифрования нужно использовать WebDAV over SSL.
4. Настраиваем сервер IIS для работы WebDAV по протоколу https. Нам понадобится сертификат SSL. Его можно купить
440р/год, можно получить у китайцев, подробней о заказе тут. Или создать самоподписной сертификат. Первые 2 способа не требуют добавления на каждом клиенте, сертификата в довереннные, третий подразумивает добавление его в доверенные. Как добавить первые 2 сертификата, рассказано тут и с этим должно быть всё просто. IIS может формировать самоподписные сертификаты, но CN в них обычно = имени хоста, а не тому URL по которому вы подключаетесь к серверу. По этому сертификат не будет валидным. Для формирования самоподписного сертификата для Webdav На IIS, нужна утилита SelfSSL входящая в комплект (IIS) 6.0 Resource Kit Tools. О сертификатах в IIS описано подробно тут. Как сгенерировать сертификат расказано тут, я же укажу строку с параметрами. Сама утилита обычно лежит по пути C:\Program Files (x86)\IIS Resources\SelfSSL. Вызываем её с параметрами:
selfssl.exe /N:CN=webdav.mydomain.ru /V:1000
После добавления сертификата на сервер, нужно зайти в раздел Edit bindings в IIS нашего домена и сделать привязку имени к сертификату.
После успешных действий можно подключаться клиентом WebDav по протоколу HTTPS.
NET USE * https://webdav.mydomain.ru /USER:ИмяПользователя Пароль
5. Подключение мобильных устройств к WebDav.
Если используем самоподписной сертификат, то нужно его добавить на устройстве в доверенные!!
Для Win Phone 8.1 я не нашёл родного клиента и использую WebDav File. Всё бы ничего, но вот хочется отправлять фотки и файлики из приложений прям в WebDav как в MS OneDrive нативно и просто в пару кликов.
Полезные ссылки:
На этом всё. Вот кучка полезных ссылок для шаманства.
Значение времени жизни кэша для WebDAV в Windows 7 – 60 секунд. Чтобы изменить это значение, вам нужно изменить ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRxDAV\Parameters\FileNotFoundCacheLifeTimeInSec. Эта мера необходима, т.к. не существует механизма, который бы чистил кэш по требованию.
То знайте, вы защищены обновлением от атаки «denial of service» Максимальный размер скачиваемого файла =
50мб. Решить можно правкой реестра как указано на сайте MS. Или тут, но с картинками
С клиентского компьютера с Windows нельзя получить доступ к веб-папке WebDAV
В этой статье содержится справка по решению проблемы, из-за которой нельзя получить доступ к веб-папке WebDAV с клиентского компьютера с Windows.
Исходная версия продукта: Windows 10 — все выпуски, Windows 7 Пакет обновления 1, Windows Server 2012 R2
Исходный номер КБ: 912152
Симптомы
С клиентского компьютера с Windows нельзя получить доступ к веб-папке WebDAV. При попытке сделать это могут возникнуть следующие симптомы:
При использовании UNC-пути для доступа к веб-папке вы получаете сообщение об ошибке, аналогичное следующему:
\\server\webfolder\folder недоступен. Возможно, у вас нет разрешения на использование этого сетевого ресурса.
Обратитесь к администратору этого сервера, чтобы узнать, есть ли у вас разрешения на доступ.
Подключенное к системе устройство не работает.
ошибка 31 = ERROR_GEN_FAILURE
При составлении письма драйвера для доступа к веб-папке вы получаете сообщение об ошибке, аналогичное следующему:
Windows не может читать с этого диска. Диск может быть поврежден или использовать формат, несовместимый с Windows.
При попытке мимикировать веб-папку в командной подсказке вы получите следующее сообщение об ошибке:
Кроме того, каждый раз, когда вы пытаетесь получить доступ к веб-папке, потребление памяти увеличивается для процесса Svchost.exe, который содержит службу WebClient. Это увеличение может быть примерно на 20 мегабайт (МБ) для каждые 20 000 файлов в веб-папке. Память не освободиться при остановке службы WebClient. Память будет освобождена только в том случае, если компьютер перезагружен.
Причина
Эта проблема может возникнуть при следующих условиях:
На клиентских компьютерах работает одна из следующих конфигураций:
- Windows XP с Пакет обновления 1 (SP1) и обновлением для системы безопасности 896426
- Windows XP с пакетом обновления 2 (SP2)
- Windows XP Professional x64 Edition
- Windows 7
- Windows 8
- Windows 8.1
Папка WebDAV содержит много файлов. Например, папка содержит не более 20 000 файлов. По умолчанию в Windows XP в одной веб-папке будет 1000 файлов. Этот номер основан на параметре по умолчанию для следующего поднажатия реестра:
- Путь: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\
- Значение: FileAttributesLimitInBytes
- Тип данных: DWORD
- Значение по умолчанию: 1 000 000 десятичных значений (1 МБ)
- Описание: этот подразряд реестра определяет максимальный общий размер всех атрибутов файла в одной папке, разрешенный перенаправлением WebDAV. Это ограничение распространяется на все ответы PROPFIND и PROPPATCH.
Проблема возникает из-за того, что размер всех атрибутов файла, возвращаемого сервером WebDAV, значительно превышает ожидаемый. По умолчанию этот размер ограничен 1 МБ. Это ограничение по соображениям безопасности. Дополнительные сведения см. в сообщении об ошибке копирования папки при скачии файла размером более 50000000000 в веб-папке.
Обходной путь
В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о том, как создать и восстановить реестр, см. в этой теме.
Чтобы обойти эту проблему, добавьте запись DWORD с именем FileAttributesLimitInBytes в следующий подкоменд реестра:
Настройте значение реестра FileAttributesLimitInBytes в нужном размере и перезапустите службу WebClient. Для этого выполните следующие действия:
Щелкните Пуск, затем Выполнить и введите regedit. Затем нажмите ОК.
Найдите и откройте следующий подраздел реестра:
В меню Правка выберите пункт Создать, а затем Параметр DWORD.
Введите FileAttributesLimitInBytes в имя DWORD и нажмите ввод.
Щелкните правой кнопкой мыши FileAttributesLimitInBytes и выберите «Изменить».
В поле «Значение» введите нужное значение и нажмите кнопку «ОК». Например, если веб-папка содержит 20 000 файлов, введите 20000000 в поле данных «Значение».
Если значение по умолчанию — 1 000 000 (1 МБ), Windows будет нумеровать не более 1000 файлов в одной папке. Фактическое максимальное число файлов может отличаться в зависимости от количества атрибутов файла или свойств файла. По умолчанию служба WebClient не требует определенных свойств WebDAV. Поэтому сервер возвращает все атрибуты файла. Встроенный Microsoft Office перенаправление веб-ветвей запросит определенные свойства WebDAV.
Закройте редактор реестра.
Остановите и перезапустите службу WebClient. Для этого выполните следующие действия:
Нажмите кнопку «Начните», выберите «Выполнить», «Введите cmd» и нажмите кнопку «ОК».
Введите следующие команды и нажмите ввод после каждой команды:
Почему компьютер под управлением ОС Windows не может подключить сетевую папку по протоколу WebDAV?
В виду требований по безопасности операционной системы Windows 7, пользователи не могут по умолчанию подключить к WebDAV.
Выберите один из следующих методов для подключения к WebDAV общедоступных папок на QNAP NAS из ОС Windows 7.
A. Программное обеспечение сторонних производителей (рекомендуется);
В. Понижение уровня безопасности Windows 7 (не рекомендуется);
C. Используйте доверенное подключение SSL (требуются навыки IT-администратора).
A. Стороннее программное обеспечение (рекомендуется).
Пользователям рекомендуется подключаться к папкам WebDAV на сетевом накопителе посредством стороннего программного обеспечения для Windows 7. Ниже описана процедура подключения с помощью программы NetDrive.
1. Загрузите NetDrive с сайта http://www.netdrive.net/ и установите утилиту.
2. Запустите NetDrive.
3. Нажмите New Site (Новый сайт) для создания подключения к QNAP NAS.
- Сайт: Введите имя для этого подключения.
- IP или URL сайта: Введите IP-адреса или доменное имя сетевого накопителя, вслед за ним введите имя папки WebDAV, например 192.168.1.6/myshare. Также можно ввести имя MyCloudNAS, например mynas.mycloudnas.com/myshare.
- Тип сервера: Выберите WebDAV в выпадающем меню. Обратите внимание, что номер порта будет изменен на 80 для стандартного подключения WebDAV к QNAP NAS.
- Диск: Выберите букву диска для подключения к папке WebDAV.
- Аккаунт: Введите имя пользователя для входа на сетевой накопитель.
- Пароль: Введите пароль для входа на сетевой накопитель.
4. Нажмите Save (Сохранить).
5. Если требуется установить шифрованное соединение SSL, то нажмите на кнопку Advanced и установить галку в поле Use HTTPS.
6. Нажмите Connect (Подключить).
7. Подключитесь к папкам WebDAV, используя букву диска, назначенную в NetDrive из Windows 7.
B. Понижение уровня безопасности Windows 7 (не рекомендуется, только для опытных пользователей).
Следуйте нижеприведенной инструкции для понижения уровня безопасности Windows 7.
1. Откройте редактор реестра, нажмите Пуск и в строке поиска введите regedit.exe (Требуются права администратора).
2. Перейдите в следующий раздел:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WebClient\Parameters
3. Измените значение переменной BasicAuthLevel на 2:
«BasicAuthLevel»=dword:00000002
4. Перезагрузите компьютер.
5. Подключитесь к папкам WebDAV из Windows 7 следующим образом:
5.1. Откройте меню Пуск и нажмите правой кнопкой мыши на пункте Компьютер. В появившемся меню выберите Подключить сетевой диск.
5.2. Введите в поле Папка адрес сетевого хранилища.
5.3. Установите флажок Восстанавливать при входе в систему.
5.4. Нажмите кнопку Готово.
C. Используйте доверенное подключение SSL (требуются навыки IT-администратора).
Вы можете подключиться к папкам WebDAV, используя доверенное подключение SSL. Данная процедура не будет приводиться здесь. Требуется нижеследующее:
- Включить безопасное подключение (Secure Connection — SSL) для веб-сервера (порт по умолчанию 8081) на сетевом накопителе (Network Services (Сервисы сети) > Web Server (Веб-сервер)).
- Сетевой накопитель должен иметь SSL-сертификат, выданный доверенным корневым CA, которому доверяют клиенты Windows 7.
- Имя SSL-сертификата должно быть таким же, как полное имя домена (Full Qualified Domain Name — FQDN), использующееся для подключения к сетевому накопителю.
- Вы должны подключиться к папкам WebDAV, используя имя FQDN.
- Вы можете импортировать SSL-сертификат в System Administration (Администрирование системы) > Security (Безопасность) > SSL Secure Certificate & Private Key (Сертификат безопасности SSL и личный ключ) на сетевом накопителе.
Windows webdav no ssl
Начатая в статье Шаблоны MS Office в корпоративной сети (часть 2). Использование WebDAV тема использования WebDAV, оказалось полна неожиданных сложностей и неочевидных моментов. Конечно, можно было бы просто отказаться от использования этого механизма, но я считаю, что некоторые сложности не перекрывают потенциальных преимуществ от внедрения WebDAV (причем, не только для ограниченной задачи “распространения шаблонов”). Поэтому, о части неочевидностей я хочу рассказать сегодня.
Что именно хочется обговорить?
- Развертывание и настройка запуска службы WebDAV-клиента
- Правильное задание задание UNC-имен при обращении к WebDAV-ресурсам
- Использование различных типов аутентификации (анонимная, Basic, Windows, …)
Вопрос #1. Развертывание и настройка запуска службы WebDAV-клиента
Здесь нас ожидает сразу 2 вопроса:
- Установка (подключение) WebDAV клиента на машинах, где он не был установлен
- Настройка автоматического запуска службы WebClient
Установка (подключение) WebDAV клиента на машинах, где он не был установлен. Суть проблемы в том, что служба WebClient и драйвер-редиректор mrxdav.sys на серверных ОС являются частью необязательного компонента Windows (который называется Desktop Experience) и потенциально могут быть не установлены серверах
Собственно, вся задача сводится к установке данного компонента (вручную или с использованием Server Manager для массовой установки).
В настольных же ОС, на сколько мне удалось выяснить, данный компонент является неотключаемым т.е. ставится везде по-умолчанию.
Настройка автоматического запуска службы WebClient. Как это ни странно, но по-умолчанию служба WebClient настроена для запуска по триггеру, в ручном (Manual) режиме. Видимо, по задумке разработчиков, служба должна была запускаться при первом обращении к ней от драйвера MRXDAV.SYS, но, увы, это работает не везде.
Поэтому мы принудительно выставим для службы вариант запуска Automatic, а чтобы сделать настройку сразу для всех машин в сети, воспользуемся механизмами GPO:
- В редакторе GPO переходим на узел Computer Configuration\Preferences\Control Panel Settings\Services, в правой части вызываем контекстное меню и выбираем New\Service
- В окне настройки выбираем сервис WebClient (поле Service name), тип старта Automatic (поле Startup) и действие, которое требуется при применении политики – Start service (поле Service action). Последнее поле нужно чтобы не перезагружать лишний раз компьютер
Все, осталось перезапустить машины или принудительно применить политику.
Вопрос #2. Правильное задание задание UNC-имен при обращении к WebDAV-ресурсам
К сожалению, найти исчерпывающее описание того, как драйвер-редиректор MRXDAV.SYS определяет, что введенный UNC путь нужно перевести в WebDAV-запрос, и как осуществляется этот перевод, мне не удалось. Поэтому здесь я привожу результаты вычитанных форумов и личных экспериментов:
- Лучше всегда указывать полную строку адреса (с обязательной частью @ ), т.е. в формате \\ @ \ \DavWWWRoot, т.е. в нашем случае это будет \\romanovmihail.cloudapp.net@80\Templates\DavWWWRoot
- Для запросов по HTTPS вместо номера порта указывать мнемонику SSL. Т.е. наш адрес для HTTPS будет выглядеть так \\romanovmihail.cloudapp.net@ssl\Templates\DavWWWRoot
- При указании номера порта последний элемент DavWWWRoot можно опускать, т.е. указывать просто:
\\romanovmihail.cloudapp.net@80\Templates\ или \\romanovmihail.cloudapp.net@ssl\Templates\
Более того, судя по логам обращения к серверу, последний вариант – самый предпочтительный.
Вопрос #3. Использование различных типов аутентификации (анонимная, Basic, Windows, …)
Клиент WebDAV поддерживает практически все, основанные на передачи функции от логина и пароля типа аутентификации: Basic, Digest и Windows (включая NTLM, Kerberos, …) – а также анонимная.
Анонимная аутентификация. Иначе говоря, отсутствие аутентификации. В этом режиме WebDAV клиент работает по умолчанию (впрочем, как и большинство HTTP-based клиентов), т.е. первый запрос он посылает без аутентификационных данных, и только если сервер требует аутентифицировать себя, запрашивает (если надо) и пересылает credentials пользователя.
Поэтому на стороне клиента никакой настройки не требуется, но она требуется на стороне IIS. Впрочем, здесь все довольно просто (кроме последнего шага) – посмотрим как это выглядит для варианта, предложенного в предыдущей статье:
- Для узла Templates открываем настройку аутентификации и разрешаем анонимную, но запрещаем Windows
- Затем щелкаем на строчку анонимной аутентификации и в контекстном меню вызываем её свойства (пункт контекстного меню Edit…). В открывшемся диалоге выбираем пункт Specific user, а затем того пользователя, от имени которого будет идти обращение к физической папке с шаблонами. В принципе, нам подойдет и указанный по умолчанию IUSR, надо только не забыть дать ему права на папку
- Поднимаемся на узел Default Web Site, вызываем опцию WebDAV Authoring Rules, а затем на панели Actions настройки WebDAV (пункт WebDAV Settings…). Здесь разрешаем анонимное считывание (пункт Allow Anonymous Property Queries)
Сохраняем все изменения и все – можем обращаться к узлам WebDAV безо всякой аутентификации
Basic аутентификация. Её можно рекомендовать только в одном случае – мы хотим обращаться к ресурсам, лежащим за пределами нашего домена, т.е. на наших WebDAV серверах не включать и использовать только разве что с клиента.
Из-за своей потенциальной небезопасности данный вид аутентификации по умолчанию включен только для SSL-соединений. За настройку отвечает ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters, параметр BasicAuthLevel.
Он может принимать 3 возможных значения:
- 0 – Basic-аутентификация полностью запрещена
- 1 – Basic-аутентификация разрешена для SSL-соединений (значение по умолчанию)
- 2 – Basic-аутентификация разрешена для любых типов соединений
Понятно, что править значение реестра на каждой машине не очень практично. Потому сделаем все опять через групповые политики. Готовой настройки (шаблона) для управления WebClient, к сожалению нет, но мы можем воспользоваться механизмом прямой правки реестра:
- В редакторе GPO переходим на узел Computer Configuration\Preferences\Windows Settings\Registry
- На правой части в контекстном меню выбираем пункт New\Registry Item
- В диалоге настройки задаем следующие параметры:
- Action: Replace
- Hive: HKEY_LOCAL_MACHINE
- Key Path: SYSTEM\CurrentControlSet\Services\WebClient\Parameters
- Value Name: BasicAuthLevel
- Value Type: REG_DWORD
- Value Type:
Windows-аутентификация. У этого способа аутентификации есть один замечательный аспект, который отсутствует у остальных (Digest и Basic) – это возможность использовать контекст пользователя, вошедшего в доменную сеть. Или, проще говоря, пароль у пользователя спросят только 1 раз – при авторизации на рабочей машине, а не каждый раз при обращении к ресурсу (по сути, готовый механизм Single SignOn)!
Но есть одна загвоздка (как же без этого)… Клиент WebDAV, по умолчанию считает все сервера с полным FDQN (а говоря проще, любые имена с точкой) не доверенными, и отказывается пересылать им пользовательские credentials.
Как же решить эту проблему? Ответ – с помощью еще одно параметра в ключе реестра службы WebClient. Конкретно нас интересует ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters и параметр AuthForwardServerList (это многостроковый параметр или в терминах RegEdit – REG_MULTI_SZ).