※超超超初心者の自分用忘備録※
※いろんなとこから情報を集めてきて貼り付けておくだけ※
※多分お役には立てません※
Squidとは?
プロキシ (Proxy) サーバ、ウェブキャッシュサーバなどに利用されるフリーソフトウェア。
当初はUNIX系OS向けに開発されていたが、現在はWindowsを含むほとんどのOSで利用可能であり、GNU GPLライセンス下で利用できる。
用途
重複リクエストに対したキャッシュ応答によるウェブサーバの高速化や、ネットワーク資源を共有する人々が行うWorld Wide WebやDNSなどの様々なネットワーククエリのキャッシュなど、多岐にわたる。
HTTP、HTTPS、FTPをはじめとする多様なプロトコルをサポートしているが、主にHTTPとFTPで利用される。
TLS/SSL、HTTPSなどのセキュリティで保護された通信のサポートも行われている。
また、ウェブキャッシュ機能により、特にフォワーディングプロキシとして利用される場合は利用する組織外へのウェブ系のトラフィックを削減することができる。
動作モード
Squidには、用途に合わせて次の3つのモードがある。
フォワーディングプロキシ
Squidの最もポピュラーな機能。
インターネット上のウェブサーバなどに接続する際に、ウェブアクセスを中継する機能のこと。
主にローカルネットワークの出口に設置される。
クライアントは通常、ウェブブラウザの「プロキシ設定」によりフォワーディングプロキシをプロキシサーバとして設定して利用する。
フォワーディングプロキシを利用する主な理由は次の通り。
- ウェブキャッシュ機能と組み合わせてネットワーク外部へのトラフィックを軽減する
- ウェブリダイレクト機能と組み合わせて、内部ネットワークからアクセスできる先を制限する(ペアレントコントロールもこの機能を利用している)
- 認証機能と組み合わせて、ネットワーク内からのウェブアクセスを個人レベルで制限する
- 接続サイトによってインターネット回線を使い分ける
多段プロキシ
Squidは、中継したウェブのリクエストを直接ウェブサーバに接続して処理するだけでなく、後段のプロキシサーバに中継する機能も持っており、これを多段プロキシという。
巨大なネットワーク内でプロキシの階層構造を組むこともできるし、外部のSaaSとして提供されているウィルスチェックプロキシへの中継としての用途としても利用されている。
後者の利用方法では、ウィルスチェックプロキシ自体が全世界のURLを完全に処理することができないなどの理由で、一部URLについてはウィルスチェックプロキシへバイパスしないようにするなどといった利用がなされている。
リバースプロキシ
インターネットからのウェブアクセスを代表して受信し、内部にあるウェブサーバ群との通信を中継する機能である。
このためウェブサーバ群の入り口部分に窓口として設置されるのが一般的である。
リバースプロキシを導入することにより、内部のウェブサーバの負荷分散を行ったり、URLごとにサーバを振り分けたりすることができる。
特に後者の利用方法では、アプリケーションサーバを別々に用意している場合や、同一ドメインながらコンテンツを別々の開発会社が作成しそれぞれ別々のサーバに収容されている場合などによく用いられる。
透過プロキシモード
透過プロキシとは、利用者がプロキシの存在を意識することなく利用できるプロキシのことであり、ネットワークの出口に設置されたルータなどと組み合わせて利用する。
広い意味では、リバースプロキシも透過プロキシと見ることができる。
技術的には、特定ポートへ向けたアクセスのみをルータから透過プロキシサーバに対して振り向け、透過プロキシは通常のHTTPなどのリクエストを受け付けたふりをして接続先のHTTPサーバへリクエストを中継する。
Squidはこの機能をサポートしている。
Linuxサーバでは、Squidとiptablesのパケットリダイレクト機能と組み合わせることによって透過プロキシを実現することができる。