インストール
Proxy サーバーはオーソドックスに squid を採用する。
FreeBSD 9.0 では www/squid32 をインストールする。www/squid は旧バージョン。
# portmaster www/squid32
とりあえず、単体で動かすので認証系は外した。
SQUID_IPv6 Enable IPv6 Support
SQUID_HTCP Enable HTCP Support
SQUID_IDENT Enable ident (RFC 931) lookups
SQUID_AUFS Enable the aufs strage scheme
SQUID_KQUEUE Use kqueue(2) (experimental)
SQUID_LARGEFILE Support log and cache files >2GB
設定
設定の詳細説明は
/usr/local/etc/squid/squid.conf.documented に記述されている。
今回は 192.168.0.0/24 のネットワールからのみ受け付けるようにする。
/usr/local/etc/squid/squid.conf 抜粋。デフォルトでlocalhost,localnetは定義済みになった。
# acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
# acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
# acl localnet src fc00::/7 # RFC 4193 local private network range
# acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/squid/cache
visible_hostname unknown
forwarded_for off
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
参考
IPv4/IPv6 デュアルスタックのサイトに IPv6 を優先して接続するには、以下のように http_access を分けて設定すればよい。
こうすることで IPv6 のアドレスがあるサイトは上段にある http_access の指定が適用されるため常に IPv6 で接続するようになる。
/usr/local/etc/squid/squid.conf
acl to_ipv6 dst ipv6
http_access allow localnet to_ipv6
http_access allow localnet !to_ipv6
自動起動の設定
/etc/rc.conf
squid_enable="YES"
設定の検証
# squid -f /usr/local/etc/squid/squid.conf -k check
起動
ログ
/var/log/squid/ 配下に access.log と cache.log が記録される。
ローテーションは
/etc/newsyslog.conf へ追記する。
/var/log/squid/access.log squid:squid 640 3 1000 * JC /var/run/squid/squid.pid
/var/log/squid/cache.log squid:squid 640 3 1000 * JC /var/run/squid/squid.pid