プロジェクト

全般

プロフィール

WebDav » 履歴 » バージョン 2

バージョン 1 (健二 酒井, 2019/07/02 18:45) → バージョン 2/3 (健二 酒井, 2019/07/02 18:46)

# WebDav

## 概要

HTTP 1.1を拡張したプロトコル。ファイルの編集とか共有とかを扱うために使ったりする。
ちなみにMicrosoft製らしい。

### 実装製品

IISとかApacheとかいろいろとサーバ側実装があるらしい。
Windows 10だとエクスプローラーがWebDavクライアントになる。標準で扱えるので便利。
CentOS 7標準のパッケージで提供されるApache httpdだとWebDav用モジュールもついてる。
設定のサンプルもある。@/usr/share/doc/httpd-2.4.6/httpd-dav.conf@に保存されている。

### 今回使った目的

自分のメモ帳とか、ノートとかウラガミとかに取ったメモをまとめるファイルを一か所で管理したいなっていう欲求から。

### ちょっとした工夫

「自分だけが見れる、アクセス制限をかけたディレクトリが欲しいな」と思って作業した話。一工夫必要だった。

特定のディレクトリ(以下uploadよぶ)をWebDav用ディレクトリとして公開するんだけど、
サンプルの設定だと認証はこんな感じ。


```
# Allow universal read-access, but writes are restricted
# to the admin user.
<RequireAny>
Require method GET POST OPTIONS
Require user <user_name>
</RequireAny>
```

「これだとupload以下のファイルをだれでも見れるじゃん!」思い認証の設定を変更した。


```
Require user <user_name>
```

しかしこうすると、エクスプローラーからWebDavに接続できない。
理由はエクスプローラーがアクセスしに行くとき、<user_name>になっていないから。

```
xxx.xxx.xxx.xxx - - [02/Jul/2019:16:54:07 +0900] "OPTIONS /uploads HTTP/1.1" 401 381
xxx.xxx.xxx.xxx - - [02/Jul/2019:16:54:07 +0900] "OPTIONS /uploads HTTP/1.1" 401 381
xxx.xxx.xxx.xxx - - [02/Jul/2019:16:54:07 +0900] "OPTIONS /uploads HTTP/1.1" 401 381
xxx.xxx.xxx.xxx - - [02/Jul/2019:16:54:07 +0900] "OPTIONS / HTTP/1.1" 200 -
xxx.xxx.xxx.xxx - - [02/Jul/2019:16:54:07 +0900] "PROPFIND / HTTP/1.1" 405 226
```

認証のダイアログ出る前にこのアクセスをしている走っているのが原因。うーむ。
しょうがないので

- uploadのアクセス制限は当初のものに戻して誰でも見られるようにする。
- upload/privateを作成して、そこへのアクセスを制限、upload/privateだけ使うという運用で回避。

upload/privateのアクセス制限は以下のようにした。


```
Require valid-user
```

### 気づき

以下のリストはログから気づいたこと・疑問のメモ

- ステータスコード405:そんなメソッド認めない
- ステータスコード401:認証されてない
- PROPFINDメソッド:WebDavプロトコルで追加されたメソッドらしい

### 参考資料

- apache公式サイト:https://httpd.apache.org/docs/2.4/en/mod/mod_dav.html
- 設定サンプルファイル:/usr/share/doc/httpd-2.4.6/httpd-dav.conf
- WebDavのセキュリティについて:https://www.ipa.go.jp/security/fy14/reports/webdav/sec_webdav_01.pdf