squid で特定のサイトのみアクセスを許可する

2005-7-11 19:00
このエントリーをはてなブックマークに追加

squid により、通常はすべてのアクセスを拒否し、特定サイトのみアクセスを許可する方法です。squid で特定のサイトをアクセス拒否するの逆の設定となります。実現するには squid.conf を編集します。まずはアクセスコントロールリスト (acl) を定義します。

  acl whitelist dstdomain "/etc/squid/whitelist"
  acl whitelist_regex url_regex "/etc/squid/whitelist_regex"

つぎに /etc/squid/whitelist で定義したホワイトリストのファイルに、アクセスを許可したいサイトを記述します。whitelist にはドメインを列記します。

  # whitelist
  .asahi.com
  .microsoft.com
  www.nifty.com
  www.example.com
  ……

. (ドット)で始めることにより、サブドメインを含めた指定ができます。また whitelist_regex には、サイトを正規表現で記述します。

  # whitelist_regex
  ^http://example.com/~hoge/
  ^http://example.net/
  ……

次に、http_access で定義した acl を許可する設定とします。また必要に応じて our_networks (192.168.1.0/24 など)のような acl の設定は外すか、deny に設定します。

  http_access allow localhost
  http_access allow whitelist
  http_access allow whitelist_regex
  # http_access allow our_networks
  http_access deny all

http_access は先に指定した者から解釈されるので、順番をよく考える必要があります。all を指定するのは一番最後になります。squid の設定を再読込します。

  # service squid reload

これで指定したサイトにはアクセスできますが、それ以外のサイトにアクセスすると、アクセス拒否画面が表示されます。

20050705_access_deny.png

この拒否画面はカスタマイズすることができます。squid.conf の error_directory で指定されたディレクトリにある ERR_ACCESS_DENIED というHTML ファイルを変更すれば、カスタマイズされた画面を表示させることが可能です。

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

32 queries. HTML convert time: 0.331 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン