Ubuntu20.04でApacheを使用してWebDAVアクセスを構成する方法
序章
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モジュールを有効にします。
- sudo a2enmod dav
- sudo a2enmod dav_fs
ここで、Apacheを再起動して、新しいモジュールをロードします。
- sudo systemctl restart apache2.service
これで、WebDAVモジュールがロードされて実行されます。 次のステップでは、WebDAVを介してファイルを提供するようにApacheを構成します。
ステップ2—Apacheの構成
このステップでは、ApacheがWebDAVサーバーを実装するために必要なすべての構成を作成します。
まず、次の場所にWebDAVルートフォルダを作成します。 /var/www/webdav
これは、WebDAVで利用できるようにするファイルを保持します。
- sudo mkdir /var/www/webdav
次に、Apacheのユーザーを設定します。 www-data
、WebDAVディレクトリの所有者になるには:
- sudo chown www-data:www-data /var/www/webdav
次に、ApacheがWebDAVユーザーがアクセスしているファイルを管理およびロックするために使用するデータベースファイルの場所を作成する必要があります。 このファイルは、Apacheで読み取りおよび書き込み可能である必要がありますが、機密情報が漏洩する可能性があるため、Webサイトから入手できないようにする必要があります。
で新しいディレクトリを作成します mkdir
データベースファイルのユーティリティ /usr/local/apache/var/
:
- sudo mkdir -p /usr/local/apache/var/
The -p
オプションは mkdir
指定したパスにすべてのディレクトリが存在しない場合にそれらを作成するユーティリティ。
次に、新しいディレクトリの所有者とグループをApacheのユーザーとグループに設定します。 chown
効用:
- sudo chown www-data:www-data /usr/local/apache/var
次に、ドメイン名に関するApache構成を保持するVirtualHostファイルを編集する必要があります。 このファイルはにあります /etc/apache2/sites-enabled/
で終わります le-ssl.conf
Certbotを使用してSSL証明書を登録した場合。
テキストエディタでVirtualHostファイルを開きます。
- sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf
最初の行に、 DavLockDB
指令:
DavLockDB /usr/local/apache/var/DavLock
. . .
次に、以下を追加します Alias
と Directory
内部のディレクティブ <VirtualHost>
他のすべてのディレクティブに続くタグ:
. . .
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
正しい場所のディレクティブ:
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
構成を確認するユーティリティ:
- sudo apachectl configtest
構成にエラーがない場合は、 apachectl
印刷します Syntax OK
. これを受け取ったら、Apacheを再起動して新しい構成をロードしても安全です。
- 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
効用:
- sudo touch /usr/local/apache/var/users.password
次に、所有者とグループをに変更します www-data
したがって、Apacheは読み取りと書き込みを行うことができます。
- sudo chown www-data:www-data /usr/local/apache/var/users.password
新しいユーザーは、を使用してWebDAVに追加されます。 htdigest
効用。 次のコマンドは、ユーザーsammyを追加します。
- sudo htdigest /usr/local/apache/var/users.password webdav sammy
The webdav
このコマンドにはrealmがあり、新しいユーザーを追加するグループと見なす必要があります。 また、ユーザーがWebDAVサーバーにアクセスするときにユーザー名とパスワードを入力するときに表示されるテキストでもあります。 ユースケースを最もよく表すレルムを選択できます。
htdigest
パスワードを入力し、実行時に確認するように求められます。
OutputAdding user sammy in realm webdav
New password:
Re-type new password:
次に、ApacheにWebDAVアクセスの認証を要求し、 users.password
ファイル。
VirtualHostファイルを開きます。
- sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf
次に、内に次の行を追加します Directory
ディレクティブブロック:
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>
ディレクティブは次のようになります。
<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モジュール:
- sudo a2enmod auth_digest
最後に、Apacheを再起動して、すべての新しい構成をロードします。
- sudo systemctl restart apache2.service
これで、HTTPSおよびダイジェスト認証を使用するようにWebDAVサーバーを構成しました。 ユーザーへのファイルの提供を開始する準備が整いました。 次のセクションでは、Windows、Linux、またはmacOSのいずれかからWebDAVサーバーにアクセスします。
ステップ4—WebDAVへのアクセス
このステップでは、macOS、Windows、およびLinux(KDEおよびGNOME)のネイティブファイルブラウザーを使用してWebDAVサーバーにアクセスします。
WebDAVサーバーへのアクセスを開始する前に、ファイルをWebDAVフォルダーに配置して、テストするファイルを用意する必要があります。
テキストエディタで新しいファイルを開きます。
- sudo nano /var/www/webdav/webdav-testfile.txt
テキストを追加して保存し、終了します。 ここで、このファイルの所有者とグループをに設定します www-data
:
- 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アプリケーションを開きます。
ファイルが開いたら、次の手順を実行します。
- +その他の場所をクリックします。
- 次の形式でWebDAVインスタンスのURLを入力します。
davs://your_domain/webdav
次に、接続をクリックします。 次に、ユーザー名とパスワードのダイアログボックスが表示されます。
ユーザー名とパスワードを入力し、接続をクリックしてWebDAVサーバーにログインします。 ファイルにアクセスするたびにパスワードを入力したくない場合は、永久に記憶するオプションをオンにしてください。
これで、WebDAVフォルダーがファイルで利用できるようになり、ファイルを管理できるようになります。
マックOS
まず、Finderアプリケーションを開きます。 次に、 Go メニューをクリックし、サーバーに接続をクリックします。
これで、WebDAVサーバーのURLを入力する新しいダイアログボックスが表示されます。 このURLは次の形式である必要があります。
https://your_domain/webdav
接続ボタンをクリックして続行します。 ユーザー名とパスワードの入力を求めるプロンプトが表示されます。
接続をクリックして、WebDAVサーバーのシステムへの追加を完了します。
これで、WebDAVサーバーがFinderのLocationsセクションに表示されます。
ウィンドウズ
まず、スタートメニューからファイルエクスプローラーアプリケーションを開きます。 これが開いたら、左側のナビゲーションパネルから ThisPCを選択します。
次に、上部のナビゲーションバーにあるマップネットワークドライブアイコンをクリックします。
次の形式のURLを使用してWebDAVサーバーのURLを入力します。
https://your_domain/webdav
完了をクリックして、WebDAVサーバーに接続します。 ユーザー名とパスワードの入力を求めるプロンプトが表示されます。
ユーザー名とパスワードを入力し、[OK]をクリックしてサーバーにログインします。 ファイルにアクセスするたびにパスワードを入力したくない場合は、[クレデンシャルを記憶する]オプションをオンにします。
これで、WebDAVは、ファイルエクスプローラーの左側のナビゲーションパネルのこのPCセクションの下に場所として表示されます。
結論
これで、ファイルをユーザーに提供するための安全なWebDAVサーバーがセットアップおよび構成されました。 ユーザーがローカルシステムで使用しているオペレーティングシステムに関係なく、WebDAVサーバー内のファイルにアクセスして管理することができます。