squid のインストール squid = PROXYソフト ■ インストール理由 FireWall環境でユーザーがインターネットのHPを直接参照できないとき、http-proxyが 必要になります。また直接参照することが可能な環境でもアクセスを高速化したり、キ ャッシュを利用してインターネットへの通信を減らしたりすることができます。 ■ インストール 1) Squidの入手 http://squid.nlanr.net/Squid にミラーサイトの一覧があるので手近なところから ダウンロードします。私がダウンロードしたときはsquid-2.2.STABLE2-src.tar.gz  が最新でした。 2) コンパイル # tar zvxof squid-2.2.STABLE2-src.tar.gz とするとソースファイルがsquid-2.2.STABLE2というディレクトリに展開されます。 # cd squid-2.2.STABEL2 としてソースのあるディレクトリに移った後、 # ./configure # make all とするとコンパイルできます。 標準は/usr/local/squidにインストールされますが、変更したいときは # ./configure --prefix=/usr/squid などとすれば希望のディレクトリにインストールする設定ができます。 3) インストール root になった後 # make install とすればインストール完了です。 インストールする前にどんなファイルがインストールされるか知りたければ、 # make install -n とすると実際にはインストールしないで確認することができます。 ■ 最低限の設定 1) アクセス制御 /usr/local/squid/etc のsquid.confを書き換えることで設定できます。最低限の設定として、 acl clients src 192.168.0.1/255.255.255.0 http_access allow clients を書き加えることで192.168.0.1から192.168.0.255から利用することができるように なります。いい加減に設定すると全く関係ないところから身分を偽るために利用され るので十分注意します。 2) ftpユーザー名 squidがanonymous ftpサイトにアクセスするときに使用するメールアドレスです。 aliasを作成して管理者にメールが着くように設定しておくべきでしょう。 3) キャッシュディレクトリの作成 必要なディレクトリを作成するために # cd /usr/local/squid # mkdir cache # chown nobody.nogroup cache logs と打ち込みます。 4) squidの初期化 あとはsquidを初期化するため # /usr/local/squid/bin/squid -z とすれば準備完了です。 ■ squid の起動 1) squidを起動する rootにて # /usr/local/squid/bin/squid & とすればバックグラウンドにてsquidが起動します。 /usr/local/squid/logs/cache.log に"Ready to serve requests."と出力されていれば正常に動作しています。 2) マシンの起動と同時に起動するようにする マシンの起動と同時にsquidが起動するようにするには /etc/rc.d/rc.localなどに if [ -f /usr/local/squid/bin/squid ] ; then /usr/local/squid/bin/squid & echo -n "Starting squid" fi などと書きます。 ■ ログのローテート 1) 手動でローテートする # /usr/local/squid/bin/squid -k rotate とする事でログをローテートすることができます。 2) cronを使って自動でローテートする crontabに 0 0 * * mon /usr/local/squid/bin/squid -k rotate などと書くと、毎週月曜日の午前0時にログをローテートします。 squid のログはアイコンなどの転送も記録するので思いの外巨大になります。ディス クの容量が十分でない場合、ローテートの間隔を狭めたり、古いログファイルを早め に消去するよう設定したりします。 ■ クライアントの設定 1) ブラウザの設定 squidが動いているマシンのIPアドレスが192.168.0.1の場合、http proxy serverの IPアドレスは192.168.0.1 ポートは3128となります。 2) ホームページを使って自動設定 Netscape3.0以降InternetExplorer4.0以降にはPAC(Proxy Automatic Configuration) という機能があり、webブラウザにhttp-proxy情報を自動で認識させることができま す。HTTPサーバーのmime.types の設定に application/x-ns-proxy-autoconfig pac という設定を付け加えた後、例えばhttp proxy serverのIPアドレスが192.168.0.1 ポート番号が3128の場合、proxy.pac ファイルなどに function FindProxyForURL(url, host) { return "PROXY 192.168.0.1:3128; DIRECT"; } と記述することで可能になります。この場合、proxyサーバーを変更してもユーザー に変更を通知しなくても済むという利点があります。PACはJAVA Scriptで記述するの で、この他利用するクライアントによってプロキシサーバーを変更するなどの設定も 可能です。 ■ squid のチューニング 1) squid.confファイル squidのチューニングはすべて /usr/local/squid/etc/squid.conf にて行います。 2) 使用メモリ ・ chache_mem squidが利用するメモリの指定です。デフォルトは8Mとなっています。ここで指定し た容量以外にもsquidが利用するメモリがあるのでsquidに使用させたい容量の半分程 度を指定するのがお勧めです。 3) ファイルのキャッシング ・ cache_dir squidのディスクキャッシュの設定です。デフォルトでは cache_dir /usr/local/squid/cache 100 16 256 となっていますが、それぞれ キャッシュディレクトリ キャッシュで使用する容量(MB) ディレクトリを分割するサブディレクトリの数 サブディレクトリをさらに分割する数 を指定しています。 4) DNS参照 ・ dns_children squidがDNS参照をするのに利用する子プロセスの数です。クライアントの数が多いと き、DNSサーバーが遠い、もしくは遅いときなどは増やしておくとパフォーマンスが 改善します。 5) 古いログファイルを保存する ・ logfile_rotate ローテートした古いログファイルをいくつ保存しておくかを設定しています。squid のファイルはかなり大きくなるのでディスクの容量を考えて設定します。