VyOS の Web Proxy は、ルーター自身にプロキシ機能を持たせ、内部ネットワークからの HTTP / HTTPS 通信を明示的に経由させるための機能です。現在の構成では、透過プロキシとして通信を横取りするより、待受アドレスとポートを明示した通常のプロキシとして扱う方が運用しやすくなります。
Web Proxy は、DNS forwarding や DHCP と同じように内部端末を支える補助サービスです。ただし、ルーターの主役は転送と境界制御なので、プロキシをどこまで担わせるか、外部へ公開しないこと、障害時にどう切り分けるかを先に決めておきます。
この記事では、VyOS 1.5 系で読むことを前提に、Web Proxy を内部向け明示プロキシとして使う場合の位置づけ、設定例、Firewall、確認手順をまとめます。アドレスとドメイン名は公開用の例です。
書籍
プロキシ、DNS、Firewall、ルーティング、ネットワーク設計の基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
この記事の結論
- 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
savedisable-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 と合わせて確認します。
透過プロキシは便利に見えますが、通信経路を見えにくくします。プロキシを使う目的、公開範囲、キャッシュ、ログ、障害時の切り分けを先に決めておくと、運用時に迷いにくくなります。

