MINI-HOWTO プロキシサーバ DeleGate を使う

鈴木 雄 <setter AT i-red DOT info>

v0.3 Sep. 2000
v0.4 Jan. 2005 ( Update for DeleGate/8.x )

BACK ( DGbeecon )


この文書は、汎用プロキシサーバ DeleGate を Linux にできるだけ簡単にインストールして使用するために書かれました。

1. DeleGateとは

DeleGate日本製の汎用プロキシサーバで、たくさんのプロトコルをサポートしているにもかかわらず、 簡単な設定で、クライアントのプロキシサポートの有無にかかわらず、その恩恵を受けることができます。
また、さまざまな拡張機能によって、プロキシサーバではなく、http,nntpや、ftpサーバそのものとして機能したり、 VPN トンネルを構築したり、プロトコルゲートウェイ(例えば、NNTP-HTTP,POP-HTTPや、SSL-NonSSLなど) や、コードコンバータとして(例えば、漢字コードEUCの使えないクライアントのために、SJISに変換するなど)、 や、フィルタ、メールアドレス変換器 (^^; ...として利用することもできます。

この文書を作成した時点のDeleGateは、バージョン 8.10.5 です。

2. DeleGateをインストールする

DeleGateの配布パッケージは、以下の場所で入手できます。
http://www.delegate.org/delegate/
ftp://ftp.delegate.org/pub/DeleGate/
なお、DeleGate は、ものすごいスピードで進化しつづけています。常に最新版をお使いになられることをお勧めします。

配布パッケージをアンパックします。

$ tar -zxfv delegate8.x.x.tar.gz [Enter]
または、
$ gzip -dc delegate8.x.x.tar.gz | tar -xvf - [Enter]

アンパックでできたディレクトリに移動します。

$ cd delegate8.x.x [Enter]

delegated (DeleGateのサーバプログラム)をコンパイルします。

$ make [Enter]

Pentium オプティマイズが可能なコンパイラがある場合、

$ make CFLAGS="-O -mcpu=i686" [Enter]

としても良いでしょう。
make が始まってしばらくすると、

Enter your E-mail address [you@your.domain]:

のように、DeleGate 管理者の email アドレスが要求されますので、指定します。
このアドレスは生成された delegated のデフォルトとなります。

コンパイルが終了すると、DeleGateサーバプログラム は、 delegate8.x.x/src/delegated として生成されますので、任意のディレクトリ(例えば、/usr/sbin/ や、 /usr/bin/ など。)に、 deleagted を移動すれば、インストールは完了です。

3. DeleGateをhttpプロキシサーバとして起動する

delegated の起動は非常にシンプルです。

例)
ネットワーク構成が、

LAN (単一のネットワーク) <-> [FireWall-host] <-> インターネット

のような場合、

[FireWall-host] $ delegated -P8080 SERVER=http [Enter]

とするだけで、利用可能です。
この時、delegated は暗黙で、http,https(ポート番号80,443),gopher,ftp,wais のプロキシサーバ及び、キャッシュサーバとして動作します。
なお、キャッシュサーバとして動作させる場合、はじめの一回だけ、

[FireWall-host] $ delegated -P8080 SERVER=http CACHE=do [Enter]

として起動し、キャッシュ用のディレクトリを自動生成する必要があります。 DeleGate のキャッシュやログ等のファイルは、 デフォルトで、/var/spool/delegate-nobody 以下に作成されます。

また、Netscapeや、Mozillaのプロキシ設定は、
タイプ プロキシサーバ ポート
HTTP FireWall-host 8080
Security FireWall-host 8080
FTP FireWall-host 8080
Gopher FireWall-host 8080
WAIS FireWall-host 8080
Socks 空にしておく 1080

のようになります。
他のプロトコルのプロキシとして使用するときは、
例えば、telnet や、pop プロキシの場合、同様に、
[FireWall-host] $ delegated -P8023 SERVER=telnet [Enter]
[FireWall-host] $ delegated -P8110 SERVER=pop [Enter]
のように起動します。

4. セキュリティに関する設定

DeleGateに限らず、プロキシサーバなどのインターネット防火壁(ファイアーウォール)を扱う場合、 セキュリティに関する考えは、誰も避けて通れない問題で、 最近のケーブルテレビのインターネットへ接続したりする場合は、特にそうです。
DeleGateにも、アクセスを制御するためのオプションが多くあり、 ある程度は、デフォルトでやってくれていますが、やはり、明示的に設定した方が、良いでしょう。

上記のように http プロキシサーバとして起動した場合は、簡単には、以下の2つのルールが適用されています。

  • FireWall-host のローカルネットワークアドレスからのアクセスを許可
  • 全てのアドレスへのアクセスを許可する

となっていますが、ここからDeleGateについてのみ考えた場合、

  • FireWall-host のインターネット側ネットワークの人は、このプロキシサーバを利用できる。
  • そこから、FireWall-host の LAN 側にも httpなどのプロトコルでアクセスできる。

ということになり、明らかに不安です。
一番簡単に解決するためには、

[FireWall-host] $ delegated -P8080 SERVER=http RELIABLE=my-address [Enter]
### 使用する自分のホストからのみアクセスを許可する。

[FireWall-host] $ delegated -P8080 SERVER=http RELIABLE=my-network/my-netmask [Enter]
### 自分のLANからのアクセスのみ許可する。

[FireWall-host] $ delegated -PFireWall-LocalIF:8080 SERVER=http [Enter]
### DeleGate を FireWall ホストのローカル側インタフェースにだけバインドする(お勧め)

とすると、少し幸せになれます。

5. 動作のデバッグ

delegated を -vv オプションをつけて起動します。
このとき、delegated はフォアグラウンドで動作し、デバッグ情報を起動したコンソール上に表示します。
表示される情報をよく観察し、正しくパラメータが読み込まれているかなどを確認します。
これは、私もよくやることですし、ほとんどの場合、これで、解決できると思います。

私がよく戸惑ったのは、起動スクリプトを以下のようにした場合、

--- ファイルの内容 ---
#!/bin/sh
delegated -P8080 \
	SERVER=http \
	RELIABLE=my-address/32
--- ファイルの内容 ---

\ マークの後に、無駄な空白などが入っていると、それ以下のパラメータを読んでくれません。

なお、どうしても自力で解決できない場合、 DeleGate メーリングリストに入会して、 ログの必要と思われる部分と、何をどうしたくて、何をどうしたら、何がどう動かないのか、 を質問することも解決策の一つです。

6.設定例

以下の設定は、参考になると思いますが、 ##必ず##リファレンスマニュアルを読み、 何をやっているのか理解してから、使うようにしてください。
また、リファレンスマニュアルにもたくさんの設定例が載っていますので、ぜひ参照してください。

なお、動作の良否や障害については一切責任を取れませんので、実行に際しては、自己責任の元にお願いします。

設定例

7. TODO

8. 参考文献

9. 謝辞

DeleGateの生みの親である、 y DOT sato AT delegate DOT org (Yutaka Sato 佐藤豊) さん及び、
DeleGate-MLで、お世話になった方々。

私を JF-ML に誘っていただき、英語の翻訳や、フリーの精神を教えていただいた、
Linux ユーザの方々。

また、この文書を作成するにあたってご協力いただいた、

Masanori Kobayasi <zap03216 AT nifty DOT ne DOT jp> 様
NAKANO Takeo <nakano AT apm DOT seikei DOT ac DOT jp> 様
TAKEI Nobumitsu <takei AT webmasters DOT gr DOT jp> 様

その他、私に色々と教えてくださった多数の方々。

この場を借りて、お礼を申し上げます。

10. 履歴

2000.9.7 v0.1 草稿
2000.9.10 v0.2 設定集追加
2000.9.13 v0.3 ソースのお掃除
2005.1.31 v0.4 DeleGate/8.x 用にアップデート