手当たり次第に書くんだ

飽きっぽいのは本能

VyOS Web Proxy 設定 – 内部向け明示プロキシとして使う

VyOS の Web Proxy は、ルーター自身にプロキシ機能を持たせ、内部ネットワークからの HTTP / HTTPS 通信を明示的に経由させるための機能です。現在の構成では、透過プロキシとして通信を横取りするより、待受アドレスとポートを明示した通常のプロキシとして扱う方が運用しやすくなります。

Web Proxy は、DNS forwarding や DHCP と同じように内部端末を支える補助サービスです。ただし、ルーターの主役は転送と境界制御なので、プロキシをどこまで担わせるか、外部へ公開しないこと、障害時にどう切り分けるかを先に決めておきます。

この記事では、VyOS 1.5 系で読むことを前提に、Web Proxy を内部向け明示プロキシとして使う場合の位置づけ、設定例、Firewall、確認手順をまとめます。アドレスとドメイン名は公開用の例です。

この記事の結論

  • Web Proxy は内部向けの明示プロキシとして扱う
  • 外部インターフェイスでは待ち受けない
  • 透過プロキシは影響範囲を説明できる場合だけ検討する
  • キャッシュは補助用途として容量を決める
  • DNS forwarding、DHCP、Firewall と合わせて確認する

Web Proxy の位置づけ

VyOS の Web Proxy は、内部ネットワーク向けの補助サービスです。端末が明示的にプロキシを指定し、VyOS が Web 通信の中継点になります。すべての通信を無理に集約するものではなく、用途を限定して使います。

観点考え方注意点
待受アドレス内部向けアドレスで待ち受ける外部側で待ち受けない
待受ポート明示プロキシとしてポートを指定する端末側の設定と合わせる
透過プロキシ基本は無効にする通信の横取りは影響範囲が広い
キャッシュ補助用途として容量を決めるルーターの資源を使いすぎない
Firewall内部からの利用に限定する外部公開プロキシにしない

明示プロキシとして設定する

Web Proxy は、どのアドレスとポートで待ち受けるかを明示します。内部ネットワーク向けの loopback や内部インターフェイスのアドレスを使い、クライアント側にはそのアドレスとポートを指定します。

configure
set service webproxy listen-address '10.0.255.88' port '3128'
set service webproxy listen-address '10.0.255.88' disable-transparent
commit
save

disable-transparent を入れることで、透過プロキシとして通信を横取りするのではなく、クライアントが明示的にプロキシを使う構成にできます。通信経路が分かりやすく、トラブルシューティングもしやすくなります。

キャッシュサイズを決める

プロキシにキャッシュを持たせる場合、ディスクキャッシュ、メモリキャッシュ、最大オブジェクトサイズを決めます。キャッシュは便利ですが、ルーターの本来の役割は転送と境界制御なので、過度に大きくしすぎない方が扱いやすくなります。

configure
set service webproxy cache-size '102400'
set service webproxy mem-cache-size '4096'
set service webproxy maximum-object-size '1000000'
commit
save

ここでの値は例です。プロキシを本格的なキャッシュサーバーとして使うのか、一時的な補助として使うのかで適切な値は変わります。ログやキャッシュの保存方針も合わせて決めます。

DNS forwarding や DHCP と組み合わせる

Web Proxy は単独で置くより、DNS forwarding や DHCP と合わせて考えると追いやすくなります。DNS forwarding は名前解決の入口、DHCP は端末への設定配布、Web Proxy は Web 通信の補助的な中継点です。

機能役割Web Proxy との関係
DNS forwarding名前解決の入口プロキシ名や上流接続の前提になる
DHCP端末への設定配布DNS や場合によってはプロキシ情報を配る
Firewall利用範囲の制限内部からの接続だけを許可する
Monitoring状態確認とログ利用状況や障害時の入口になる

DHCP でプロキシ設定を自動配布するか、端末やブラウザ側で明示設定するかは運用方針によります。強制的に通す設計にするほど、例外処理と障害時の影響も大きくなります。

Firewall で公開範囲を制限する

Web Proxy は内部向けサービスとして扱います。外部からプロキシとして使える状態にすると、踏み台や不正利用の原因になります。VyOS 側の listen-address と Firewall の両方で、内部ネットワークからの利用に限定します。

configure
set firewall ipv4 name TRUST-LOCAL rule 3128 action 'accept'
set firewall ipv4 name TRUST-LOCAL rule 3128 protocol 'tcp'
set firewall ipv4 name TRUST-LOCAL rule 3128 destination port '3128'
set firewall ipv4 name OUTSIDE-LOCAL default-action 'drop'
commit
save

上の例は、内部側からの利用を許可し、外部側は既定で落とす考え方です。実際のルール名や適用先インターフェイスは、既存の Firewall 設計に合わせます。

透過プロキシを使う場合の注意

透過プロキシは、端末にプロキシ設定を入れなくても通信をプロキシへ誘導できる一方で、通信経路を見えにくくします。HTTPS、証明書、例外通信、障害時の切り分けに影響するため、必要性を説明できる場合だけ検討します。

  • 対象セグメントを限定する
  • 例外通信を事前に決める
  • HTTPS 通信への影響を確認する
  • 障害時にプロキシを外して切り分けられるようにする
  • ログとプライバシーの扱いを決める

確認する

設定後は、Web Proxy の設定、待受、クライアントからの疎通、上流への到達性を分けて確認します。疎通しない場合は、Proxy 設定そのもの、Firewall、名前解決、上流への経路を順番に見ます。

show configuration commands | match 'service webproxy'
show service webproxy
show log | match webproxy
curl -x http://10.0.255.88:3128 http://example.com/

よくあるつまずき

症状見る場所考え方
端末から接続できないlisten-address / Firewall内部側で待ち受け、内部から許可されているか見る
外へ出られないDNS / 上流経路プロキシから外部へ到達できるか確認する
一部サイトだけ失敗するHTTPS / 例外 / キャッシュ透過化やキャッシュの影響を疑う
外部から使えてしまうoutside-local外部側で待ち受けていないか確認する
障害時に切り分けにくい端末設定 / 透過プロキシ明示プロキシなら外して確認しやすい

まとめ

VyOS の Web Proxy は、ルーター内蔵の補助サービスとして扱うと理解しやすくなります。内部向けの明示プロキシとして待受アドレスとポートを決め、外部公開せず、DNS forwarding、DHCP、Firewall と合わせて確認します。

透過プロキシは便利に見えますが、通信経路を見えにくくします。プロキシを使う目的、公開範囲、キャッシュ、ログ、障害時の切り分けを先に決めておくと、運用時に迷いにくくなります。

関連する記事
VyOS Web Proxy 設定 – 内部向け明示プロキシとして使う

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る