Vaultwarden を正常動作に持っていったお話し

Linux
この記事は約3分で読めます。

はじめに

 docker-compose やらでドーンと実行して nginx にリバースプロキシ設定すればパスワードマネージャーとしてはちゃんと動作するんだけど、管理画面の Diagnostics では Internet access や DNS に NG が出てしまっていた。

 こういうの気になって仕方が無いタイプなので、暇さえあればググって調べてなんだかんだとやっていたんだけどやっと解決した。

解決に至る経緯

 Vaultwarden のコンテナに入ったら curl があったんでこれでインターネット上の何かに適当にアクセスした。
 するとタイムアウト。でも、内部ネットワークのページなら表示出来ていた。

 LAN からお外に出られていないだけでは

 と思ったんで相応の対処を思いつきでやってみた。

DNS に設定追加

 ローカルに DNS サーバーが有る場合、172.16.0.0/12 からのクエリーを許可してあげればいいだけ。

    allow-query         { 192.168.1.0/24; 172.16.0.0/12; };

 外部 DNS を参照している場合は次の nftables の設定で解決するかもしれない。

nftables にルールを追加

 以下ハイライトした 2 つの行を追加した。

table ip filter {
    chain input {
        type filter hook input priority filter; policy drop;
        iif "lo" counter accept
        ...
        ...
    }

    chain forward {
        type filter hook forward priority filter; policy drop;
        ct state established,related accept
        ...
        ...
        ip saddr 172.16.0.0/12 counter accept
    }
    
    chain output {
        type filter hook output priority filter; policy accept;
    }
}   

table ip nat {
    chain postrouting {
        type nat hook postrouting priority srcnat; policy accept;
        ...
        ...
        ip saddr 172.16.0.0/12 oif "ネットワークインターフェース名" masquerade
    }
}   

 docker のもつ IP アドレスを NAT してあげて外に出られるようにしたというそのまんまな感じで。

 こうしたあと、nftables を再起動し、そのあとに docker を再起動で問題は解決した。

おわりに

 docker ってこういう所まで自動でやってくれるもんかと思っていたが如何に。
 しかしまぁ、これでやっと胸のつかえが下りた。

著者プロフィール
ぶっち

本格的に PC へ触れ始めてたのは 1990 年位から。
興味は PC 全般。OS は Windows と Linux などを嗜む。
プログラマやネットワークエンジニアを経てフリーに活動している 40 代も後半に入ったおじさんです。

ぶっちをフォローする

コメント

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.