著者:田中麻維
大手電機メーカー系のSierに入社後、インフラエンジニアとしてLinuxサーバーの構築や保守・運用、ソフトウェアの開発業務を経験。アイティベル入社後は、IT領域の執筆などを行う。
フォワードプロキシはインターネット上のWebサーバーに対して、社内ネットワークにあるデバイスの代わりにアクセスするサーバーです。フォワードプロキシは悪意のあるサイトや有害サイトへのアクセスを抑止する効果があり、セキュリティを強固にするうえで重要な役割を果たします。
本記事では、フォワードプロキシの概要と仕組み、フォワードプロキシの機能、フォワードプロキシの仕組み、フォワードプロキシの運用とトラブルシューティングについて解説します。
1. フォワードプロキシとは
フォワードプロキシは、一般的にプロキシサーバーと呼ばれるサーバーです。社内ネットワークのデバイスの代わりにインターネット上のWebサーバーにアクセスし、コンテンツを取得する役割を果たします。
フォワードプロキシを使用すると、悪意のあるサイトに対する直接アクセスを防止でき、またURLフィルタリング、コンテンツのキャッシュ、アクセス履歴の取得が可能です。
なお、本記事ではプロキシサーバーを明示的にフォワードプロキシサーバーと記載します。
プロキシサーバーの種類
プロキシサーバーはフォワードプロキシサーバー以外に、キャッシュサーバーやリバースプロキシサーバーがあります。それぞれの違いは以下のとおりです。
種類 | フォワードプロキシサーバー | キャッシュサーバー | リバースプロキシサーバー |
アクセス元 | 社内ネットワーク | 社内ネットワーク | インターネット |
アクセス先 | インターネット上のWebサーバー | インターネット上のWebサーバー | 自社のWebサーバー |
目的 | インターネット上のWebサーバーにあるコンテンツの代理取得 | インターネット上にあるWebサーバーのコンテンツキャッシュ | インターネットから自社のWebサーバーへ代理アクセス |
機能 | コンテンツ代理取得フィルタリングログ記録 | コンテンツキャッシュ | コンテンツ代理取得ログ記録 |
配置場所 | DMZ | DMZ | DMZ |
なお、リバースプロキシサーバーの詳細は以下の記事で解説しています。
明示型プロキシサーバーと透過型プロキシサーバー
フォワードプロキシサーバーの設定方法には、明示型プロキシと透過型プロキシと呼ばれる2種類の方法があります。
明示型プロキシはデバイスのブラウザにフォワードプロキシの設定をします。一方、透過型プロキシはネットワーク機器に対してフォワードプロキシへのルーティングポリシーを設定する方法です。設定方法のほかに対象機器が違います。
2. フォワードプロキシの仕組み
フォワードプロキシサーバーが動作する仕組みは以下のとおりです。
まず、社内ネットワークにあるデバイスがフォワードプロキシサーバーへアクセスします。
この際、フォワードプロキシサーバーにキャッシュがあるか確認し、コンテンツがない場合はフォワードプロキシサーバーが該当するURLへアクセスを行います。URLフィルタリング機能で悪意のあるサイトや有害サイトの除外もできます。
いったん、アクセスしたWebサイトのコンテンツはフォワードプロキシサーバーにキャッシュされ、次回同じWebサーバーにアクセスする際にはキャッシュされたコンテンツをデバイスに返します。アクセス履歴はフォワードプロキシサーバーで記録され、どのサイトにアクセスしたか調査できます。
3. フォワードプロキシの主な機能
フォワードプロキシの主な機能は以下の4つです。
- Webサーバーへの代理アクセス
- URLフィルタリング
- コンテンツのキャッシュ
- アクセス履歴の取得
それぞれの機能を解説します。
Webサーバーへの代理アクセス
フォワードプロキシサーバーの大きな役割はWebサーバーへの代理アクセスです。インターネット上にあるWebサーバーへのアクセスを代理して、社内ネットワークのデバイスが個別にインターネット上のWebサーバーへアクセスすることを制御できます。セキュリティの向上や帯域幅の管理が可能です。
URLフィルタリング
フォワードプロキシサーバーは、特定のURLにアクセスしないようにフィルタリングする機能があります。悪意のあるサイトや有害サイトを除外して、フィッシングサイトへのアクセス制御が可能です。悪意のあるサイトへのアクセス制限により、マルウェアのダウンロードも防止できます。また、業務に不要なサイトへのアクセスを制限して、生産性の向上も図れます。
コンテンツのキャッシュ
フォワードプロキシサーバーはアクセスしたサイトのコンテンツをキャッシュする機能を持ちます。過去にアクセスしたサイトであればキャッシュを返すため、インターネット向け通信の帯域幅を浪費せずに済む点が特徴です。仮にキャッシュしたコンテンツが最新でなければ、フォワードプロキシサーバーがWebサーバーへアクセスしてコンテンツを取得します。ウェブページの読み込み速度が向上し、ユーザーエクスペリエンスが向上します。
アクセス履歴の取得
フォワードプロキシサーバーにはアクセスログを記録する機能があり、社内ネットワークからどのWebサイトにアクセスしたのか履歴を残せます。収集したログによってアクセスしたサイトを把握でき、有害サイトや悪意のあるサイトへアクセスしていないかモニタリングするのに役立てられます。
4. フォワードプロキシの事例
フォワードプロキシサーバーを使用した導入事例にはさまざまなものがあります。
本章では、フォワードプロキシを使用した事例をいくつか紹介します。
事例①Webサーバー向けフォワードプロキシ
Webサーバー向けフォワードプロキシはもっともよく使用される事例で、インターネット上のWebサーバーに対するアクセスをフォワードプロキシ経由にします。悪意のあるサイトへのアクセス制御が行える、あるいはコンテンツキャッシュによるネットワーク帯域幅の減少に効果があります。
実装方法は明示型プロキシと透過型プロキシのどちらでも可能です。明示型プロキシを採用する場合はPACファイルを使用して設定を一元管理し、変更時にはPACファイルの設定を変更すると、すべてのデバイスに変更を適用できます。
事例②クラウド向けフォワードプロキシ
通常フォワードプロキシサーバーはインターネット上のWebサーバーを対象としますが、この事例ではクラウドに対するアクセスをフォワードプロキシサーバー経由にします。クラウドに構築した各種サービスのほか、Microsoft 365といったSaaSアプリケーションがフォワードプロキシの対象です。
今回紹介する事例の構成は通常のフォワードプロキシと同じです。一方でフォワードプロキシサーバーをクラスタリングしたり、ロードバランシングしたりして、可用性を高める構成もあります。
クラウドへのアクセスをフォワードプロキシ経由とするとパフォーマンスの向上や設定をまとめられるため、運用の負荷軽減につながります。
事例③Active Directoryとの連携
通常、フォワードプロキシの設定は個々のデバイスに対して行わなければなりません。しかし、この事例ではActive Directoryと連携させて、Active DirectoryユーザーのみをWeb参照させるように制限できます。
ベンダーから提供されているソリューションを必要とするものの、Active Directoryでユーザー管理をしている場合は親和性が高く、運用負荷を削減できるソリューションです。
5. フォワードプロキシの導入形態
さまざまなフォワードプロキシの導入形態があります。目的に応じて自社に最適な形態を検討するとよいでしょう。
導入形態 | メリット | デメリット |
自社で構築する方法 | ・カスタマイズ性が高い ・特定のニーズに合わせた設定が可能 | ・設定と管理に専門知識が必要 ・定期的なメンテナンスも必要 |
アプライアンス製品を購入する方法 | ・専用ハードウェアによる高い性能と信頼性 ・ベンダーサポートの利用が可能 | ・高コスト ・ベンダーに依存しやすい |
クラウドサービスを利用する方法 | ・迅速な導入 ・スケーラビリティ・運用負荷の低減 | ・カスタマイズ制限 ・サービス終了のリスクがある |
本章ではフォワードプロキシを導入する際の3つの形態について解説します。
自社でフォワードプロキシサーバーを構築する方法
オンプレミス、あるいはクラウドに仮想サーバーを構築し、フォワードプロキシのソフトウェアをインストールする方法です。
代表的なフォワードプロキシ用ソフトウェアはSquidです。そのほかにもApacheやNGINXもあります。これらのソフトウェアをインストールして構成します。ApacheとNGINXはWEBサーバー用のソフトウェアですが、設定を加えれば、フォワードプロキシ機能を実装できます。
自社でフォワードプロキシサーバーを構築する場合、細かな設定ができるメリットがあります。一方で、設定には高度な知識が必要で、定期的なメンテナンスなど運用負荷がかかるデメリットがあります。
アプライアンス製品を購入する方法
フォワードプロキシサーバーとしてキッティングされているアプライアンス製品を導入する方法です。
たとえば、F5(ベンダー)から提供されているBIG-IPや Fortinet(ベンダー)のFortiProxyが該当します。GUIとCUIの両方で設定できる場合が多く、担当者のスキルに応じて設定できる点がメリットです。
サポートが受けやすいため運用にかかる負荷が下がる一方で、アプライアンス製品の場合、初期導入費用やライセンス費用が高い場合が多く、運用コストが発生するデメリットがあります。
クラウドサービスを利用する方法
クラウドサービスの利用は、主にSaaSサービスを利用する方法です。
この形態の例として、ZscalerクラウドプロキシやIIJクラウドプロキシサービスがあります。
クラウドサービスを利用する場合、導入がしやすく、ハードウェア・ソフトウェアの管理が不要なため、運用負荷がかからない点がメリットです。サービスによっては設定追加も自動のものもあります。導入が容易で、クラウド利用が増加しているので、現在主流になりつつあるプロキシです。
ただし、自社でフォワードプロキシサーバーを所有していないため、細かな設定ができない場合があります。さらに、クラウドベンダーがサービスを廃止するリスクも考慮しなければなりません。
6. フォワードプロキシの運用
フォワードプロキシの運用はいくつかあります。運用時のポイントをしっかり意識しましょう。
フォワードプロキシの運用は通常のリソース管理のほかに以下の作業があります。
- フォワードプロキシの設定
- アクセスログのモニタリング
- ネットワークパフォーマンスの最適化
- セキュリティ対策
それぞれの作業について解説します。
フォワードプロキシの設定
フォワードプロキシの設定には、プロキシ対象であるURLの登録・追加・削除があります。
追加作業では、設定ファイルにアクセスするWebサイトのURLとポート番号を記載します。設定の書式はSquidやApache、NGINXで異なるため注意が必要です。設定を削除する場合は、設定ファイルをバックアップするかコメントアウトして、元に戻せる状態にするとよいでしょう。
サーバーのモニタリング
フォワードプロキシサーバーのリソースモニタリングやログモニタリングも運用作業のひとつです。
モニタリングは2つの方法があり、監視ツールのログ監視機能を有効化してアラートを出す方法と、定期的にログをチェックする方法があります。
ログ監視機能を利用すればリアルタイムでアラートを発報させられます。ログは保存期間を決めてSyslogサーバーやSIEM(Security Information and Environment Management)を利用して保存しましょう。
ネットワークパフォーマンスの最適化
フォワードプロキシサーバー自体にネットワークパフォーマンスを最適化する機能はありません。しかし、キャッシュ機能を使用したり、リクエストの通過可能最大数を設定したりして、過度なリクエスト処理が起こらないように調整できます。
たとえば、ApacheのProxyMaxForwardsディレクティブやSquidのファイルディスクリプタ数が該当します。ただし、適切な値を設定しないとアクセス数が少ない状態でエラーを起こす原因となるため注意が必要です。
セキュリティ対策
セキュリティ対策の作業は定期的なパッチ適用や脆弱性診断が該当します。
フォワードプロキシサーバーで使用するソフトウェアの脆弱性情報を定期的に収集するよう心がける必要があります。アクセス制御リスト(ACL)やファイアウォールルールの設定も、セキュリティを強化するうえで重要です。
7. フォワードプロキシのトラブルシューティング
フォワードプロキシサーバーを運用していると、さまざまなトラブルに遭遇します。その中でも主なトラブルとトラブルシューティングについて解説します。
フォワードプロキシサーバーが起動していない
フォワードプロキシサーバーが起動していない主な原因は、プロセスダウンかポートの競合によるものです。
始めに起動しているかプロセスやサービスを確認します。そのうえで、ポートの競合が起きていないかnetstatコマンドで確認してください。起動状況を確認するために、ログにエラーが出力されていないか確認しましょう。
フォワードプロキシサーバーから404エラーを受信する
404エラーが表示される場合は、ネットワークに関係するものがほとんどです。
ブランクページ表示の際と同様に、プロキシサーバー接続時のルーティングやポートのListen状態を確認します。ルーティングに関してはアプリケーションで設定されているフォワードプロキシサーバーへのルーティングについても確認してください。
フォワードプロキシサーバーへの接続がタイムアウトする
接続がタイムアウトする、主な原因はプロセスダウンかサービスが起動していないことです。
フォワードプロキシサーバーが起動しているかpsコマンドでプロセスの状態を確認します。systemctlやchkconfigといったサービス管理コマンドでサービスの状態を確認し、起動していない場合は起動してください。ポートの状態を確認するためにnetstatコマンドの実行も必要です。
上記以外にもフォワードプロキシサーバーの障害発生、フォワードプロキシサーバーのリモートハッキング、アクセスコントロールの設定誤りによる通信不可など、さまざまなトラブルが起こります。サーバーのログを確認するとともに、冗長化やリモートハッキング時の対応、定期的な設定確認をしっかり行いましょう。
まとめ
フォワードプロキシは、社内ネットワークのデバイスがインターネット上にあるWebサーバーのコンテンツを代理で取得するために配置されるサーバーです。
悪意のあるサイトや有害サイトへのアクセスを制御する役割のほかに、キャッシュを使用して高速アクセスを可能とし、アクセス履歴を残してセキュリティを強固にする役割も果たします。
フォワードプロキシサーバーの導入は自社で構築する方法やアプライアンス製品の導入、クラウド型フォワードプロキシを利用する方法もあるため、状況に応じて最適な方法の選択が重要です。