2006年05月18日

DeleGate(9.1.1)インストール&設定

一時的に違う拠点に移動することになり、IP制限のかかったサーバにFTPで接続できなくなってまうため、deleGateを使うことにしたのでメモ。

サーバも台数があるので全部設定をし直すの面倒だしね。。。

まずはdelegate.orgからソースをダウンロード。
delegate9.x.x.tar.gz

Linux上で解凍する。
% gunzip -cd delegate9.x.x.tar.gz | tar xvf -

% cd delegate9.x.x

% make

で、エラー。

gcc: installation problem, cannot exec 'cc1plus': そのようなファイルやディレクトリはありません

gccのC++サポート用のパッケージが入っていないのではないかということで、下記3つのパッケージをyumなどで入れるとよいらしい。
私はgcc-c++を入れたらコンパイルが通った。

gcc-c++
libstdc++
libstdc++-devel

コンパイル中にAdminのメールアドレスを聞かれたりするので入力する。

コンパイルが完了したら、src/ ディレクトリの中に「delegated」というファイルができあがる。
これがバイナリの実体なので、使うディレクトリにコピーする。今回は /usr/local/delegate/bin を作成してコピーした。

設定

設定は /usr/local/delegate/conf ディレクトリを作成し、そこに設定ファイルを置くことにした。

ftp_dg.conf(ファイル名はなんでもいい)を作成し、設定を記入する。
細かいコンフィグはDelegateのリファレンスを見てください。

ログ等を溜めるディレクトリをデフォルトではなく、別にしたのでログ用のディレクトリを作成します。

# mkdir /var/delegate

delegateがnobodyで動くので、オーナーを変更します。

# chown -R nobody:nobody /var/delegate


今回作成したコンフィグ
--------
SERVER=ftp
HOSTLIST=".DST:192.168.1.*,192.168.2.*,192.168.3.*"
HOSTLIST=".SRC:192.168.253.*"
RELIABLE=".SRC"
REACHABLE=".DST"
CRON='0 3 * * * -expire 2'
CACHEDIR="/var/delegate/cache"
--------

SERVER=ftp
FTPサーバとして動作するようにします。

HOSTLIST=".DST:192.168.1.*,192.168.2.*,192.168.3.*"
HOSTLIST=".SRC:192.168.253.*"
HOSTLISTは接続先のホストと接続元のクライアントを制限するために記述しています。複数ある場合はカンマで区切って記述します。
上記では .DST が接続先、 .SRC が接続元。

RELIABLE=".SRC"
接続元として許可するクライアントを指定。ここではリストを指定している。

REACHABLE=".DST"
接続先として許可するホストを指定。ここではリストを指定している。

CRON='0 3 * * * -expire 2'
CRONで2日以上たったキャッシュを削除するように指定。

DGROOT="/var/delegate"
DeleGateのログなどで使うディレクトリの起点となるディレクトリを指定。
logファイルなどがこのディレクトリの下に作成される。
。。。ハズなのだが、なぜかコンフィグに書いても NOT-USED と言われるのでコマンドで指定するようにした。

CACHEDIR="/var/delegate/cache"
DGROOTを指定しても、なぜかキャッシュだけはデフォルトの場所に作成しようとするので別途指定した。
キャッシュが格納されるディレクトリを指定。


テスト

動作テストをするときは、 -vv オプションをつける。

# /usr/local/delegate/bin/delegated -P8123 DGROOT=/var/delegate +=/usr/local/delegate/conf/ftp_dg.conf -vv

ポートは適当に振ってください。
他のサービスとかぶらないようにね。

テスト接続がうまくいったら、自動で起動するようにスクリプトを作成。

/etc/init.d/delegated
------
#!/bin/sh
#
# chkconfig: 35 90 10
# description: delegated ftp proxy
# processname: delegated
# config: /usr/local/delegated/conf

DELEGATEDIR=/usr/local/delegate
DELEGATE=$DELEGATEDIR/bin/delegated
CONFIG=$DELEGATEDIR/conf/ftp_dg.conf
PORT=8023
DGROOT=/var/delegate


if [ ! -x $DELEGATE ]; then
echo -n $"$DELEGATE does not exist."; warning; echo
exit 0
fi

if [ ! -r $CONFIG ]; then
echo -n $"$CONFIG does not exist."; warning; echo
exit 0
fi

RETVAL=0

start() {
echo -n $"Starting up FTP DeleGate daemon: "
$DELEGATE -P$PORT DGROOT=$DGROOT +=$CONFIG
RETVAL=$?
echo
return $RETVAL
}

stop() {
echo -n $"Shutting down FTP DeleGate daemon: "
$DELEGATE -P$PORT DGROOT=$DGROOT +=$CONFIG -Fkill
RETVAL=$?
echo
return $RETVAL
}

restart() {
stop
start
}


# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo $"Usage: apmd {start|stop|restart|reload}"
exit 1
esac

exit $RETVAL
------

chkconfig に対応するようにコメントを書いたので、chkconfig -add を行う。

# chkconfig --add delegated

chkconfigで確認してみる。

# chkconfig --list | grep delegated
delegated 0:off 1:off 2:off 3:on 4:off 5:on 6:off

これでしばらく様子を見よう〜。


参考サイト:
DeleGateリファレンスマニュアル(英語)
DeleGateを使ってLAN内部のサーバを公開する方法
DeleGate設定例
Origin HTTP-DeleGate AUTH with PAM sample
PAMを使ってユーザー認証したい場合の参考

posted by まきすけ at 22:08 | Comment(0) | TrackBack(1) | Linuxとか
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック

DeleGateの導入
Excerpt: 参考サイト http://ah.fo.gs/delegate.html http://www.redout.net/diary/2005/1102.html http://makisuke.seesa..
Weblog: Debian’s Note (PukiWiki/TrackBack 0.3)
Tracked: 2007-07-16 01:25