WHS 2011上にWebDAVフォルダをセットアップする

iPod touchを使い始めた頃からWHS v1に"Web Folders 4 WHS"というAdd-inをインストールして、低コストな自前クラウドストレージとして使っていた。

(WHSサーバを24時間運用してテラバイト単位でクラウドストレージを自分用に提供するのが低コストか?って話は置いといて。実際容量以外にはdropboxで事足りるけど。)

WHS 2011向けAdd-inの期待も高まっているんだけど、現時点ではまだ発表されていない。

ところで配布元のページに記載があるのだが、このAdd-inはUNC名による共有フォルダ、IIS仮想ディレクトリ、WebDAV、DFSを連携させる以上のことはしていないとのこと。

http://ihatelinux.blogspot.com/2007/11/new-home-server-add-in-web-folders-4.html

This add-in is nothing more than a bit of glue that wires up a few Windows sub-systems such as: Windows UNC Shares, an IIS Virtual Directory, WebDav and the Windows Distributed File System.


DFS名前空間WHSの共有フォルダをいくつかぶら下げて、IIS仮想ディレクトリのルートとしてDFS名前空間を指定してWebDAVを有効にすれば出来そうなので、WHS 2011で試してみることにする。

たぶん公開するのは簡単だ。キモはセキュリティ設定。

以下、試行錯誤中の内容です。

DFSのインストールと構成

サーバーマネージャを実行して「役割」のツリーを開くと、WHS 2011はすでにいくつかの役割がインストール済みであることが分かる。
「ファイルサーバー」の役割はインストール済みであるが、DFSのサービス提供に必要ないくつかの「役割サービス」はインストールされていないようだ。
「役割サービスの追加」を実行して、「分散ファイルサービス」「DFS名前空間」を追加する。

f:id:yaboratory:20110613214551j:image

分散ファイルシステム」を選択すると「DFS名前空間」と「DFSレプリケーション」が一緒に有効にされる。レプリケーションは今回は使わないので「DFS名前空間」のみ選択する。

「DFS名前空間」を追加すると「DFS名前空間を作成」というウィザードが実行される。

f:id:yaboratory:20110613214735j:image

ここでDFS名前空間の名前("\\<サーバー名>\"というUNCパスになる)を指定する。

f:id:yaboratory:20110613214900j:image

名前空間の種類を選択します」は、WHSはドメインに参加していないので「スタンドアロン名前空間」しか選択できない。

続いてDFS名前空間にぶら下げる共有フォルダ("\\<サーバー名>\\<共有フォルダ>"というパス)を指定する。

この時点で一応チェック。\\<サーバー名>\という名前の共有フォルダが作成されていて、その下位にショートカットっぽいアイコンでぶら下げた共有フォルダにアクセスできることを確認。
DFS名前空間に対するアクセス権の設定を何もしていなければ、元々の各共有フォルダのアクセス権設定になっているはず。

仮想ディレクトリの追加

Default Web Siteのサブフォルダに先に作成したDFS共有を仮想ディレクトリとして追加する。
IISマネージャから「Default Web Site」を右クリックして「仮想ディレクトリの追加」を実行
エイリアスと物理パスを指定する。
https:///<エイリアス>/
というパスで公開される。

f:id:yaboratory:20110613212546j:image

作成したエイリアスをクリックして「認証」を実行、匿名認証は無効、基本認証を有効にしておく。
Default Web Siteのルートディレクトリは匿名認証がデフォルトで有効なので、ここの設定が変わってないことを確認。でないと通常のWHS Webアクセス画面にアクセスできなくなる。

WebDAVのインストール

"IIS 7.5 WebDAV"でググってみたら、以下のページがウォークスルーとして使えそうだ。

http://learn.iis.net/page.aspx/350/installing-and-configuring-webdav-on-iis-7/

「サーバーマネージャー」>「役割」>「Webサーバー (IIS)」から「役割サービスの追加」を実行して「WebDAV発行」を追加。

IISマネージャから「Default Web Site」を選択して「WebDAVオーサリング規則」を実行、「WebDAVの有効化」を実行。
「オーサリング規則の追加」を実行して、

  • 「アクセスの許可」は「すべてのコンテンツ」
  • 「このコンテンツへのアクセスを許可する」はリモートでアクセスするユーザーアカウント名
  • 「アクセス許可」はすべてチェックボックスは無効

「Default Web Site」のルートディレクトリはWebDAVとしては発行するんだけど、このディレクトリにはアクセスさせたくないので、アクセス権は与えない。アクセスするときはこの後指定する仮想ディレクトリを直接指定する。

さらに「WebDAV設定」をクリックして、「WebDAVの動作」>「SSLアクセスが必要」を「True」に変更。

f:id:yaboratory:20110614005623j:image

作成した仮想ディレクトリを選択して、同じく「WebDAVオーサリング規則」を実行。
「オーサリング規則の追加」を実行して、

  • 「アクセスの許可」は「すべてのコンテンツ」
  • 「このコンテンツへのアクセスを許可する」はリモートでアクセスするユーザーアカウント名
  • 「アクセス許可」はすべてチェックボックスは有効

ここまで設定して、iOSのGoodReaderでWebDAVとしてアクセスできることを確認済み。
Webブラウザでアクセスして、余計なディレクトリに匿名アクセスできないこと、非SSLでアクセスできないことなどを確認。

ちなみに、Webブラウザでhttps経由で作成した仮想ディレクトリにアクセスしてもエラーが表示されるだけ。
これはIE8以降、IEからWebDAVクライアント機能は削除されたためらしい。

IE8以降がインストールされたWindowsでは、Windows Explorerの「ネットワークプレース」という機能を利用してWebDAVにアクセスできる。