目次
こんにちは、風船(@fusen_niconico)です。
今日は、Synology NASのDockerだけを使ってVaultwardenサーバーを立てる方法をご紹介します。
めちゃくちゃ簡単に構築できるので、オープンソースのパスワード管理ソフトに乗り換えたいという方の参考になれば幸いです。
1 前提条件
まず前提条件として、以下の環境が揃っている必要があります。
- Dockerを使用できるSynologyのNASを使っていること
- DSMを使用してDockerをインストールしてあること
- NAS標準のSSL証明書設定が終わっていること(リバースプロキシで使うからあると便利)
この条件が揃っていればOKです。
2 なんでBitwardenをさしおいてVaultwardenにしたの?
ここでなぜBitwardenにしないのか疑問になった方もいるかも知れません。
今回いろいろ調べてみて、Vaultwardenは
- Bitwardenに比べて、軽量に作られている(Rustとかでできてるそうです)
- Bitwardenで有料の機能が無料で使える(2段階認証にセキュリティキーを使うとか)
- Bitwardenの公式アプリと互換性があってそのまま使えるので、サイドロード問題が起きない
というコスト面とパフォーマンス面において、メリットしかないのでこっちにしています。
3 Dockerイメージを取得してコンテナを作る
Dockerを起動して、Dockerイメージを取得します。
「レジストリ」をクリックし、右上の検索バーに「vaultwarden」と入力します。
バージョンは「latest」でOK。
イメージがダウンロードできたら、コンテナを作ります。
コンテナタブから「作成」をクリック。
先ほどダウンロードしたイメージを選択します。
ネットワークは「bridge」でOK。
「詳細設定」をクリックして、環境変数を設定します。
今回設定しておいた方がいいのは
- ADMIN_TOKEN : パスワード
です。これを設定しておかないと管理者画面を使えません。
コンテナのポートは標準で、ローカルポートを自分で設定しておきます。
リバースプロキシを使うなら、それを踏まえて設定します。
ボリュームは、vaultwardenが保存するディレクトリを指定し、マウントパスは
/data/
を指定します。
設定に問題がなければ、「完了」をクリックしてウィザードを終了させます。
4 リバースプロキシを設定する
Dockerコンテナにアクセスできるようにするのと、SSL通信をホストの証明書を使って行う為、リバースプロキシを設定します。
コントロールパネルの「外部アクセス」→「詳細設定」→「リバースプロキシ」の順に開きます。
リバースプロキシの画面が出たら、「作成」をクリック。
以下のように設定します。
プロキシ名を反転(リバースプロキシ名) | 例:vaultwarden |
プロトコル(Target) | HTTPまたはHTTPS(HTTPSがオススメ) |
ホスト名(Target) | NASか独自ドメイン |
ポート(Target) | ポート開放できるポートとか |
プロトコル(送り先) | HTTP |
ホスト名(送り先) | localhost |
ポート(送り先) | コンテナに設定したローカルポート |
5 管理画面にアクセスして設定する
リバースプロキシで設定したドメイン(例:https://xxxxx.synology.me:[設定したポート])などでアクセスしてみます。
ログイン画面が表示されたら成功です。
使用しているルーターなどによっては、グローバルIPが自ルーターの場合は、うまいことルーティングしてくれてそのままアクセスできる場合もありますが、中にはできない場合もあります。
そのような場合は、hostsファイルをいじるなどをする必要があります。
https://xxxxx.synology.me:[設定したポート]/adminにアクセスし、ADMIN_TOKENで設定した値を入力して「Enter」をクリックすると管理画面が開きます。
管理画面で絶対に設定しておくべき項目は以下の通りです。
- General Settings
- Domain URL→ポートまで含めたドメインURLを設定する、しないと認証メールのURLが正しいURLで送られない。
- Allow new signups→アカウントの新規作成を許可するかどうか。自分だけで使うなら、アカウントを作って無効にしちゃうとか。
- Allow invitations→組織を作って、その中に別のユーザーを招待できるから必要なら有効にする。
- SMTP Email Settings
- Enabled→メールで認証メール送る場合は有効にした上で、メールサーバーの設定が必要。
設定が終わったら必ず、「Save」をクリックして保存します。
6 自分のアカウントを作る
管理画面を抜けて、アカウントを作ってみます。
メールアドレスなどを入力して、「アカウントの作成」をクリックします。
保管庫画面が表示されますが、メールアドレスの確認が終わっていないので確認を実施します。
右上に出ている「メールを送信」をクリックして、登録したメールアドレスに確認メールを送ります。
届いたメールの「Verify Email Address Now」をクリックします。
先ほどの管理画面のDomain URLが正しく設定されていないと、ボタンを単純にクリックするだけでは進まなくなってしまいますので適宜URLを置き換えるなどして対応してください。
「メールアドレスが確認されました。」と出れば完了です。
7 1Passwordからデータ移行する
私は1Passwordを愛用しているので、データを移行してみようと思います。
1Passwordは、データのエクスポートに対応しており、Vaultwardenも1Passwordからのデータのインポートに対応しています。最強。
1Passwordを起動し、「ファイル」→「エクスポート」→「保管庫名」の順にクリック。
保管庫のパスワードを入力して、エクスポート形式を「1PUX」にします。これにしないと全てのデータが正しくエクスポートできません。
Vaultwarden側に戻り、「ツール」→「データをインポート」を開きます。
インポートするファイルの形式は「1Password (1pux)」を選択し、先ほどエクスポートしたファイルを選択して「データをインポート」をクリックします。
保管庫に、1Passwordからインポートしたデータが表示されます。
2段階認証のコードなどもしっかり引き継がれていて、Vaultwardenから確認できるようになりました。
8 ブラウザとかアプリはまた今度…
これで、サーバーを立ててデータの引き継ぎもできましたが、簡単にパスワードなどを入力できるようにするには、アプリやブラウザに拡張機能を入れなければいけません。
それに関しては、次回の記事でやりたいと思います。
ちなみに、VaultwardenはBitwardenの派生版みたいな感じらしいので、Bitwardenのアプリ(のセルフホストで使う機能)が使用できるそうです。