自宅NASで、パスワードマネージャー!その1 ~Vaultwarden導入編~
ということで、ここ数日ごそごそとしておりましたw
その結果、自宅NASの中にパスワードマネージャーを構築することになりました。
なんで、こんな事になったのかというと…
常用しているパスワードマネージャーが、無料サービスを辞めるという発表があったからですw
これまで、パスワードマネージャー遍歴は
ブラウザの標準機能
⇓
1Password
⇓
C2 Password(Synology)
といった感じだったのですが、今回の問題はC2 Passwordを包含するWebサービスである
C2の無料プランがなくなるとの事…
とはいえ、マルチデバイス対応など、今となってはパスワードマネージャーの便利さが身体に染みついていますし、今更ブラウザの標準機能に戻るのもイヤですw
そこで、今回候補に挙がったのが、Docker上で構築できるオープンソースのパスワードマネージャー「Vaultwarden」でした。
ただ、そこはすんなりとは行きませんでしたw
ここから始まる、試行錯誤の数日w
まあ、完遂した今だからこそ、笑って話せますがねw
とりあえず、本題に移る前に少し昔話を…
実は、パスワードマネージャーのセルフホスト化挑戦は、今回が初めてではありませんw
ちょうど、1Passwordの便利さを知った直後、サブスク料金もったいないな…という、今回のデジャヴのような出来事があり、検討したことがありました。
その時候補に挙がったのが、psonoという…こちらもDocker上でコンテナ起動できる、オープンソースのサービスでした。

試行錯誤の跡地が、今もDockerのイメージ一覧に残っています。
ただ、psonoはとにかくハードルが高かった…w
多機能なのですが、Postgresでデータベースを構築して、Mail機能を構築して…と、やる事が多すぎたのと、SynologyのC2サービスに無料のパスワードマネージャーが存在することを発見して、挫折したのでありましたw
そんなこんなで本題です!
まずは、何はなくともDockerコンテナで、Vaultwardenを立ち上げないといけません
さすがに、NASでDockerを立ち上げるところは省略するとして…
落としてくるイメージは、vaultwarden/serverの最新バージョン(latest)です。
イメージをダウンロードした後は、コンテナを作成して起動します。
正直、それだけ?という感じですが、サービスの立ち上げ自体は、簡単なモノですw
コンテナ作成時に気を付けるのは、ボリュームの設定とPORT番号くらいです。
「ボリューム」で設定したフォルダに、パスワード保管庫のデータが作成されます。
「PORT番号」で、NAS上のどのポートでVaultwardenを公開するかを設定します。
これで、ローカル環境からアクセスして、Vaultwardenのサーバーが見えるようになってるか、確認してみます。
アクセスは、ブラウザのアドレス欄にhttp://(NASのIPアドレス):(コンテナ作成時に設定したPORT番号)で!
そうすると、HTTPSで繋げや!と怒られますが、起動自体は成功していることを確認できましたw
そこで、HTTPS接続を実現するために、リバースプロキシ設定・SSL証明書の取得へと、話は進んでゆきます。
その辺りも、SynologyNASの場合は、実はすごく簡単です!
Synology DSMで、公式のDDNSを利用している場合で、解説していきます。
例えば、https://hoge.myds.meでNAS本体のDSM管理画面にアクセスしていて…
https://vault.hoge.myds.meにVaultwardenのURLを設定したいとします。
DMSの【コントロールパネル】-【ログインポータル】-【詳細設定】
の中に、リバースプロキシ設定があります。
ここに、新規エントリーを作成します。
設定内容は、ちょっとわかりにくいですが

プロキシ名を反転:適当にわかりやすい名前を入れます。
Targetの
プロトコル:HTTPS
ホスト名:vault.hoge.myds.me
ポート:デフォルトだとHTTPSのポートで443で問題ありません
送り先の
プロトコル:HTTP
ホスト名:NASのIPアドレスアドレス
ポート:Vaultwardenのコンテナ作成時に指定したポート番号
といった形です。
次に、SSL証明書の取得と設定です。
こちらは、DMSの【コントロールパネル】-【セキュリティ】-【証明書】
から、【追加】で新しい証明書を取得します!
流れは【新しい証明書を追加してください】-【Let's Encryptからの証明書をお受け取りください】
で
ドメイン名:vault.hoge.myds.me
電子メール:Synology NASに設定しているメールアドレスをプルダウンから選択します
サブジェクトの別名:ここは空欄でも構いません(ワイルドカード証明書などを取得する場合には、ここを設定します)
そして、この後が重要…
取得したSSL証明書をきちんとvault.hoge.myds.meに紐付けてやらないと、不正な証明書ですと言われて、危険なサイト扱いをされてしまいますw
DSMの証明書一覧画面に戻って、【設定】を選んで出てくるウィンドウにて、vault.hoge.myds.meに対する【サービス】と【証明書】を一致させますw
と言ったところで、無事にHTTPSでの接続が出来るようになったわけです!
https://vault.hoge.myds.meにアクセスして
下記の画面が、ブラウザに表示されれば、大成功です!

ここから先は、Vaultwardenの使い方の話になってくるので、割愛しますw
もちろん、最初にユーザーを作成して、C2 Passwordからデータをインポートして、といった作業が必要となります。
ただ、今回これで終わりません。
SynologyのDDNSサービス(myds.me)に依存する構成であるため、今回のC2のようなサービス変更の影響を受ける可能性が、まだ残っていますw
といったところで、次回に続くんじゃぞw