SquidのACL

LAN内からウェブページを閲覧するためにプロクシをたててSquidを動かしています。8080ポートでサービスしているウェブページが見たいんだがとの要望。8080ポートでインタネットサービスをしているとは。あまり信じられないのですが、普通なんですかね。

特定のドメインに対してaclを記述して通そうと思ったのですが、うまくいきません。

acl 8080_port port 8080
acl dist distdomain www.hogehoge.org

http_access allow 8080_port distdomain

http_accessの記述はAND評価なのでこれでいいんですが、このほかにこんな定義がすでにあります。

acl Safe_ports port 80 443

http_access deny !Safe_ports

Squidのアクセスルール(http_accessなど)の定義が複数あった場合、評価はどんどん積み重なっていきます。すなわち、上記のacl定義があった場合、

http_access deny !Safe_ports 
http_access allow 8080_port

の2行目は意味がないってことですね。仕方がないのでSafe_portsの定義をすこし変更して対応。

acl Safe_ports port 80 443 8080

参考書はこちら。

Squid: The Definitive Guide (Definitive Guides)

Squid: The Definitive Guide (Definitive Guides)