戻る

Squidでドメイン名マッチに正規表現を使う

Squidを使ってプロキシサーバーを構築する際、ドメイン名を使ってアクセス許可リストとかアクセス禁止リストを作る際に dstdomain を使うと思うのだが、パターンマッチで制御したい場合はそのままだと .example.com みたいにサブドメイン一括でしか設定できない。

もうちょっと複雑なルールを作りたい時は、 dstdom_regex で正規表現が使える。

http://www.squid-cache.org/Doc/config/acl/

acl aclname dstdom_regex [-n] [-i] \.foo\.com ...
  # regex matching server [fast]
  #
  # For dstdomain and dstdom_regex a reverse lookup is tried if a IP
  # based URL is used and no match is found. The name "none" is used
  # if the reverse lookup fails.

dstdomain と同じく、ファイルにリストを記載してそれを読み込むという使い方でOKのようだ。

acl domain_blacklist_regex dstdom_regex "/etc/squid/domain_blacklist.txt"
http_access deny all domain_blacklist_regex

当然正規表現使わないほうがSquidの負荷は少ないだろうからできればドメインは dstdomain で設定したほうがいいのだろうけど、そうも言ってられない場合もある(あった)

newnakashimaのBlog