6
3

はじめに

パスワード管理、やってますか?

私は、数年前まで同じパスワードを使いまわして利用していました。
パスワード漏洩のリスクもですが、いままでどんなサービスでパスワードを入力したのかすら忘れてしまうこともあって怖いですよね。

そんなこんなで、しばらく前からBitwardenの有料プランを使っていたのですが、vaultwardenを知り、移行してやろうと考えたわけです。

Bitwardenを利用する主な利点としては、

  • オープンソースである
  • 本家self-host版よりも軽量
  • 自前でデータをすべて管理できる
  • Bitwardenでは有料限定の機能(パスキーやOTPの統合管理)も無料で利用できる
  • 独自のドメインを使える

みたいな感じでしょうか。

本家にも、self-host版もあるのですが、そちらと比較してvalutwardenは数倍軽く、GCPの無料枠やVultrの無料枠なんかでも全然快適に動きそうです。

用意するもの

  • Cloudflareアカウント
  • ドメイン
  • サーバー

構築

構築していきます。

Cloudflare Argo Tunnelの設定

CloudflareダッシュボードからサイドメニューよりZero Trustダッシュボードをクリックし、開きます。

image.png

Access > Tunnels より Create a tunnelをクリックします。

image.png

自分が分かる適当な名前をつけて、Save tunnelを押下します。

image.png

するとこんなページに遷移するので、表示されるコマンドのトークン部(sudo cloudflared service installの後ろの文字列)のみをコピーしておきます。

image.png

Nextを押下し、Vaultwardenを外部公開するためのURLとの紐付けの作業を行います。

image.png

入力する項目は以下のとおりです

  • Type : HTTP
  • URL : vaultwarden:80
  • Domain : 用意した任意ドメイン
  • Subdomain : 必要でなければ空欄

ここで指定したFQDNは後述の手順に必要となるので覚えておきましょう。
入力が完了したら、Save test tunnelを押下し作業を終了します。

Vaultwardenの構築

今回は、Docker上に構築するため、まずDockerを導入します。

curl https://get.docker.com/ | sudo sh

Docker公式の用意しているシェルスクリプトをパイプしてあげるだけでインストールは完了です。

次に、vaultwaden用のディレクトリを作成し、移動します。

mkdir vaultwarden
cd vaultwarden

compose.yamlを作成/編集します。

vim compose.yaml
services:
  vaultwarden:
    image: vaultwarden/server
    container_name: vaultwarden
    environment:
      - TZ=Asia/Tokyo
      - SIGNUPS_ALLOWED=true
      - INVITATIONS_ALLOWED=true
      - WEBSOCKET_ENABLED=true
      - SHOW_PASSWORD_HINT=false
      - YUBICO_CLIENT_ID=[Yubico Client ID]
      - YUBICO_SECRET_KEY=[Yubico Secret Key]
      - VIRTUAL_HOST=[前項で設定したFQDN (e.x.) hoge.example.com)]
      - VIRTUAL_PORT=80
      - ADMIN_TOKEN=[任意のトークン]
    volumes:
      - vaultwarden_volume:/data
    restart: always
  tunnel:
    restart: always
    image: cloudflare/cloudflared
    command: tunnel run
    environment:
      - TUNNEL_TOKEN=[前項で控えたCloudflare Argo Tunnelの接続トークン]
volumes:
  vaultwarden_volume:

今回は、Yubikeyを認証に使用したので、それ関連の環境変数も定義していますが、不要であれば削除してください。
Client IDとSecret Keyはこちらから取得できます。

ADMIN_TOKENに利用する文字列は、以下のコマンドを用いることで発行できます。

openssl rand -base64 48

すべての手順が完了したら保存し、起動します。

docker compose up -d

確認する

ブラウザから、https://FQDN/adminへアクセスし、先程指定したADMIN_TOKENを入力します。
ログインできたら、ユーザ登録やパスワードのインポートなど、設定を済ませましょう。

ちなみに、Bitwardenの完全互換ですので、公式の拡張機能なども利用することができます。

image.png

さいごに

Bitwardenのアプリ・拡張機能がすべてそのまま使えることもあり、どのデバイスでも使用でき、かなり便利です。
特に、OTPとパスキーが扱えていいです。(無料のもので、OPTとパスキーに対応してるのは多分ないんじゃないかな)

以前から軽量とは聞いていましたが、実際に1 CPU/0.5MBの環境で動かしてみて、これまでにリソース使用量が50%を上回ることはありませんでした。めっちゃ軽量です。

パスワード管理に悩まれている方は是非一度試してみてください。

それでは。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3