トップ > Ubuntu 8.04 によるサーバーの構築 >

Squid (プロキシサーバー)の構築

Squid のインストールと設定

 インターネットなどから情報を取得しようとする内部ネットワーク上の PC の代わりに,サーバーがインターネットに接続します。

  1. 以下のコマンドを実行して, Squid をインストールする。
    $ sudo apt-get install squid
  2. /etc/squid/squid.conf を以下のように作成する。

    # 使用するポート番号を 8080 に設定
    http_port 8080
    # 親子関係のプロキシの場合(上位サーバが Squid でない場合, icp-port には 0 を設定)
    #cache_peer [親プロキシのアドレス] parent 8080 0
    # 兄弟関係のプロキシの場合
    #cache_peer [兄弟プロキシのアドレス] sibling 8080 3130
    # キャッシュメモリのサイズを 128MB に指定
    cache_mem 128 MB
    # キャッシュするサイズを 1GB (1000MB) に設定(キャッシュメモリのサイズの 100 倍以下)
    cache_dir ufs /var/spool/squid 1000 16 256
    # access.log のディレクトリを指定
    cache_access_log /var/log/squid/access.log
    # Apache と同じログ形式を指定
    emulate_httpd_log on
    # ftp ユーザのメールアドレスを指定
    ftp_user squid-admin@
    visible_hostname www.shitomi.jp

    # デフォルトの名前定義
    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl SSL_ports port 443 563
    acl Safe_ports port 80 # http
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 443 563 # https, snews
    acl Safe_ports port 70 # gopher
    acl Safe_ports port 210 # wais
    acl Safe_ports port 1025-65535 # unregistered ports
    acl Safe_ports port 280 # http-mgmt
    acl Safe_ports port 488 # gss-http
    #acl Safe_ports port 554 # rtsp
    acl Safe_ports port 591 # filemaker
    acl Safe_ports port 777 # multiling http
    acl CONNECT method CONNECT

    # デフォルトのアクセス制御設定
    http_access allow localhost
    http_access deny manager
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports

    # 指定する URL リストのファイルを blacklist と定義
    acl blacklist url_regex "/etc/squid/blacklist.txt"
    # blacklist のアクセスを拒否
    http_access deny blacklist

    # 192.168.0.* の IP アドレスを SHITOMI と定義
    acl SHITOMI src 192.168.0.0/24

    # 192.168.0.* のアクセスを許可
    http_access allow SHITOMI

    # 全てのアクセスを拒否
    http_access deny all

    # プロキシのローカルIPアドレスの漏えい防止
    forwarded_for off

  3. アクセス制御する URL リストの /etc/squid/blacklist.txt を,以下のように正規表現で作成する。
    ^http://.*sex.*
    ^http://.*realgals\.com.*
  4. 以下のコマンドを実行して,エラーメッセージを日本語に変更する。
    $ sudo rm /etc/squid/errors
    $ sudo ln -s /usr/share/squid/errors/Japanese /etc/squid/errors
  5. 以下のコマンドを実行して, Squid を再起動する。
    $ sudo /etc/init.d/squid restart

クライアント (Windows 2000) の設定

  1. メニューバーから,[ツール] - [インターネット オプション] - [接続]タブを選択して, [LAN の設定] ボタンをクリックする。
  2. 『ローカル エリア ネットワーク (LAN) の設定』を,以下のように設定する。
    Windows2000のプロキシサーバ利用設定/Squid/Fedora Core

(参考)プロキシ設定ファイルの作成

 Web サーバー構築後に,プロキシ設定ファイルを同サーバーに登録して,クライアント (Windows 2000) のプロキシ設定の自動化を図ります。

  1. サーバーに root でログインする。
  2. /etc/mime.types の最終行に,以下の行を追加する。
    application/x-ns-proxy-autoconfig pac
  3. 以下のコマンドを実行して, Apache を再起動する。
    $ sudo /etc/init.d/apache2 restart
  4. /var/www/proxy.pac を以下のように作成する。
    
    function FindProxyForURL(url, host) {
    	// host の IP アドレスが指定された文字列と一致する場合,真
    	if (isInNet(host, "192.168.0.0", "255.255.255.0")
    		// host が指定したドメイン名と一致する場合,真
    		|| dnsDomainIs(host,"shitomi.jp")
    		// url が指定した文字列と一致する場合,真
    		|| shExpMatch(url,"http://www.shitomi.net/*")
    		|| shExpMatch(url,"http://www.shitomi.com/*")) {
    		// プロキシサーバーを使用せず,直接接続
    		return "DIRECT";
    	} else {
    		// プロキシサーバーに 192.168.0.1 (192.168.0.1 の障害時は 192.168.0.2)を使用
    		return "PROXY 192.168.0.1:8080; PROXY 192.168.0.2:8080";
    	}
    }
    
    • この記述内容を, UTF-8 でファイル保存して利用すると,コメント行の日本語の文字化けにより不具合を起こすことに注意
  5. 以下のコマンドを実行して, /var/www/proxy.pac のパーミッションを変更する。
    $ sudo chmod 744 /var/www/proxy.pac
  6. クライアントの PC (Windows 2000) において, Internet Explorer を起動する。
  7. メニューバー[ツール] - [インターネット オプション] - [接続]タブを選択して, [LAN の設定] ボタンをクリックする。
  8. 『ローカル エリア ネットワーク (LAN) の設定』を,以下のように設定する。
    proxy.pacの利用設定/Squid(プロキシサーバー)/Fedora Core

 このサイトに書かれていることが原因でトラブルが発生しても,私は責任を取ることができません。したがいまして,ここで述べられていることに関する実行は,自己責任でお願いいたします。なお,このサイトはリンクフリーで,リンク時の連絡も不要です。

サイト内関連リンク:なし