Tinyproxy が localhost を拒否する: どの loopback アドレスが届いたかを確認する
localhost の名前解決、IPv4 loopback、IPv6 loopback、listener のバインドを切り分けて、Tinyproxy のローカルアクセス拒否を診断します。
設定では 127.0.0.1 を許可していますが、localhost に接続するアプリケーションは拒否されます。許可リストを広げる前に、アプリケーションがどのアドレスを使ったかを確認してください。
localhost は名前です。環境によって、クライアントを IPv4 loopback、IPv6 loopback、または一連の接続試行へ導くことがあります。IPv4 の送信元ルールは、::1 からの IPv6 接続に必ず一致するとは限りません。
3 つの独立した点を確認する
- クライアントがどのアドレスに接続したか。
- Tinyproxy がどのアドレスで待ち受けているか。
- Tinyproxy がアクセスルールで評価した送信元アドレスはどれか。
接続が拒否された場合は、そのエンドポイントに到達可能なリスナーがなかったことを示します。Tinyproxy のアクセス拒否応答は、接続がサービスに到達し、ポリシーに従って拒否されたことを意味します。これらの障害には別々の修正が必要です。
Tinyproxy 1.11.2 では、リスナーとクライアントアクセスの設定がこの 2 つの制御を別々に示します。ローカル IPv6 クライアントを想定するなら、明示的な Allow ::1 のほうが、ホスト名ベースのルールの挙動に頼るより明確にポリシーを表現できます。
loopback の不一致を解消するためだけに、プロキシをプライベートサブネット全体に開放しないでください。また、loopback は該当するネットワーク環境に対してローカルであることも忘れないでください。コンテナの loopback アドレスは、両者が localhost という名前を使っていても、別のマシンのプロキシを指すものではありません。
診断では、観測した数値のエンドポイントと送信元を使ってください。それらが意図したポリシーと一致すれば、残っているプロキシのログインや宛先の失敗は後続の段階であり、localhost に無制限の例外が必要だという証拠ではありません。