Приступаем к работе Webdav

Уже неделю я безуспешно пытаюсь заставить webdav работать на Vhost ....
Вот мои настройки:
Debian 9
Apache 2.4
Virtualmin 6.01

SuexecUserGroup "#1039" "#1038"
ServerName dav.mydom.com
DocumentRoot /home/dav/public_html
ErrorLog /var/log/virtualmin/dav.mydom.com_error_log
CustomLog /var/log/virtualmin/dav.mydom.com_access_log combined
<Directory "/home/dav/public_html">
 Options Indexes MultiViews
 AllowOverride None
 Require all granted
</Directory>
Alias /webdav /home/dav/public_html
<location /webdav>
 Dav on
 AuthType Basic
 AuthBasicProvider file
 AuthName "WebDav"
 AuthUserFile /home/dav/public_html/.htpasswd
 <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK OPTIONS>
  Require valid-user
 </Limit>
</location>
ProxyPassMatch ^/(.*.php(/.*)?)$ fcgi://localhost:8005/home/dav/public_html/$1
RemoveHandler .php
RemoveHandler .php7.0
php_admin_value engine Off

Пытаясь протестировать его с помощью трупа, я получил сообщение «Я даже не могу ввести свое имя пользователя и пройти»

[matth@www ~]# cadaver http://dav.mydom.com/webdav/
Authentication required for WebDav on server `dav.mydom.com':
Username: 
Authentication aborted!
Could not open collection:
Could not authenticate to server: rejected Basic challenge
dav:/webdav/? 

Я также протестировал, создав проход .netrc для автоматической аутентификации, но тогда мне это хорошо:

[matth@www ~]# cadaver https://dav.mydom.com/webdav
Could not access /webdav/ (not WebDAV-enabled?):
405 Method Not Allowed
Connection to `db.ducorporation.com' closed.
dav:!> 

access.log

s.r.c.ip - - [18/Jan/2018:04:03:29 +0100] "OPTIONS /test.txt HTTP/1.1" 200 4236 "-" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"
s.r.c.ip - - [18/Jan/2018:04:03:30 +0100] "HEAD /test.txt HTTP/1.1" 200 620 "https://app.dom.com/" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"
s.r.c.ip - - [18/Jan/2018:04:03:31 +0100] "OPTIONS /test.txt HTTP/1.1" 200 1146 "-" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"
s.r.c.ip - - [18/Jan/2018:04:03:32 +0100] "HEAD /test.txt HTTP/1.1" 200 620 "https://app.dom.com/" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"
s.r.c.ip - - [18/Jan/2018:04:03:32 +0100] "OPTIONS /test.txt HTTP/1.1" 200 1146 "-" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"
s.r.c.ip - - [18/Jan/2018:04:03:33 +0100] "PUT /test.txt HTTP/1.1" 405 938 "https://app.dom.com/" "Mozilla/5.0 (Windows NT 6.1; rv:57.0) Gecko/20100101 Firefox/57.0"

error.log пуст

С помощью suexec я проверяю, работает ли Apache под у надлежащего пользователя, а также доступ к любым файлам из веб-браузера после аутентификации.
Также протестировано
- не использовать местоположение , но каталог
- Отключить индексирование каталогов
- Auth none / Digest / Basic
- папка Webdav на маршруте DocumentRoot, а также подпапка
- права собственности на папку public_html переданы пользователю apache {{ 1}} - Еще кое-что, чего я не помню

При всех этих тестах я получаю ту же ошибку

Тестирование завершено с помощью клиентского приложения Firefox / litmus / cadaver / webdav с помощью Firefox и приложение webdav. Я могу читать и загружать файлы, но не могу редактировать PUT получить как 405 ошибку (то есть PUT не разрешено, но разрешено в моем разделе ) С лакмусовой бумажкой / трупом пока нет шансов сделать что-либо…

Надеюсь, я достаточно ясен
Любой ввод будет буду очень признателен

РЕДАКТИРОВАТЬ: добавлены журналы apache

Matth

0
задан 18 January 2018 в 05:21
1 ответ

Вот как мне наконец удалось заставить его работать:
Эта конфигурация работает для Apache 2.4 для виртуального хоста SSL , HTTP перенаправление на SSL .
Мне пришлось создать специальную папку, в которой пользователь Apache имеет специальный доступ для чтения / записи.

Для большей безопасности я хочу, чтобы Apache работал как конкретный пользователь, но, похоже, самый простой способ сегодня - использовать MPM- ITK , который явно несовместим с модулем MPM-Prefork , который я использую сейчас.
Попробую, как только я пойму последствия перехода с MPM-Prefork на «MPM-ITK».

Любые комментарии по улучшению безопасности приветствуются!

Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Headers "origin, content-type, cache-control, accept, authorization, if-match, destination, overwrite"
Header always set Access-Control-Expose-Headers "ETag"
Header always set Access-Control-Allow-Methods "GET, HEAD, POST, PUT, OPTIONS, MOVE, DELETE, COPY, LOCK, UNLOCK"
Header always set Access-Control-Allow-Credentials "true"

RewriteEngine On RewriteCond %{REQUEST_METHOD} OPTIONS RewriteRule ^(.*)$ blank.html [R=200,L,E=HTTP_ORIGIN:%{HTTP:ORIGIN}]
ServerName my.domain.com
DocumentRoot /home/www/public_html
ErrorLog /var/log/virtualmin/my.domain.com_error_log
CustomLog /var/log/virtualmin/my.domain.com_access_log combined
DavLockDB /home/www/public_html/DavLock
<Directory /home/www/public_html>
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://my.domain.com/$1 [R,L]
Options Indexes MultiViews SymLinksIfOwnerMatch
AllowOverride None
Require all granted
</Directory>

Alias /webdav /home/www/public_html

<Location "/webdav">
 Dav on
 DirectoryIndex none
 AuthType Basic
 AuthBasicProvider file
 AuthUserFile /home/www/public_html/.htpasswd
 AuthName "WebDav"
 <Limit GET HEAD POST PUT OPTIONS MOVE DELETE COPY LOCK UNLOCK>
  Require valid-user
 </Limit>
 <Limit  OPTIONS>
  Require all granted
 </Limit>
DavDepthInfinity off
</Location>
SSLEngine on
SSLCertificateFile /home/my/ssl.cert
SSLCertificateKeyFile /home/my/ssl.key
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCACertificateFile /home/my/ssl.ca
RemoveHandler .php
RemoveHandler .php7.0
php_admin_value engine Off
RedirectMatch ^/(?!webdav) "https://my.domain.com/webdav"
0
ответ дан 5 December 2019 в 06:48

Теги

Похожие вопросы