NAS にダイジェスト認証

NAS上のコンテンツを閲覧するために以前一度やってみたことがありましたが、そんなに閲覧することもなくなり、いつの間にかやめてしまいました。

でも、やはり自分の作成したNAS上のコンテンツが見られるのはとても便利です。

ただ、個人名や家族の画像や確定申告の明細などかなりコアな情報もあるのでしっかりとガードしたいと思います。

synology のこのページを参考にします。

ローカルでパスワード作成

まずは linux mint のローカルでパスワードを 2 つ作成します。

admin のパスワード。


sudo htdigest -c ~/admin.pw "Title" admin

alex のパスワード。


sudo htdigest -c ~/normal.pw "Title" alex

NAS でディレクトリ作成してパスワードをアップロード

NAS の web 直下に「secret」と「passwd」という 2 つのディレクトリを作成します。

「passwd」に上で作成した 2 つのパスワードをアップします。

そして次のような .htaccess を作成。

secret/.htaccess

AuthName "Title"
AuthType "Digest"
AuthUserFile "/volume1/web/passwd/normal.pw"
Require valid-user
passwd/.htaccess

AuthName "Title"
AuthType "Digest"
AuthUserFile "/volume1/web/passwd/admin.pw"
Require valid-user

以下のようになります。

secret.php がアクセス制限をしたいコンテンツです。

イメージ

secret.php を見ようとすると、.htaccess によってアクセス制限されており、「passwd/normal.pw」を見に行くように指示される。

しかし、passwd そのものも .htaccess によってアクセス制限されており、admin.pw による認証が必要。

2 段階認証のように見えますが、実際に入力するユーザー名とパスワードは alex とそのパスワードだけです。

passwd の .htaccess と admin.pw はなくてもいいような気がしますがどうなんでしょう?

web 全体にアクセス制限

secret.php だけじゃなくて web 全体にアクセス制限したい場合は、secret/.htaccess を web と同じ層に移動します。

passwd を沈めておく

web から見えるところに置くのは抵抗があるので、沈めておきます。

NAS に ssh ログインして、


sudo mv /volume1/web/passwd /volume1/

.htaccess を編集します。

.htaccess

AuthName "Title"
AuthType "Digest"
AuthUserFile "/volume1/passwd/normal.pw"
Require valid-user