squid で特定のサイトのみアクセスを許可する
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
これで指定したサイトにはアクセスできますが、それ以外のサイトにアクセスすると、アクセス拒否画面が表示されます。
この拒否画面はカスタマイズすることができます。squid.conf の error_directory で指定されたディレクトリにある ERR_ACCESS_DENIED というHTML ファイルを変更すれば、カスタマイズされた画面を表示させることが可能です。
コメントはまだありません
No comments yet.
Sorry, the comment form is closed at this time.