序章

WebDAV は、ユーザーがリモートサーバー上のファイルを管理できるようにするHTTPプロトコルの拡張機能です。 WebDAVサーバーを使用する方法はたくさんあります。たとえば、WordまたはExcelドキュメントをWebDAVサーバーにアップロードして、同僚と共有することができます。 URLを指定するだけで、音楽コレクションを家族や友人と共有することもできます。 すべてがオペレーティングシステムに直接組み込まれているため、追加のソフトウェアをインストールしなくても、これらすべてを実現できます。

この記事では、SSLとパスワード認証を使用してWindows、Mac、およびLinuxからのWebDAVアクセスを有効にするようにApacheWebサーバーを構成します。

前提条件

このガイドを開始する前に、次のものが必要です。

  • Ubuntu20.04サーバー。 Ubuntu 20.04 を使用した初期サーバー設定に従って、sudoが有効な非rootユーザーを作成します。
  • サーバーのパブリックIPアドレスに解決されるドメイン名。 ドメインとDNSは、これを設定する方法を説明しています。
  • ドメインにサービスを提供するように構成されたApacheWebサーバーの場合、 Ubuntu 20.04チュートリアルにApacheWebサーバーをインストールする方法を完了してこれを設定できます。必ずステップ5—仮想ホストの設定に従ってください。 この前提条件の一部として。
  • ドメイン名のSSL証明書。 これを行う方法については、 Ubuntu20.04でLet’sEncryptを使用してApacheを保護する方法ガイドに従ってください。

WebDAVに必要なサーバーリソースはごくわずかであるため、WebDAVサーバーを起動して実行するには、任意のサイズの仮想マシンで十分です。

最初のステップを開始するには、sudo対応のroot以外のユーザーとしてサーバーにログインします。

ステップ1—WebDAVApacheモジュールを有効にする

Apache Webサーバーは、オプションのモジュールとして多くの機能を提供します。 これらのモジュールを有効または無効にして、Apacheの機能を追加および削除できます。 そのWebDAV機能は、Apacheと一緒にインストールしたモジュールに含まれていますが、デフォルトでは有効になっていません。 a2enmod ユーティリティを使用して、ApacheのWebDAVモジュールを有効にします。 次の2つのコマンドは、WebDAVモジュールを有効にします。

  1. sudo a2enmod dav
  2. sudo a2enmod dav_fs

ここで、Apacheを再起動して、新しいモジュールをロードします。

  1. sudo systemctl restart apache2.service

これで、WebDAVモジュールがロードされて実行されます。 次のステップでは、WebDAVを介してファイルを提供するようにApacheを構成します。

ステップ2—Apacheの構成

このステップでは、ApacheがWebDAVサーバーを実装するために必要なすべての構成を作成します。

まず、次の場所にWebDAVルートフォルダを作成します。 /var/www/webdav これは、WebDAVで利用できるようにするファイルを保持します。

  1. sudo mkdir /var/www/webdav

次に、Apacheのユーザーを設定します。 www-data、WebDAVディレクトリの所有者になるには:

  1. sudo chown www-data:www-data /var/www/webdav

次に、ApacheがWebDAVユーザーがアクセスしているファイルを管理およびロックするために使用するデータベースファイルの場所を作成する必要があります。 このファイルは、Apacheで読み取りおよび書き込み可能である必要がありますが、機密情報が漏洩する可能性があるため、Webサイトから入手できないようにする必要があります。

で新しいディレクトリを作成します mkdir データベースファイルのユーティリティ /usr/local/apache/var/:

  1. sudo mkdir -p /usr/local/apache/var/

The -p オプションは mkdir 指定したパスにすべてのディレクトリが存在しない場合にそれらを作成するユーティリティ。

次に、新しいディレクトリの所有者とグループをApacheのユーザーとグループに設定します。 chown 効用:

  1. sudo chown www-data:www-data /usr/local/apache/var

次に、ドメイン名に関するApache構成を保持するVirtualHostファイルを編集する必要があります。 このファイルはにあります /etc/apache2/sites-enabled/ で終わります le-ssl.conf Certbotを使用してSSL証明書を登録した場合。

テキストエディタでVirtualHostファイルを開きます。

  1. sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf

最初の行に、 DavLockDB 指令:

/etc/apache2/sites-enabled/your_domain-le-ssl.conf
DavLockDB /usr/local/apache/var/DavLock
. . .

次に、以下を追加します AliasDirectory 内部のディレクティブ <VirtualHost> 他のすべてのディレクティブに続くタグ:

/etc/apache2/sites-enabled/your_domain-le-ssl.conf
. . .
Alias /webdav /var/www/webdav

<Directory /var/www/webdav>
    DAV On
</Directory>

Alias ディレクティブは、リクエストをにマップします http://your.server/webdav/var/www/webdav フォルダ。

Directory ディレクティブは、ApacheにWebDAVを有効にするように指示します。 /var/www/webdav フォルダ。 mod_dav の詳細については、Apacheドキュメントを参照してください。

最終的なVirtualHostファイルは次のようになります。 DavLockDB, Alias、 と Directory 正しい場所のディレクティブ:

/etc/apache2/sites-enabled/your_domain-le-ssl.conf
DavLockDB /usr/local/apache/var/DavLock
<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerAdmin admin@your_domain
        ServerName your_domain
        ServerAlias your_domain
        DocumentRoot /var/www/your_domain
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLCertificateFile /etc/letsencrypt/live/your_domain/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/your_domain/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf

        Alias /webdav /var/www/webdav

        <Directory /var/www/webdav>
            DAV On
        </Directory>

</VirtualHost>
</IfModule>

Apacheの設定を編集しているときに構文エラーが発生すると、起動を拒否します。 Apacheを再起動する前に、Apacheの構成を確認することをお勧めします。

使用 apachectl 構成を確認するユーティリティ:

  1. sudo apachectl configtest

構成にエラーがない場合は、 apachectl 印刷します Syntax OK. これを受け取ったら、Apacheを再起動して新しい構成をロードしても安全です。

  1. sudo systemctl restart apache2.service

これで、ApacheをWebDAVサーバーとして構成し、 /var/www/webdav. ただし、認証はまだ構成または有効化されていないため、サーバーにアクセスできるすべてのユーザーがファイルの読み取り、書き込み、および編集を行うことができます。 次のセクションでは、WebDAV認証を有効にして構成します。

ステップ3—WebDAVに認証を追加する

使用する認証方法は、ダイジェスト認証と呼ばれます。 ダイジェスト認証は、特にHTTPSと組み合わせた場合に、WebDAV認証のより安全な方法です。

ダイジェスト認証は、WebDAVサーバーへのアクセスを許可されているユーザーのユーザー名とパスワードを格納するファイルで機能します。 と同じように DavLockDB ダイジェストファイルは、Apacheが読み書きでき、Webサイトから提供できない場所に保存する必要があります。

すでに作成したように /usr/local/apache/var/ この目的のために、ダイジェストファイルもそこに配置します。

まず、という空のファイルを作成します users.password/usr/local/apache/var/ とともに touch 効用:

  1. sudo touch /usr/local/apache/var/users.password

次に、所有者とグループをに変更します www-data したがって、Apacheは読み取りと書き込みを行うことができます。

  1. sudo chown www-data:www-data /usr/local/apache/var/users.password

新しいユーザーは、を使用してWebDAVに追加されます。 htdigest 効用。 次のコマンドは、ユーザーsammyを追加します。

  1. sudo htdigest /usr/local/apache/var/users.password webdav sammy

The webdav このコマンドにはrealmがあり、新しいユーザーを追加するグループと見なす必要があります。 また、ユーザーがWebDAVサーバーにアクセスするときにユーザー名とパスワードを入力するときに表示されるテキストでもあります。 ユースケースを最もよく表すレルムを選択できます。

htdigest パスワードを入力し、実行時に確認するように求められます。

Output
Adding user sammy in realm webdav New password: Re-type new password:

次に、ApacheにWebDAVアクセスの認証を要求し、 users.password ファイル。

VirtualHostファイルを開きます。

  1. sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf

次に、内に次の行を追加します Directory ディレクティブブロック:

/etc/apache2/sites-enabled/your_domain-le-ssl.conf
AuthType Digest
AuthName "webdav"
AuthUserFile /usr/local/apache/var/users.password
Require valid-user

これらのディレクティブは次のことを行います。

  • AuthType Digest:ダイジェスト認証方式を使用します。
  • AuthName "webdav":からのユーザーのみを許可する webdav レルム。
  • AuthUserFile /usr/local/apache/var/users.password:に含まれているユーザー名とパスワードを使用する /usr/local/apache/var/users.password.
  • Require valid-user:にリストされているすべてのユーザーへのアクセスを許可する users.password 正しいパスワードを提供したファイル。

君の <Directory> ディレクティブは次のようになります。

/etc/apache2/sites-enabled/your_domain-le-ssl.conf
<Directory /var/www/webdav>
  DAV On
  AuthType Digest
  AuthName "webdav"
  AuthUserFile /usr/local/apache/var/users.password
  Require valid-user
</Directory>

次に、を有効にします auth_digest Apacheがダイジェスト認証方式の使用方法を認識できるようにするためのApacheモジュール:

  1. sudo a2enmod auth_digest

最後に、Apacheを再起動して、すべての新しい構成をロードします。

  1. sudo systemctl restart apache2.service

これで、HTTPSおよびダイジェスト認証を使用するようにWebDAVサーバーを構成しました。 ユーザーへのファイルの提供を開始する準備が整いました。 次のセクションでは、Windows、Linux、またはmacOSのいずれかからWebDAVサーバーにアクセスします。

ステップ4—WebDAVへのアクセス

このステップでは、macOS、Windows、およびLinux(KDEおよびGNOME)のネイティブファイルブラウザーを使用してWebDAVサーバーにアクセスします。

WebDAVサーバーへのアクセスを開始する前に、ファイルをWebDAVフォルダーに配置して、テストするファイルを用意する必要があります。

テキストエディタで新しいファイルを開きます。

  1. sudo nano /var/www/webdav/webdav-testfile.txt

テキストを追加して保存し、終了します。 ここで、このファイルの所有者とグループをに設定します www-data:

  1. sudo chown www-data:www-data /var/www/webdav/webdav-testfile.txt

これで、WebDAVサーバーへのアクセスとテストを開始する準備が整いました。

Linux KDE

まず、 KDEDolphinファイルマネージャーを開きます。 次に、次の形式のURLでアドレスバーを編集します。

webdavs://your_domain/webdav

ENTER を押すと、ユーザー名とパスワードの入力を求められます。

Dolphinにパスワードを保持させたい場合は、パスワードを記憶するオプションをチェックしてください。 次に、OKをクリックして続行します。 これで、の内容が表示されます /var/www/webdav/ ディレクトリ。ローカルシステム上にあるかのように操作できます。

アドレスバーのフォルダアイコンをつかみ、左側のナビゲーションパネルのリモートセクションの下にドラッグして、WebDAVサーバーをブックマークします。

Linux GNOME

まず、デスクトップの右側にあるアイコンをクリックして、Filesアプリケーションを開きます。

ファイルが開いたら、次の手順を実行します。

  1. +その他の場所をクリックします。
  2. 次の形式でWebDAVインスタンスのURLを入力します。
davs://your_domain/webdav

次に、接続をクリックします。 次に、ユーザー名とパスワードのダイアログボックスが表示されます。

ユーザー名とパスワードを入力し、接続をクリックしてWebDAVサーバーにログインします。 ファイルにアクセスするたびにパスワードを入力したくない場合は、永久に記憶するオプションをオンにしてください。

これで、WebDAVフォルダーがファイルで利用できるようになり、ファイルを管理できるようになります。

マックOS

まず、Finderアプリケーションを開きます。 次に、 Go メニューをクリックし、サーバーに接続をクリックします。

これで、WebDAVサーバーのURLを入力する新しいダイアログボックスが表示されます。 このURLは次の形式である必要があります。

https://your_domain/webdav

接続ボタンをクリックして続行します。 ユーザー名とパスワードの入力を求めるプロンプトが表示されます。

接続をクリックして、WebDAVサーバーのシステムへの追加を完了します。

これで、WebDAVサーバーがFinderLocationsセクションに表示されます。

ウィンドウズ

まず、スタートメニューからファイルエクスプローラーアプリケーションを開きます。 これが開いたら、左側のナビゲーションパネルから ThisPCを選択します。

次に、上部のナビゲーションバーにあるマップネットワークドライブアイコンをクリックします。

次の形式のURLを使用してWebDAVサーバーのURLを入力します。

https://your_domain/webdav

完了をクリックして、WebDAVサーバーに接続します。 ユーザー名とパスワードの入力を求めるプロンプトが表示されます。

ユーザー名とパスワードを入力し、[OK]をクリックしてサーバーにログインします。 ファイルにアクセスするたびにパスワードを入力したくない場合は、[クレデンシャルを記憶する]オプションをオンにします。

これで、WebDAVは、ファイルエクスプローラーの左側のナビゲーションパネルのこのPCセクションの下に場所として表示されます。

結論

これで、ファイルをユーザーに提供するための安全なWebDAVサーバーがセットアップおよび構成されました。 ユーザーがローカルシステムで使用しているオペレーティングシステムに関係なく、WebDAVサーバー内のファイルにアクセスして管理することができます。