とりあえず、squidを一旦停止。
/etc/init.d/squid stop
キャッシュが保存されているディレクトリを削除。
rm -rf /var/spool/squid/*
キャッシュディレクトリを改めて確保しておく。
squid -z
squidを立ちあげて、OKが出ればよし。
/etc/init.d/squid start
これってサービス止めないで出来ないかなぁ。
とりあえず、squidを一旦停止。
/etc/init.d/squid stop
キャッシュが保存されているディレクトリを削除。
rm -rf /var/spool/squid/*
キャッシュディレクトリを改めて確保しておく。
squid -z
squidを立ちあげて、OKが出ればよし。
/etc/init.d/squid start
これってサービス止めないで出来ないかなぁ。
yum install squid
で普通にインストール。
vi /etc/squid/squid.conf
を書き換える。
#http_port 3128 http_port 8080 transparent #cache mem 8M cache mem 32M
ポート番号をデフォルトの3128から8080に変更して透過型にする。
キャッシュサイズも多少あげておく。
aclを書く。
acl locals src 192.168.1.0/255.255.255.0 acl passlist dstdomain "/etc/squid/passlist.txt" acl blocklist dstdomain "/etc/squid/blocklist.txt"
dstdomainでファイルを指定する。
ファイルの中身は
.google.co.jp
.google.com
katzplus.com
のようなドメインの羅列。
「特定ドメインの特定ディレクトリのみ」というような指定をする場合は
acl regex_passlist url_regex "/etc/squid/regex_passlist.txt"
というように「url_regex」で指定する。
regex_passlist.txtの中身は正規表現で記入する。
^http://mail\.google\.com($|/|:)
^http://[^/]*\.katzplus\.com($|/|:)
aclを書いたらそれぞれの許可・拒否を指定していく。
aclは上から順番に照合して、合致したものがあるとそこから先のルールは照合されないので、順番には気をつける。
http_access allow localhost ・・・ http_access deny !locals http_access deny blocklist http_access allow passlist ・・・ http_access deny all # ↑ですべてのアクセスを拒否しているのでここから下は何を書いても意味がない。
先にblocklistで拒否してから次にpasslistを許可すると、両方に書いてあるドメインはとりあえず拒否が先に合致するので拒否される。
書き終わったら保存して終了。
/etc/init.d/squid start
で起動するか確認。
起動したら
chkconfig --level 35 squid on
で自動起動するようにしておく。
iptableを書き換えて80番ポートで来たものを8080番ポートに転送するようにしておく
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
さらにIP Forwardingを有効にするため、
vi /etc/sysctl.conf
を書き換える。
net.ipv4.ip_forward = 0 ↓ net.ipv4.ip_forward = 1
ここまでやったらネットワークの再起動
/etc/init.d/network restart