Ubuntu14.04でApacheを使用してWebDAVアクセスを構成する方法
序章
WebDAV は、ユーザーがサーバー上のファイルを管理できるようにするHTTPプロトコルの拡張機能です。 WebDAVサーバーを使用する方法はたくさんあります。 たとえば、WordまたはExcelドキュメントをWebDAVサーバーにアップロードすることで、同僚と共有できます。 URLを指定するだけで、音楽コレクションを家族や友人と共有することもできます。 これはすべて、何もインストールしなくても実現できます。
リモートサーバー上のファイルを管理する方法はたくさんあります。 WebDAVには、FTPやSambaなどの他のソリューションに比べていくつかの利点があります。 この記事では、認証を使用してWindows、Mac、およびLinuxからのネイティブWebDAVアクセスを許可するようにApacheサーバーを構成する方法について説明します。
なぜWebDAVなのか?
WebDAVにはいくつかの利点があります。
- すべての主要なオペレーティングシステム(Windows、Mac、Linux)でのネイティブ統合。 WebDAVを使用するためにサードパーティのソフトウェアをインストールする必要はありません。
- 部分転送のサポート。
- 認証のためのより多くの選択肢。 HTTPを使用しているということは、 NTLM 、 Kerberos 、LDAPなどを意味します。 すべて可能です。
状況によっては、WebDAVがニーズに最適なソリューションになる場合があります。
なぜApacheなのか?
LinuxでWebDAVをサポートするWebサーバーはたくさんあります。 ただし、ApacheにはWebDAVプロトコルの最も準拠した実装があります。 執筆時点では、NginxおよびLighttpdのWebDAVは機能しますが、部分的にしか機能しません。
前提条件
Ubuntu14.04サーバーが必要です。
始める前に、まずsudoアクセス権を持つユーザーを作成しましょう。 root としてコマンドを実行できますが、セキュリティ上の懸念からお勧めしません。 詳細については、 Ubuntu14.04へのユーザーの追加に関する優れた記事があります。
ユーザーの作成
Digital Oceanインスタンスを最初に作成すると、rootとしてログインできる資格情報が与えられます。 root として、最初にalexというユーザーを追加しましょう。
adduser alex
以下に示すように、ユーザーalexのパスワードを作成するように求められます。 ユーザーalexに関する情報の入力を求めるプロンプトがさらに表示されます。 必要に応じて入力できます。
Adding user `alex' ...
Adding new group `alex' (1000) ...
Adding new user `alex' (1000) with group `alex' ...
Creating home directory `/home/alex' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for alex
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
ユーザーにsudo権限を付与する
新しいユーザーを作成したら、次のステップはユーザーにalexsudo特権を付与することです。 まだrootとしてログインしていると仮定して、次のコマンドを入力して、ユーザーalexをsudoグループに追加します。
usermod -aG sudo alex
sudo グループのユーザーには、sudo特権が付与されます。 これで、ユーザーalexとしてログアウトおよびログインできます。
ステップ1—Apacheのインストール
Apacheをインストールしましょう。
sudo apt-get update
sudo apt-get install apache2
ApacheWebサーバーがインストールされて実行されている必要があります。
ステップ2—WebDAVの設定
WebDAVを設定するには3つのステップがあります。 場所を指定し、必要なモジュールを有効にして、構成します。
ディレクトリの準備
WebDAVを提供するためのフォルダーを指定する必要があります。 新しいディレクトリを作成します /var/www/webdav
このため。 また、所有者をに変更する必要があります www-data
(Apacheユーザー)Apacheが書き込みできるようにするため。
sudo mkdir /var/www/webdav
sudo chown -R www-data:www-data /var/www/
モジュールの有効化
次に、a2enmodを使用してWebDAVモジュールを有効にします
sudo a2enmod dav
sudo a2enmod dav_fs
Apacheモジュールは下にあります /etc/apache2/mods-available
. これにより、からのシンボリックリンクが作成されます /etc/apache2/mods-available
に /etc/apache2/mods-enabled
.
構成
で構成ファイルを開くか作成します /etc/apache2/sites-available/000-default.conf
お気に入りのテキストエディタを使用します。
nano /etc/apache2/sites-available/000-default.conf
最初の行に、DavLockDBディレクティブ構成を追加します。
DavLockDB /var/www/DavLock
そして、VirtualHostセクション内の AliasおよびDirectoryディレクティブ:
Alias /webdav /var/www/webdav
<Directory /var/www/webdav>
DAV On
</Directory>
編集後のファイルは次のようになります。
DavLockDB /var/www/DavLock
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
Alias /webdav /var/www/webdav
<Directory /var/www/webdav>
DAV On
</Directory>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
DavLockDB ディレクティブは、DAVロックデータベースの名前を指定します。 ファイルへのパスである必要があります。 ファイルを作成する必要はありません。 ディレクトリはApacheサーバーによって書き込み可能である必要があります。
Alias ディレクティブは、リクエストをにマップします http://your.server/webdav
に /var/www/webdav
フォルダ。
Directory ディレクティブは、ApacheにWebDAVを有効にするように指示します。 /var/www/webdav
フォルダ。 mod_dav の詳細については、Apacheのドキュメントを参照してください。
Apacheサーバーを再起動すると、認証なしでWebDAVサーバーが機能するようになります。
次のようにApacheサーバーを再起動します。
sudo service apache2 restart
テスト
認証なしのWebDAVは、ユーザーの読み取りアクセスのみを許可します。 テストのために、サンプルファイルを作成しましょう。
echo "this is a sample text file" | sudo tee -a /var/www/webdav/sample.txt
sample.txtというテキストファイルを/var / www /webdavに作成する必要があります。 テキストが含まれている必要があります。これはサンプルテキストファイルです。
これで、外部コンピューターからログインしてみることができます。 WebDAVサーバーは次の場所にあります。 http://
Macの場合は、Finderを開きます。 メニューバーでGoを見つけ、サーバーに接続オプションを選択します。
ゲストとして接続オプションを選択します。 次に、接続をクリックします。
ログインする必要があります。 その共有ファイルシステムに接続して、 webdav
フォルダ、あなたはファイルを見ることができるはずです sample.txt
それは以前に作成されました。 ファイルはダウンロード可能である必要があります。
ステップ3—認証の追加
認証のないWebDAVサーバーは安全ではありません。 このセクションでは、ダイジェスト認証スキームを使用してWebDAVサーバーに認証を追加します。
基本認証またはダイジェスト認証?
利用可能な多くの認証スキームがあります。 この表は、さまざまなオペレーティングシステムでのさまざまな認証スキームの互換性を示しています。 HTTPSを提供している場合は、SSL証明書が有効である(自己署名ではない)と想定していることに注意してください。
HTTP を使用している場合は、すべてのオペレーティングシステムで機能するため、ダイジェスト認証を使用してください。 HTTPS を使用している場合は、基本認証を使用するオプションがあります。
ダイジェスト認証スキームについて説明します。これは、SSL証明書を必要とせずにすべてのオペレーティングシステムで機能するためです。
ダイジェスト認証
ファイルを生成しましょう( users.password
)ユーザーのパスワードを保存します。 ダイジェスト認証には、ユーザーの名前空間として機能するrealmフィールドがあります。 レルムとしてwebdavを使用します。 最初のユーザーはalexと呼ばれます。
ダイジェストファイルを生成するには、依存関係をインストールする必要があります。
sudo apt-get install apache2-utils
次にユーザーを追加します。 以下のコマンドを使用して、ユーザーパスワードファイルを生成しましょう。
sudo htdigest -c /etc/apache2/users.password webdav alex
これにより、ユーザーalexがパスワードファイルに追加されます。 alexのパスワードを作成するためのパスワードプロンプトが表示されます。
その後ユーザーを追加するには、cフラグを削除する必要があります。 chrisというユーザーを追加する別の例を次に示します。 プロンプトが表示されたら、パスワードを作成します。
sudo htdigest /etc/apache2/users.password webdav chris
また、Apacheがパスワードファイルを読み取れるようにする必要があるため、所有者を変更します。
sudo chown www-data:www-data /etc/apache2/users.password
パスワードファイルを作成したら、次の場所で構成を変更する必要があります。 /etc/apache2/sites-available/000-default.conf
.
Directoryディレクティブに次の行を追加します
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user
最終バージョンは次のようになります(コメントは削除されています)。
DavLockDB /var/www/DavLock
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /webdav /var/www/webdav
<Directory /var/www/webdav>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user
</Directory>
</VirtualHost>
mod_authn モジュールには、認証ディレクティブの定義が含まれています。
AuthType ディレクティブは、Apacheに /var/www/webdav
ディレクトリには、Digestスキームを使用した認証が必要です。
Digest 認証には、webdavとして設定したrealmの値が必要です。 Realmは名前空間のように機能します。 同じ名前のユーザーがいる場合は、realmに異なる値を使用してユーザーを区切ることができます。 AuthName ディレクティブを使用して、realmの値を設定します。
AuthUserFile ディレクティブは、パスワードファイルの場所を示すために使用されます。
Require ディレクティブは、自分自身を認証する有効なユーザーのみがそのディレクトリにアクセスできることを示しています。
最後に、ダイジェストモジュールを有効にし、サーバーを再起動して設定を有効にします。
sudo a2enmod auth_digest
sudo service apache2 restart
ステップ4-ファイルへのアクセス
Mac、Windows、およびLinux(Ubuntu)のネイティブファイルブラウザーからWebDAVサーバーにアクセスする方法を示します。 簡潔にするために、Macでのファイルとフォルダーの操作について説明しますが、サーバー上のファイルはすべてのオペレーティングシステムから追加、編集、および削除できます。
Webブラウザを使用してインターネット経由でファイルにアクセスすることもできます。
認証を追加する前にドライブをテストした場合は、ドライブを取り出して再接続する必要がある場合があります。
マック
Macの場合は、Finderを開きます。 メニューバーでGoを見つけ、サーバーに接続オプションを選択します。
サーバーアドレスを入力します。 そのはず http://
ユーザー名とpsswordの入力を求められます。 サーバー上に作成したユーザーの1つを入力し、接続を押します。
接続すると、ディレクトリがFinderに表示されます。
ファイルをコピーしてに保存できます webdav
ディレクトリを作成し、サブディレクトリを作成します。 サーバー上のディレクトリの初期状態は次のとおりです。
Finderを使用すると、通常どおりにファイルを追加または名前変更したり、新しいディレクトリを作成したりできます。 以下は最終結果です。
ウィンドウズ
Windowsでは、ファイルエクスプローラーを開きます。 左側のサイドバーに、ネットワークアイコンがあります。
ネットワークアイコンを右クリックします。 ネットワークドライブのマップオプションを含むコンテキストメニューが表示されます。 それをクリックします。
フォルダフィールドにサーバーアドレスを入力します。 そのはず http://
ユーザー名とパスワードの入力を求められます。 それらを入力し、OKを押します。
接続すると、ファイルエクスプローラーの左側のサイドバーにネットワークドライブとして表示されます。
Linux(Ubuntu)
LinuxデスクトップオペレーティングシステムとしてUbuntu14.04を使用しています。 Ubuntuで、ファイルを開きます。 これは、左側のサイドバーにあるサーバーに接続オプションです。 それをクリックします。
サーバーアドレスを入力します。 そのはず dav://
ユーザー名とパスワードの入力を求められます。 それらを入力し、接続を押します。
接続すると、ディレクトリがNetworkリストの下に表示されます。
結論
この記事では、Ubuntu14.04でApacheを使用してWebDAVサーバーをセットアップする方法について説明しました。 サーバーを保護するためにダイジェスト認証を構成する方法についても説明しました。 最後に、ネイティブファイルブラウザを使用して、3つの主要なオペレーティングシステムすべてからWebDAVサーバーに接続する方法を示しました。