シェルスクリプトマガジン

第25回 インターネットへのアクセスを制限する(Squidの設定)

Squidでアクセスを制限する

プロキシーサーバー経由でしかアクセスできないようになったので、Squidの設定を書き換えて特定のアクセスを制限しましょう。

(1)アクセス禁止サイトを設定する

特定のサイトへのアクセスを制限するには、「ブラックリスト」というファイルを作成し、Squidの設定でそのファイルを使ってアクセスを禁止にします。次のようにnanoエディタを起動してブラックリストファイルを作成します。ブラックリストファイルは、どこに配置しても構いません。分かりやすいように、Squidの設定ファイルが格納されている「/etc/squid」ディレクトリー内に「blacklist.txt」として作成しました。「[sudo] password for taro:」のように表示されたら、自分のパスワードを入力します。

「www.example.com」「.usp-lab.com」のようにホスト名やドメイン名を縦に並べて記述します。

ファイルを保存したら、次のように、

を実行し、Squidの設定ファイル(/etc/squid/squid.conf)をエディタで開きます。前回作成した設定ファイルを、次のように追記します。

「acl BLACKLIST dstdomain “/etc/squid/blacklist”」と「http_access deny BLACKLIST」の2行を追加しています。最初の行で「BLACKLIST」というリストを作成しています。「dstdomain」を指定することで、Squidがブラックリストファイルをアクセス先ホストのリストとして認識します。次の行で、BLACKLISTにあるホストやドメインに対して、アクセスしたときに拒否(deny)するように設定しています。
なお、前回も説明したように、ファイルの先頭から設定が適用されます。二つの行を追加する場合、順番と、「http_access deny all」の前に必ず配置する点に注意してください。
書き換えた設定を反映するために、

を実行します。
リモートアクセス用パソコンのWebブラウザーからブラックリストに登録したサイトにアクセスしてみてください。図5図6のような拒否されたメッセージが表示されます。

図5 アクセス拒否(HTTPの例)

図6 アクセス拒否(HTTPSの例)