29.3 Squidの起動

SquidはSUSE Linuxで事前に設定されているため、インストール直後に起動できます。スムーズに起動するように、インターネットおよび少なくとも1つのネームサーバにアクセスできるようにネットワークを設定してください。ダイナミックDNS設定でダイヤルアップ接続を使用すると、問題が発生する可能性があります。このような場合は、少なくともネームサーバを明確に入力してください。というのは、/etc/resolv.conf内でDNSサーバが検出されないとSquidが起動しないためです。

29.3.1 Squidの起動コマンドと停止コマンド

Squidを起動するには、root権限でコマンドラインに「rcsquid start」と入力します。初期起動時には、最初に /var/cache/squid内でキャッシュのディレクトリ構造を定義する必要があります。この操作は、/etc/init.d/squid起動スクリプトにより自動的に実行され、完了までに数秒ないし数分かかります。右側に緑で完了と表示されたら、Squidは正常にロードされています。ローカルシステム上でSquidの機能をテストするには、ブラウザでプロキシとして「localhost」、ポートとして「3128」を入力します。

ユーザ全員にSquidおよびインターネットへのアクセスを許可するには、設定ファイル/etc/squid/squid.conf内のエントリをhttp_access deny allからhttp_access allow allに変更します。ただし、その場合は、この操作によりSquidが完全に誰でもアクセス可能になることに注意してください。したがって、プロキシへのアクセスを制御するACLを定義します。この詳細については、29.4.2項 「アクセス制御オプション」ファイルを参照してください。

設定ファイル/etc/squid/squid.confを変更した後、Squidで変更後の設定ファイルを再ロードする必要があります。それには、rcsquid reloadコマンドを使用します。または、「rcsquid restart」と入力してSquidを完全に再起動します。

プロキシが稼動しているかどうかを確認するには、rcsquid statusコマンドを使用します。Squidをシャットダウンするには、rcsquidstopコマンドを使用します。Squidは、クライアントへの接続が切断されてデータがディスクに書き込まれるまで最大30秒(/etc/squid/squid.confshutdown_lifetimeオプション)待機するため、終了までに少し時間がかかることがあります。

[Warning]Squidの終了

killまたはkillallを使用してSquidを終了すると、キャッシュが破損する可能性があります。Squidを再起動できるようにするには、破損したキャッシュを完全に削除する必要があります。

Squidが正常に起動しても短時間で停止する場合は、ネームサーバエントリに誤りがないかどうかと、/etc/resolv.confファイルが欠落していないかどうかをチェックしてください。起動エラーの原因は、Squidにより/var/log/squid/cache.logファイルに記録されます。システムのブート時にSquidを自動的にロードする必要がある場合は、YaSTランレベルエディタを使用してSquidを必要なランレベルで有効にしてください。2.9.8項 「システムサービス(ランレベル)」 (↑起動)を参照してください。

Squidをアンインストールしても、キャッシュ階層やログファイルは削除されません。これらを削除するには、/var/cache/squidディレクトリを手動で削除します。

29.3.2 ローカルDNSサーバ

サーバで独自ドメインを管理しない場合も、ローカルDNSサーバをセットアップすると有効です。ローカルDNSサーバは単にキャッシュ専用ネームサーバとして機能し、特に設定しなくてもルートネームサーバを介してDNSリクエストを解決できます(20.3項 「ネームサーバBINDの起動」を参照)。ローカルDNSサーバを有効にする方法は、インターネット接続の設定時にダイナミックDNSを選択したかどうかによって異なります。

ダイナミックDNS

通常、ダイナミックDNSを使用すると、インターネット接続が確立されるときプロバイダによってDNSサーバが設定され、ローカルの/etc/resolv.confファイルが自動的に変更されます。この動作は、/etc/sysconfig/network/configファイル内でsysconfig変数のMODIFY_RESOLV_CONF_DYNAMICALLYを「yes」に設定することで制御されます。この変数をYaST sysconfigエディタを使用して「no」に設定します(8.3.1項 「YaSTのsysconfigエディターを使ってシステム設定を変更する」参照)。そして、/etc/resolv.confファイルに、ローカルのDNSサーバとして「localhost」、そのIPアドレスとして「127.0.0.1」を入力します。このようにすれば、Squidは常に、起動時にローカルのネームサーバを検出できます。

プロバイダのネームサーバにアクセスするには、/etc/named.conf設定ファイル内のforwardersにサーバ名とそのIPアドレスを入力します。ダイナミックDNSを使用すると、この動作を接続の確立時に自動的に実行できます。それには、sysconfig変数のMODIFY_NAMED_CONF_DYNAMICALLYを「YES」に設定します。

スタティックDNS

スタティックDNSを使用する場合は、接続の確立時にいずれの自動DNS調整も行われないため、sysconfig変数を変更する必要はありません。ただし、上記で説明したとおり、/etc/resolv.confファイルにローカルのDNSサーバを入力する必要があります。また、プロバイダのスタティックなネームサーバにアクセスするには、/etc/named.conf設定ファイルに、サーバ名forwardersとそのIPアドレスを手動で入力する必要があります。

[Tip]DNSとファイアウォール

ただし、ファイアウォールを実行している場合は、DNSリクエストがファイアウォールを通過できることを確認してください。