よくある質問・用語集

サーバー構築のデージーネットTOP > OSS情報 > よくある質問・用語集 > 用語集 > squidとは

  • もっと調べる
  • どうやって使う?

squidとは

squidとは、プロキシサーバ、ウェブキャッシュサーバなどに利用されているオープンソースソフトウェアである。当初はUNIX系OS向けに開発されていたが、現在はWindowsを含むほとんどのOSで利用可能であり、GNU GPLライセンス下で利用できる。squidは、Red Hatをはじめとする多くのLinuxディストリビューションで標準的にパッケージ提供されている。

squidという名称は、「いか」を意味している。複数のクライアントからの通信を集約し、いか足のようなシステム構成になることから命名されたと言われている。

squidは、HTTP、HTTPS、FTPをはじめとする多くのプロトコルに対応している。また、ウェブキャッシュ機能により、特にフォワーディングプロキシとして利用される場合は利用する組織外へのウェブ系のトラフィックを削減することができる。

また最近では、squidをOffice 365等のネットサービスの利用のためのインターネット回線の分離のためにも利用することも多くなり、再注目されている。

squidの動作モード

squidには、用途に合わせて次の3つのモードがある。

  • フォワーディングプロキシ
  • リバースプロキシ
  • 透過プロキシモード

フォワーディングプロキシ

squidの最もポピュラーな機能がフォワーディングプロキシである。フォワーディングプロキシとは、インターネット上のウェブサーバなどに接続する際に、ウェブアクセスを中継する機能である。主にローカルネットワークの出口に設置される。クライアントは通常、ウェブブラウザの「プロキシ設定」によりフォワーディングプロキシをプロキシサーバとして設定して利用する。

フォワーディングプロキシを利用する主な理由は次の通り。

多段プロキシ

squidは、中継したウェブのリクエストを直接ウェブサーバに接続して処理するだけでなく、後段のプロキシサーバに中継する機能も持っており、これを多段プロキシという。巨大なネットワーク内でプロキシの階層構造を組むこともできるし、外部のSaaSとして提供されているウィルスチェックプロキシへの中継としての用途としても利用されている。後者の利用方法では、ウィルスチェックプロキシ自体が全世界のURLを完全に処理することができないなどの理由で、一部URLについてはウィルスチェックプロキシへバイパスしないようにするなどといった利用がなされている。

リバースプロキシ

リバースプロキシとは、インターネットからのウェブアクセスを代表して受信し、内部にあるウェブサーバ群との通信を中継する機能である。このためウェブサーバ群の入り口部分に窓口として設置されるのが一般的である。リバースプロキシを導入することにより、内部のウェブサーバの負荷分散を行ったり、URLごとにサーバを振り分けたりすることができる。特に後者の利用方法では、アプリケーションサーバを別々に用意している場合や、同一ドメインながらコンテンツを別々の開発会社が作成しそれぞれ別々のサーバに収容されている場合などによく用いられる。

透過プロキシ

透過プロキシとは、利用者がプロキシの存在を意識することなく利用できるプロキシのことであり、ネットワークの出口に設置されたルータなどと組み合わせて利用する。広い意味では、リバースプロキシも透過プロキシと見ることができる。技術的には、特定ポートへ向けたアクセスのみをルータから透過プロキシサーバに対して振り向け、透過プロキシは通常のHTTPなどのリクエストを受け付けたふりをして接続先のHTTPサーバへリクエストを中継する。squidはこの機能をサポートしている。

Linuxサーバでは、squidとiptablesのパケットリダイレクト機能と組み合わせることによって透過プロキシを実現することができる。

squidを使ったセキュリティの強化

squidでプロキシを構築する理由の一つが、組織内から組織外へのWebトラフィックに対するセキュリティを強化することである。

squidの多彩なアクセス制御機能

squidには、次に挙げるような多彩なアクセス制御機能がある。

  • 利用者に関するアクセス制御
    - クライアントIPアドレスをベースにアクセスを制御する機能
    - ユーザ認証によりアクセスを制御する機能
  • 接続先に関するアクセス制御
    - 接続先によってアクセスを制御する機能
  • アクセス制御の方法
    - 利用を許可もしくは不許可とする
    - 認証を必要とするかどうか
    - URLフィルタリングなど外部フィルタと連携するかどうか
    - 特に接続先URLに関して、実際の接続先を制御

これら以外にも多彩なアクセス制御が存在するが、これらの制御方法を組み合わせることにより、きめ細かにアクセスの振り分けや制御を行うことができるようになっている。

squidと外部認証プログラムとの連携

squidはユーザ認証などを行う機能をサポートしているが、実はsquid本体は、認証機構をすべて外部プログラムと連携して実現する仕組みになっている。下記のような標準パッケージにバンドルされている認証プログラムを利用することもできるし、より複雑な認証ポリシーを実現したい場合は認証プログラムを自作して利用することも可能だ。

  • パスワードのダイジェスト認証
  • SASL認証
  • SMB認証
  • Kerberos認証
  • LDAP認証
  • NIS認証
  • クライアント証明書での認証
  • ワンタイムパスワードでの認証

squidと規制プログラムとの連携

squidはURLフィルタリングなどのウェブリダイレクトプログラムと連携することができる。アクセス制御と組み合わせ、特定のユーザに対してURLフィルタリングをかけることで、ペアレントコントロールなどの機能を持たせることもできる。squidは、規制プログラムとの連携では、ICAP(Internet Content Adaptation Protocol)をサポートしている。

squidのサポート

squidは、多くのLinuxディストリビューションに採用されている。そのため、脆弱性が発見された場合のアップデートなども用意に入手できる。さらに、RedHat Enterprise Linuxなどの商用ディストリビューションを利用すれば、設定方法に関するQ&Aや、問題が発生した場合の問い合わせを受けることもできる。

デージーネットの取り組み

デージーネットでは、squidを使ったプロキシサーバの構築と、構築後のサポートを提供している。デージーネットは、インターネットサービスプロバイダのシステム構築の実績が多く、認証やセキュリティ配慮したシステム構築を手がけている。そのため、そうした厳しい環境でsquidを利用することも多い。特に、ISPでの利用に耐えられるURLフィルタリングやウィルスチェックの仕組みをオープンソースソフトウェアで構築する場合には、squidを利用している。これは、squidに外部認証プログラムやICAPなどを使って外部と連携できる仕組みが用意されているからである。外部デージーネットでは、こうしたインタフェースを利用したカスタマイズなどの事例も多い。

【カテゴリ】:セキュリティ  オープンソースソフトウェア  

  • もっと調べる
  • どうやって使う?

関連用語

squidに関連するページ(事例など)


デージーネット用語集のページです。「squid」という用語と関連情報について説明します。「squid」について情報を収集する際、サービスをご検討いただく際などに用語集ページをお役立てください。

squidとは先頭へ