ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
フォワードプロキシ (forward proxy) とは、クライアント (利用者) 側に立ち、内部のクライアントに代わって外部のサーバへアクセスする中継サーバです。社内 LAN の PC が直接インターネットへ出るのではなく、いったんプロキシへ要求を送り、プロキシが代理で目的のサイトへアクセスして、その結果をクライアントへ返します。利用者と外部の間に「出口の関所」を置くイメージで、企業ネットワークの境界に置かれることが多い仕組みです。親項目の 負荷分散・プロキシ・CDN を参照してください。
「プロキシ (proxy)」は代理人の意味で、フォワードプロキシは誰のための代理か = クライアントのための代理です。これに対し、サーバの代理として振る舞うのがリバースプロキシで、両者は立つ位置と目的が正反対です。フォワードプロキシは主に外向き通信の制御・最適化・匿名化のために使われます。
仕組み
クライアントは「このサイトを見たい」という HTTP 要求を、目的サイトではなくフォワードプロキシ宛に送ります。プロキシは要求内容 (宛先 URL、認証情報など) を検査し、ポリシー上許可されていれば自分が改めて外部サーバへ接続して応答を取得し、それをクライアントへ転送します。流れを整理すると次のようになります。
- 要求の受付: クライアントはブラウザや OS のプロキシ設定で「プロキシのアドレス:ポート」を指定し、すべての外向き要求をプロキシへ送る。
- ポリシー判定: プロキシは宛先 URL・カテゴリ・利用者認証を確認し、許可/拒否を決める (URL フィルタリング)。
- 代理アクセス: 許可された要求についてはプロキシ自身が外部サーバへ接続する。外部から見える送信元 IP はプロキシのものになる (匿名化)。
- キャッシュ: 取得した静的コンテンツをプロキシに保存し、次回以降は外部へ出ずに手元から返すことで帯域と応答時間を削減する。
HTTPS の場合、暗号化されたトンネルを通すために CONNECT メソッドが使われ、プロキシは中身を見ずに TCP を中継します (中身まで検査するには SSL インスペクション用の証明書配布が別途必要です)。HTTP の基礎は HTTP、暗号化は HTTPS を参照してください。
設定・実用例
代表的なフォワードプロキシ実装である Squid の最小設定例です。社内 LAN (192.168.0.0/16) からのアクセスのみ許可し、3128 番ポートで待ち受けます。
# /etc/squid/squid.conf の例
http_port 3128
# 社内ネットワークを定義
acl localnet src 192.168.0.0/16
# 接続を許可するポートを限定 (CONNECT は 443 のみなど)
acl SSL_ports port 443
acl Safe_ports port 80 443 21
# localnet からのアクセスを許可、それ以外は拒否
http_access allow localnet
http_access deny all
# キャッシュ領域 (10GB)
cache_dir ufs /var/spool/squid 10000 16 256
# アクセスログ (出口監査に利用)
access_log /var/log/squid/access.log squid
クライアント側 (Linux) では環境変数でプロキシを指定して動作確認できます。
# シェルにプロキシを設定して curl で外部アクセス
export http_proxy=http://proxy.example.com:3128
export https_proxy=http://proxy.example.com:3128
curl -I https://www.example.com/
# 認証付きプロキシの場合
curl -x http://user:pass@proxy.example.com:3128 -I https://www.example.com/
設定変更後は squid -k reconfigure で再読み込みします。設定ファイル全般の扱いは conf(.conf) も参考になります。
主な用途
- アクセス制御 (URL フィルタリング): 業務に無関係なサイトや危険なサイトへの接続を一元的にブロックする。
- アクセスログの取得: 誰がいつどこへアクセスしたかを記録し、監査・インシデント調査に使う。
- 帯域の節約: よくアクセスされる静的コンテンツをキャッシュし、外向き回線の負荷を下げる。
- 匿名化: クライアントの送信元 IP を隠し、外部にはプロキシの IP だけを見せる。
- 認証ゲートウェイ: 外部アクセス時にユーザ認証を必須化し、未認証の通信を遮断する。
フォワードプロキシとリバースプロキシの比較
| 観点 | フォワードプロキシ | リバースプロキシ |
|---|---|---|
| 立つ位置 | クライアント側 | サーバ側 |
| 代理する対象 | クライアント (利用者) | サーバ (バックエンド) |
| 主目的 | 出口制御・キャッシュ・匿名化 | 負荷分散・SSL 終端・バックエンド隠蔽 |
| クライアントの設定 | 必要 (プロキシを明示指定) | 不要 (利用者は意識しない) |
| 代表実装 | Squid | nginx / Apache / HAProxy |
注意点
- 単一障害点になりやすい: 全員の外向き通信が集中するため、プロキシが落ちると社内全体が外部へアクセスできなくなる。冗長化が望ましい。
- HTTPS の中身は基本見えない: CONNECT トンネルでは暗号化されているため URL の一部とドメインしか分からない。中身検査には SSL インスペクション (証明書配布) が必要で、プライバシー・運用上の配慮が要る。
- オープンプロキシの危険: アクセス元を絞らず誰でも使える状態にすると、第三者の踏み台として悪用される。必ず接続元 IP や認証で制限する。
- キャッシュの鮮度: キャッシュ TTL を長くしすぎると古いコンテンツを返してしまう。動的コンテンツはキャッシュ対象から外す。
- クライアント設定の徹底: プロキシ設定をすり抜ける直接通信を許すと出口制御が無効化される。ファイアウォールでプロキシ以外の外向き通信を塞ぐのが定石。
関連リンク
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- フォワードプロキシ
- リバースプロキシ
- ロードバランサ
- nginxリバースプロキシ設定
- HAProxy
- CDN
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?