初版:2003/11/18
ANGIE WORKSHOP > 知識倉庫 > DeleGateを使ったプロトコル中継

DeleGateを使ったプロトコル中継

自宅のLinuxサーバーにDeleGateを入れて,POP3プロトコルを中継する方法のメモです。本来のポート番号(110)以外で接続する必要がある場合に有用です。
これは単なるメモなので,細かい解説はしません。わかる人だけ参考にしてください。

nextprev 1.DeleGateのインストールと設定

自宅に設置しているLinuxサーバーにDeleGateをインストールします。LinuxはRedhat Linux 9.0を使っています。

  1. DeleGateの入手

    DeleGateのLinux版(UNIX版)はバイナリでは配布されていません。DeleGateの公式サイトから最新版のソースをダウンロードします。Beta版ではなくStable版から最新のバージョンを選択するのが良いと思われます。

  2. 解凍とコンパイル

    ダウンロードしたアーカイブを適当な作業フォルダに置き,tarで展開します。

    tar zxvf delegate8.7.5.tar.gz

    Makefileの中のADMIN=の行を修正して自分のメールアドレスを記入します。

    cd delegate8.7.5
    vi src/Makefile

    ADMIN=undef → ADMIN=自分のメールアドレス に変更して保存します。

    環境変数を設定してコンパイルを実行します。

    CC=/usr/bin/gcc296
    export CC
    make PATH=".:$PATH"

    src/delegated が作成されます。

  3. インストール

    所定のディレクトリに置き,オーナーを設定します。スプールのディレクトリも作ります。

    cp src/delegated /usr/local/bin
    chown nobody.nobody /usr/local/bin/delegated
    mkdir /var/spool/delegate
    chown nobody.nobody /var/spool/delegate

    ここでは /usr/local/bin に置きましたが,もちろん他の場所でもかまいません。

  4. 自動起動スクリプトの作成

    これで一応DeleGateを動かす準備は出来ましたが,どうせならLinuxの起動時に自動的に起動するように設定した方が便利です。以下のようにスクリプトを作成します。

    /etc/init.d/delegated を以下の内容で作成します。

    # delegated configuration
    /usr/local/bin/delegated \
    -P8110 \
    SERVER=pop://mail.example.com/ \
    VARDIR=/var/spool/delegate \
    OWNER=nobody/nobody \
    PERMIT="*:*:172.16.1.1,192.168.*"

    この設定例では,ポート8110で接続したパケットを外部のPOP3メールサーバー mail.example.com へ中継します。PERMITの行で接続元のIPアドレスを制限しています。

    作成したら属性を設定してリンクを張ります。

    chmod +x delegated
    cd /etc/rc3.d
    ln -s ../init.d/delegated S99delegated
    cd /etc/rc5.d
    ln -s ../init.d/delegated S99delegated

    Linuxを再起動して,自動起動することを確認します。

接続元のPC上のPOP3クライアントでこのサーバーをPOP3サーバーとして設定し,ポート8110を指定してアクセスします。POP3メールサーバー mail.example.com からメールを読み出すことが可能になります。

POP3に限らず,telnetなどでも同様に中継させることが可能です。中継するポート毎に別々の受けポート番号を指定して,個別に複数のdelegatedを起動します。ただしこれらのプロトコルは接続先をdelegatedのコマンドライン引数で指定してやる必要があるため,任意のサーバーにつながるような中継サーバーは作れません。

nextprev 2.まとめ

別な選択肢としては,stoneというパケット中継ソフトもあるようです。私は試していないのですが,stoneは複数のポートの中継を1プロセスで実行できるので,多数のポートを中継する場合はDeleGateより便利かもしれません。

Windowsを中継サーバーとする場合はDeleGateやstoneも使えますが,GUIで簡単に設定できるBlackJumboDogというソフトもあります。

更新履歴

2003/11/18 初版

top access