プロジェクト

全般

プロフィール

WebDav » 履歴 » バージョン 2

sylow castle, 2019/07/02 18:46

1 1 sylow castle
# WebDav
2
3
## 概要
4
5
HTTP 1.1を拡張したプロトコル。ファイルの編集とか共有とかを扱うために使ったりする。
6
ちなみにMicrosoft製らしい。
7
8
### 実装製品
9
10
IISとかApacheとかいろいろとサーバ側実装があるらしい。
11
Windows 10だとエクスプローラーがWebDavクライアントになる。標準で扱えるので便利。
12
CentOS 7標準のパッケージで提供されるApache httpdだとWebDav用モジュールもついてる。
13
設定のサンプルもある。@/usr/share/doc/httpd-2.4.6/httpd-dav.conf@に保存されている。
14
15
### 今回使った目的
16
17
自分のメモ帳とか、ノートとかウラガミとかに取ったメモをまとめるファイルを一か所で管理したいなっていう欲求から。
18
19
### ちょっとした工夫
20
21
「自分だけが見れる、アクセス制限をかけたディレクトリが欲しいな」と思って作業した話。一工夫必要だった。
22
23
特定のディレクトリ(以下uploadよぶ)をWebDav用ディレクトリとして公開するんだけど、
24
サンプルの設定だと認証はこんな感じ。
25 2 sylow castle
26 1 sylow castle
```
27
    # Allow universal read-access, but writes are restricted
28
    # to the admin user.
29
    <RequireAny>
30
        Require method GET POST OPTIONS
31
        Require user <user_name>
32
    </RequireAny>
33
```
34
35
「これだとupload以下のファイルをだれでも見れるじゃん!」思い認証の設定を変更した。
36 2 sylow castle
37 1 sylow castle
```
38
    Require user <user_name>
39
```
40
41
しかしこうすると、エクスプローラーからWebDavに接続できない。
42
理由はエクスプローラーがアクセスしに行くとき、<user_name>になっていないから。
43
44
```
45
xxx.xxx.xxx.xxx - - [02/Jul/2019:16:54:07 +0900] "OPTIONS /uploads HTTP/1.1" 401 381
46
xxx.xxx.xxx.xxx - - [02/Jul/2019:16:54:07 +0900] "OPTIONS /uploads HTTP/1.1" 401 381
47
xxx.xxx.xxx.xxx - - [02/Jul/2019:16:54:07 +0900] "OPTIONS /uploads HTTP/1.1" 401 381
48
xxx.xxx.xxx.xxx - - [02/Jul/2019:16:54:07 +0900] "OPTIONS / HTTP/1.1" 200 -
49
xxx.xxx.xxx.xxx - - [02/Jul/2019:16:54:07 +0900] "PROPFIND / HTTP/1.1" 405 226
50
```
51
52
認証のダイアログ出る前にこのアクセスをしている走っているのが原因。うーむ。
53
しょうがないので
54
55
- uploadのアクセス制限は当初のものに戻して誰でも見られるようにする。
56
- upload/privateを作成して、そこへのアクセスを制限、upload/privateだけ使うという運用で回避。
57
58
upload/privateのアクセス制限は以下のようにした。
59 2 sylow castle
60 1 sylow castle
```
61
   Require valid-user
62
```
63
64
### 気づき
65
66
以下のリストはログから気づいたこと・疑問のメモ
67
68
- ステータスコード405:そんなメソッド認めない
69
- ステータスコード401:認証されてない
70
- PROPFINDメソッド:WebDavプロトコルで追加されたメソッドらしい
71
72
### 参考資料
73
74
- apache公式サイト:https://httpd.apache.org/docs/2.4/en/mod/mod_dav.html
75
- 設定サンプルファイル:/usr/share/doc/httpd-2.4.6/httpd-dav.conf
76
- WebDavのセキュリティについて:https://www.ipa.go.jp/security/fy14/reports/webdav/sec_webdav_01.pdf