[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:32635] Re: NAT 内部の FTP サーバー



こんにちは。松田陽一@PAL-NET三鷹です。
間違っていたらツッコミお願いします。

From: Tatsuki Sugiura <sugi@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Subject: [debian-users:32634] Re: NAT 内部の FTP サーバー
Date: Thu, 2 May 2002 10:14:55 +0900

> 杉浦です。
> 
> >>> In Message "[debian-users:32632] Re: NAT 内部の FTP    サーバー"
> >>>            <3CD07788.1080504@xxxxxxxxx>,
> >>> Tomoo Nomura <nomurat@xxxxxxxxx>  said;
> > >>なるほど。やはりルーターがそれなりに対応していないと、wu-ftpdの設定のみでは
> > >>無理なようですね。ちなみにMN-128-soho PAL B&I ですが、ダメなようです。
> 
> > > いや、野村さんの理解で合っていると思います。
> > > その URL は「ちゃんと全部ポートは閉じたいれど、PASV FTP も通したい」と
> > > 言う要望を実現できるという話です。
> 
> > この、「いや」の意味がよくわからないのですが
> 
> 今回の件に
> [linux-users:87907] http://search.luky.org/linux-users.8/msg07911.html 
> の話は関係なくて、ip_conntrack_ftp や、ルーター側の特殊な機能はいらな
> いのではないかと言うことです。

FTP の PASV モードは、データポートが特定できません。
ですので、例えばパケットフィルタリングファイアウォールでは:

- ポート21番でやり取りされるパケットのペイロード部分を読み取って、
  開けなければならないデータポートの番号を調べてから、
- 当該データポートの TCP syn パケットを受け入れる

という処理が必要になります。

NAT された内側の LAN 上に FTP サーバを置いて、 PASV モードをサポート
するには、 NAT を行うルータは:

- ポート21番でやり取りされるパケットのペイロード部分を読み取って、
  開けなければならないデータポートの番号を調べてから、
- 当該データポートの TCP syn パケットを受け入れ、 FTP サーバへ転送す
  る

という処理が必要になる筈です。

iptables の場合、 ip_conntrack_ftp.o モジュールに加えて、 ip_nat_ftp.o
モジュールもロードさせておく必要があります。
「接続を追跡して (ip_conntrack_ftp.o)」、「当該データポートを動的に
転送する(ip_nat_ftp.o)」訳です。

# なお、 ip_nat_ftp.o は ip_conntrack_ftp.o がロードされないとロード
# できなかったと記憶しています。
# 今試せる環境が手元にないので間違ってたら指摘をお願いします。

同様のことはハードウェアルータを用いても同じことが言えるのではないか
と思います。
全てのポートを FTP サーバに転送するように設定されているのならば別で
すが。
--
夜に帰るため夜に帰るため夜に。
松田 陽一(yoh)
mailto:matsuda@xxxxxxxxxxxx
http://www2.palnet.or.jp/~matsuda/index.htm