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に接続できない。
理由はエクスプローラーがアクセスしに行くとき、になっていないから。
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
Windows 7でのDLサイズ制限¶
サーバーのスペックの問題なのかな、数十MBぐらいのファイルをコピーするとき最後に各つく。
と思って何か制限とか調べてたら見つけた。
Windows7はデフォルトだと50MBまでしかダウンロードできないらしい。
Windows10でどうなっているかは調べていないなぁ。
10でWebDavクライアントがまともになったという噂も聞いたし、調べてみようかねぇ。
気づき¶
以下のリストはログから気づいたこと・疑問のメモ
- ステータスコード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
- Web フォルダーから 50000000 バイトより大きいファイルをダウンロードするときのフォルダーのコピー エラー メッセージ:https://support.microsoft.com/ja-jp/help/900900/folder-copy-error-message-when-downloading-a-file-that-is-larger-than