[ Delegate のインストール ]    [FreeBSDページに戻る]  [HOMEに戻る]

Delegate は、Proxy サーバーとして機能させたい場合に使用します。
詳細は、http://wall.etl.go.jp/delegate/ を参考にして下さい。


[01] delegate の入手

FreeBSD の CD-ROM をお持ちの人は、/packages/All にある delegate-5.7.2.tgz
などを使用しますので、フォルダ( /usr/local/packages )を作って、そこへ入れて
おきます。

無い場合は、ftp.freebsd.org/pub/FreeBSD/packages-2.2.8 等から最新の delegate
をダウンロードして、ローカルのフォルダへ持ってくる。

[02] delegate のインストール

スーパーユーザー(su)となって、delegate-5.7.2.tgz のあるディレクトリへ移り
% pkg_add delegate-5.7.2.tgz
とすると、勝手にインストールしてくれます。

[03] delegate.conf の作成

FreeBSD 2.2.1 以上であれば、/usr/local/etc が設定ファイルを置くディレクトリ
となりますので、ここに delegate.conf を作って入れておきます。

詳細は、/usr/local/share/doc/delegate/Manual.txt を参照して下さい。

(例)
 RESOLV=file,dns 
 MANAGER=tommy@temp.co.jp             # 管理者のメールアドレス
 SERVER=http://www.temp.co.jp/        # delegate のポートにアクセスがあった場合
 CONNECT=direct:*:{150.61.0.0/@B,192.168.0.0/@B,172.[16-31].0.0/@B}
 CONNECT=cache,master,direct:*:*
 PROXY=proxy.temp.co.jp:10080:!192.168.0.0/@B,192.168.1.0/@B,192.168.[5-10].0/@B
 AUTH=anonftp:*:*                     # ftp のためのおまじない
 CHARCODE=SJIS
 CACHEDIR=/delegate/cache             # delegate のキャッシュディレクトリ
 LOGDIR=/delegate/log                 # ログディレクトリ
 PERMIT=*:*:{192.168.1.0/@C,192.168.0.1,192.168.0.[11-15]} # アクセス制限
 MAXIMA=delegated:15                  # サーバーへの同時接続許可端末数
 EXPIRE=7d                            # キャッシュの有効期限
 LOGFILE='${LOGDIR}/${PORT}[date+.%d]'
 PROTOLOG='${LOGDIR}/${PORT}.${PROTO}[date+.%d]'
 ACTDIR=/var/run                      # RunID

[04] delegate の起動

pkg_add でインストールすると、/usr/local/share/examples/delegate/delegated.sh
というのが自動的に作られますので、これを /usr/local/etc/rc.d にコピーします。
% cp /usr/local/share/sample/delegate/delegated.sh /usr/local/etc/rc.d

コピーした delegated.sh のパーミッションを起動可能にしておきます。
% cd /usr/local/etc/rc.d
% chmod 775 delegated.sh

reboot で再起動すれば、自動的に立ち上がるようになっています。

その場ですぐ起動したい場合は、% cd /usr/local/etc/rc.d にカレントを移して
% ./delegated.sh とすれば、delegated が起動します。

(delegated.sh の内容)
#!/bin/sh

if [ -x /usr/local/sbin/delegated ]; then
        echo -n ' delegated'
        /usr/local/sbin/delegated -P10080 \             # ポート番号
        +=/usr/local/etc/delegate.conf \                # コンフィグ読み込み
#        MANAGER=delegate-master@your.host.domain \     # delegate.confで指定
#        CHARCODE=JIS \                                 #      〃
#        CACHEDIR=/var/spool/delegate/cache \           #   〃
#        EXPIRE=7d \                                    #   〃
#        RELIABLE=hostname \                            #      〃
        > /dev/null 2>&1

fi

これでブラウザの proxy 設定を、このサーバーにすれば proxy 経由でアクセス
できるようになります。( 上記設定の場合 port=10080 )

[05] ログ・キャッシュの削除

/delegate/log および /delegate/cache が、いっぱいになってしまうのを防ぐため
cron で定期的に古いファイルを削除していく必要があります。

/etc/crontab に以下のような行を追加します。

(例)
30  2  *  *  *  root  find /delegate/log -atime +7 -delete
0   1  *  *  *  root  find /delegate/cache -atime +7 -exec rm -rf {} \;

これで、1週間以上前のキャッシュが毎日午前1時ごろに削除されるようになります。

[06] ログ(port number) の削除

05のログ削除は、毎日のアクセスログだけです。
これとは別に、ポート番号のファイルが作られており起動時や様々なログが書き込ま
れているファイルがあります。

これも、放っておくとかなり大きなサイズとなってしまうため、定期的に削除した方
がよいでしょう。

/usr/local/bin の中に、以下のようなファイルを作り適当な名前で保存しておきます。

(例 /usr/local/bin/portlogdel)
#! /bin/csh
#
rm /delegate/log/10080
kill -HUP `cat /tmp/delegate/pid/10080`  # delegate の ID がここに入っている

このファイルに、実行権を与えておく(chmod 777 portlogdel)のを忘れずに。

先ほどと同じように、/etc/crontab に

0  3  *  *  6  root  /usr/local/bin/portlogdel

という行を追加しておきます。

[07] cron の再起動

% ps -aux | grep cron で cron の ID を確認して
% kill -HUP (cron-ID)

を実行し cron を再起動させます。

[08] delegate の起動確認

ブラウザの proxy の設定で、このサーバーのホスト名および proxy port(10080)
を設定し、アドレスに http://-.-/-/ と入れて表示させると、ブラウザ上で起動の
確認ができます。


[FreeBSDページに戻る]  [HOMEに戻る]