LINUX.ORG.RU
ФорумAdmin

Не корректно работает WebDav-server (Linux) на стандартном клиенте Windows 7/10/11

 


0

1

Доброго времени суток.

Поднят сервер WebDav на Linux Apach2:

cat etc/apache2/conf-available/webdav.conf

DavLockDB /var/www/DavLock
Alias /webdav /var/www/webdav
Alias /share /var/www/webdav
<Directory /var/www/webdav>
    DAV On
    AuthType Basic
    AuthName "private area"
    AuthBasicProvider PAM
    AuthPAMService apache
    Require valid-user
</Directory>

Машина с WebDav находится в изолированной от пользователей сети. Доступ к машине осуществляется через прокси на nginx:

(изначальный конфиг)
cat /etc/nginx/conf.d//webdav.conf

server {
    listen 80;
    server_name webdav.servername.lan;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name webdav.servername.lan;
    include ssl/ser.ssl;

    allow 0.0.0.0/0;
    access_log off;
    open_file_cache_errors off;

    location / {
        proxy_pass http://ip_address:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        client_max_body_size 256M;
    }
}
На машинах с Linux всё отлично работает, сетевой ресурс подключается, с ним можно работать.

А вот на машинках c Windows была проблема. При попытке подключить сетевой ресурс как диск в проводнике по адресу:
https://webdav.servername.lan/webdav
Проводник запрашивал логин/пароль и после этого выдавал ошибку:

Windows не может получить доступ к webdav.servername.lan Не найдено сетевое имя

На сайте social.technet.microsoft.com, а так же на sysadmins.ru нашел совет о внесении изменений для отключения требований проверки SSL:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters]
"BasicAuthLevel"=dword:00000002
После исправления реестра в Windows, на сервере nginx были внесены изменения:

(измененный конфиг)
cat /etc/nginx/conf.d//webdav.conf

server {
    listen 80;
    server_name webdav.servername.lan;

    allow 0.0.0.0/0;
    access_log off;
    open_file_cache_errors off;

    location / {
        proxy_pass http://ip_address:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        client_max_body_size 256M;
    }
}

server {
    listen 443 ssl http2;
    server_name webdav.servername.lan;
    include ssl/ser.ssl;

    allow 0.0.0.0/0;
    access_log off;
    open_file_cache_errors off;

    location / {
        proxy_pass http://ip_address:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        client_max_body_size 256M;
    }
}
Заработало, но через раз. Если диск отключить, и повторно попытаться подключить - не факт, что подключиться. Иногда сетевой ресурс не с первого раза подключается.

P.S. Сторонние клиенты, например WinSCP или «Диск О:» (от mail.ru) работают корректно с ресурсом https://webdav.servername.lan/webdav через https://. В связи с этим я предположил, что проблема не со стороны сервера WebDav, а скорее всего в самом Windows.
Но при этом, к машинке Windows корректно подключается сетевой ресурс от mail.ru https://webdav.cloud.mail.ru/ именно через https://, что приводит к мысли, что что то не так именно на WebDav-сервере или nginx-прокси, и Windows здесь не причем.

В Интернете, методом гугления, нашел кучу подобных постов с вопрошанием о помощи, которые или остались без ответа, или был дан совет в реестре отключить проверку SSL, что так же вопрошающим (в большинстве случаев) не помогло.

Прошу помощи! Что именно в этой схеме нужно исправить (предположительно или на WebDav-сервере или nginx-прокси), что бы в Windows сетевой ресурс по протоколу WebDav работал без нареканий.
Правка реестра - это конечно хорошо, но не у всех пользователей есть такая возможность. Хотелось, бы, что бы всё заработало без дополнительных настроек со стороны пользователя.

Заранее спасибо всем ответившим.

★★★★★

1) в винде некорректная реализация webdav-клиента, а мейлру видимо накостылили себе совместимость

вот пример https://www.pvsm.ru/nginx/67190 (правда это не то что у тебя но только проблемы с виндовым webdav-ом)

2) зачем тебе апач если в nginx он и так есть? по ссылке как раз описание как подружить с виндой

сам ничего из этого не проверял, просто вспомнил что читал ту статью и там тоже винда vs webdav

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax
  1. зачем тебе апач если в nginx он и так есть?

Это разные машины в разных подсетях.

На машине, куда требуется стучаться по WebDav - стоит апач.
Вторая машина - это nginx прокси.

Почему что где стоит, ответ тривиален - так исторически сложилось. И поменять ничего не получится…

ivanlex ★★★★★
() автор топика
Ответ на: комментарий от firkax

вот пример https://www.pvsm.ru/nginx/67190

В этой статье развирается реализация WebDav на основе nginx.
У меня WebDav поднят на апаче.

Был бы признателен, на подобную статью по апачу.
Возможно здесь проблема именно в настройках апача.

ivanlex ★★★★★
() автор топика

Помнится, когда мы осваивали owncloud/nextcloud, было смешно: монтировать сетевую папку при помощи проводниковского гуя венда отказывалась, а net use * PERSISTENT:YES и т.д. работал. Служба web client же в auto? Не падает? Можешь еще поснифать днс-трафик от клиента, вдруг чего увидишь. Да и не только днс.

thesis ★★★★★
()
Ответ на: комментарий от thesis

Тоже помню такие случаи.
Служба webclient на Windows не падает, работает корректно.

Быть может кто то уже сталкивался (а кто то полюбому сталкивался, кто расшаривал инфу через WebDav и пытался присоединить ресурс на Windows). Думал что уже существует готовый рецепт.

ivanlex ★★★★★
() автор топика