Windows 10 PCでパスワード管理サーバVaultwardenを起動してみました

おうちのWindows 10 PCで。

資格情報を管理するためのパスワードマネージャである「Vaultwarden」を起動してみました。

起動したばかりで、詳細はまだ理解しておりませんが。

起動手順を記録しておこうと思います。


Podman.exeによるVaultwarden起動手順

例によって起動はWindows版のPodmanを使用しました。

Windows 10 22H2で動かしておりますが、Windows 11でも動作すると思います。

Podman.exeのインストール

DockerかPodmanを使用してイメージを起動したいと思いますが。

まあ理由がいろいろありまして。Podmanを選択します。インストール手順はこちらになります。

Windows版Podman.exeのインストール手順 2022年10月版
Windows 10のPCに、Podman.exeをインストールしてみました。 アザラシ?アシカ?セイウチ?暗い海から、紫色の目で、す...

Podmanマシーンを初期化・スタートして準備完了となります。


Podman.exeによるVaultwarden起動バッチファイル

コマンドプロンプトで、次の3つのコマンドを実行します。

  1. ポッドを作成します。名前はvwd-podにしました。コンテナ側のポート番号80を、ホスト側の8080番で公開しています。
  2. Mariadbコンテナを起動します。パスワードやユーザ名、データベース名は適宜変更して下さい。
  3. Vaultwardenサーバを起動します。URLのユーザ名、パスワード、データベース名は、Mariadbに合わせるかたちです。
rem Vaultwardenポッド作成
podman pod create --name vwd-pod -p=8080:80/tcp
rem Mariadbコンテナ起動
podman run ^
--restart always ^
--pod vwd-pod ^
--name vwd-db ^
-e MYSQL_ROOT_PASSWORD=root-p@ssw0rd ^
-e MYSQL_DATABASE=vaultwarden ^
-e MYSQL_USER=vwduser ^
-e MYSQL_PASSWORD=Passw0rd ^
-d docker.io/library/mariadb
rem Vaultwardenコンテナ起動
podman run ^
--restart always ^
--pod vwd-pod ^
--name vwd-sv ^
-e DATABASE_URL='mysql://vwduser:Passw0rd@localhost/vaultwarden' ^
-e ADMIN_TOKEN=hello_denor.jp ^
-v vwd-pod-vol:/data ^
-v .:/ssl ^
-d docker.io/vaultwarden/server

起動に必要なパラメータを入れましたので、さらっと起動した感じです。


動作確認

Webブラウザで起動したサーバに接続します。

http://localhost:8080

最初に「アカウントの作成」ボタンをクリックして、アカウントを作成しましょう。作成後、ログインすると、保管庫の画面が表示されます。

スマートフォン等からアクセスする場合は、PodmanからWSL2で動かしているため、Windows 10側のポートマッピングが必要になります。

詳細はこちらの記事になります。

WSL2のサービスにスマホや他のPCからアクセスできるようにするには
WSL1の時は、特に設定は必要なく。 WSLを動かしているPC(WSLホスト)のTCPポートに接続すると、普通にサービスにアクセスでき...

このような内容のバッチファイルを作成し、管理者権限で実行すると、外部からアクセス可能になりそうです。

※22.11.25修正:IPアドレスを取り出す構文に不具合がありましたので修正しました。不具合の内容:IPアドレスが0で終わる場合、正しく取り出せませんでした。構文に\.を追加しました。

※22.12.8追記:ファイアウォールのルールが無限に追加されてしまうため、ルールが存在するか判定するIF文を追加しました。

rem podmanマシン起動
podman machine start

rem podmanマシンのIPアドレス取得
FOR /F %%i in ('podman.exe machine ssh "cat /proc/net/fib_trie | sed -e 's/^[ \-\|\+]*[ \-]*//' | grep '[\d]*\.' |grep -v -e '0.0.0.0' -e '^127\.[\d]*' -e '\/' -e '0$' -e '255$'"') DO set IPADR=%%i

rem ポッド起動
set pod=vwd-pod
podman pod start %pod%

rem ポートフォワード
set PTNB=8080
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=%PTNB% connectaddress=%IPADR% connectport=%PTNB%

rem 受信ルール
netsh advfirewall firewall show rule name= "TCP %PTNB%" dir=in
IF %ERRORLEVEL% GEQ 1 (
netsh advfirewall firewall add rule name= "TCP %PTNB%" dir=in action=allow protocol=TCP localport=%PTNB%
)

rem 送信ルール
netsh advfirewall firewall show rule name= "TCP %PTNB%" dir=out
IF %ERRORLEVEL% GEQ 1 (
netsh advfirewall firewall add rule name= "TCP %PTNB%" dir=out action=allow protocol=TCP localport=%PTNB%
)

<ホスト名>local等のmDNS対応のホスト名でアクセスしたり、PC側のIPアドレスを固定に設定しておくとアクセスしやすくなります。


実用にはhttpsが必要

アプリ画面の右上、歯車アイコンをタップします。

サーバURLに、構築したサーバのURLを指定しておきましょう。

http://外部からアクセス可能なIPアドレスまたはホスト名:8080

とおもったら、localhsot以外はhttpではログイン出来ないのですね。

httpsを有効にする必要があるそうです。下記のどれかの方法で、有効にできそうですが。

  • リーバスプロキシ
  • ROCKET TLS
  • Let’s Encrypt

このあたりは、私にはもう少し研究が必要そうです。

※22.12.6追記:実際にリバースプロキシでSSL化してみました。

Windows版podmanでvaultwardenをSSL化してみました
先日、Windows版のPodmanでVaultwardenを起動してみましたが。 スマートフォンアプリでアクセスしようとする...

Vaultwardenは非公式の実装です念のため

rem ログ表示
podman logs vwd-sv
podman logs vwd-db

問題なく起動すると、図のようなログが出力されるようです。

vaultwardenは、Bitwardenの非公式の実装のため、公式チャンネルは使わないでね、との記述があります。ふむふむ。

Bitwardenと互換性がありますので、スマートフォンのアプリ等はそちらを使用する流れかと思いますが。レポート等は、Vaultwarden側へ、という内容です。


構築用スクリプト覚書

ポッドを作り直す場合や、ボリュームの保存に必要なスクリプトの自分用覚書です。

rem コンテナとボリューム全削除
podman container stop --all
podman container rm --all
podman pod stop --all
podman pod rm --all
rem ボリュームマウント先の確認
podman container inspect --format {{.Mounts}} vwd-db
rem /var/lib/mysql/data
podman container inspect --format {{.Mounts}} vwd-sv
rem /data , /ssl
rem SSL関係
podman run --rm -v .:/backup fedora bash
# dnf update
# dnf install openssl

コンテナとポッドを消すと、データが消えますのでご注意下さい。

データを消えないようにするには、mariadbとvaultwardenそれぞれのコンテナのボリュームをバックアップする必要があります。

本格的に使用可能になりましたら、追々、コンテナのバックアップ手順等を追記するかもしれません。


パスワード管理ですが。

正直、日々のインターネット利用時の不安材料の一つです。パスワード管理。

クラウド上にパスワードを保管するのは、私は不安があります。

今回、パスワード管理サーバを、自宅のPCで動かしたということで。

クラウド上に保管するよりは、まあ少しは安心な気もしますが。

その判断は、実際に使ってみてからでしょうか。

簡単ですので、宜しければ起動してみて下さいませ。

※22.12.6追記:実際にSSL化してみました

Windows版podmanでvaultwardenをSSL化してみました
先日、Windows版のPodmanでVaultwardenを起動してみましたが。 スマートフォンアプリでアクセスしようとする...
スポンサーリンク

フォローする

スポンサーリンク