squid-2.4.STABLE7 と 2.5.STABLE3 をインストールしたときの備忘録です.
基本的には 2.4 も 2.5 もコンフィグファイル以外には大きな変更はありません.コマンドの例は 2.5 としていますが 2.4 でもほぼ同じでしょう. ./configure --help とかして適当にオプションを考えます.ここでは,透過プロキシをしたいので --enable-linux-netfilter を有効にします. また,FQDN にアンダースコアを含むとき,squid が reject しないように,--enable-undersores を有効にします.この設定は RFC 違反で本当は適切ではありませんが, infoseek などではいまだにサブドメインにアンダースコアを含むものがまれにありますので致し方ないでしょう.
# wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE3.tar.bz2 # tar xvjf squid-2.5.STABLE3.tar.bz2 # cd squid-2.5.STABLE3 # ./configure --prefix=/usr/local/squid-2.5 \ --enable-linux-netfilter \ --enable-err-language=Japanese \ --enable-underscores # make # make install
必要なところのみ適当に変更します.
ポートの決定 http_port 3128 キャッシュに使うメモリー(squid 全体が使うメモリはこれの2,3倍になります) cache_mem 128 MB maximum_object_size 16 MB cache_dir ufs /home/squid 200 32 512 cache_access_log /var/log/squid/access.log cache_store_log /var/log/squid/store.log pid_filename /var/run/squid.pid 2.4系 のデフォルトでは,1 MB ですが,0 MB(無制限)とします 2.5系 のデフォルトでは,0 MB (無制限)です こうしないと http アップローダで1 MB 以上のアップローができません request_body_max_size 0 MB アクセスを許すものを決めます acl localnet src ***.***.***.0/255.255.255.0 http_access allow manager localnet http_access allow localnet cache_mgr squid.m9841.info squid を走らせる GID と UID を決めます cache_effective_user squid cache_effective_group squid 透過プロキシの設定 httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on プロキシであることを隠微します 無駄にプロキシを弾く所を防ぎます forwarded_for off anonymize_headers deny Via anonymize_headers deny X-Forwarded-For 2.4 の場合は以下のようにします forwarded_for off header_access Via deny all header_access X-Forwarded-For deny all
Vine の srpm をインストールしてそれを参考に作ります.
squid-init
chkconfig コマンドで squid が起動時に自動で起動するようにしておきます.
# cp squid-init /etc/init.d/squid # chmod 755 /etc/init.d/squid # chkconfig --add squid # chkconfig --level 2345 squid on もしキャッシュディレクトリを作っていないのなら, # /usr/local/squid-2.5/sbin/squid -z とします.
ポート 80 への要求を横取りして Squid に渡すようにします.
ここで,IN_IF は LAN の NIC,LOCAL_NET は LAN 側の IP です # iptables -t nat PREROUTING -i IN_IF -p tcp -s LOCAL_NET--dport 80 -j REDIRECT --to-port 3128
Squid のログを大きくなりすぎないように logrotated にログの管理を任します.詳しい使い方は説明しませんが, こんなファイルを /etc/logrotate.d/ に置いておくと,Vine Linux の場合,毎週日曜日午前4時にログを分割して新しいものにしてくれます.