- - PR -
FTP に関する質問
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-13 10:39
こんばんわ。FTP 接続に関して教えてください。
Internet | | 外部IP 外部IP ----------- -------------- + ルータ +------+ サーバー1 + -----+----- -------------- | 内部IP | | 内部IP ------------- ※ サーバー1ではIPTABLE によるFW を行っています +サーバー2 + ※ サーバー1,2共にLinux サーバーです ------------- ※ ルータはヤマハで,IP マスカレードしています 上記のような構成でサーバー2よりサーバー1へFTP コマンドでFTP をします。 このとき, 質問1: ACTIVE モードでFTP データ転送ができる理由が分かりません。 通常,FTP 接続先サーバーがルータ,FW 越しであるとき,ACTIVE モードでのFTP データ転送はFW の関係上できないものと思っていますが,FTP できてしまいます。ヤマハの動的NAT のおかげと思いますが,具体的な仕組みがわかりません。 質問2: サーバー1のIPTABLE の設定が原因で,PASSIVE モードでのFTP データ転送ができません。つまり,FTP 接続はできますが,リストがサーバー1からおりてきません。PASSIVE モードでのFTP データ転送では,サーバー2からサーバー1へデータ転送による新規接続を行いますが,サーバー2からサーバー1のどのポートへ接続されるかが分からない為,IPTABLE のポートがむやみにあけれません。PASSIVE モードで利用される接続先ポート番号の範囲は決まっているのでしょうか? お分かりの方いらっしゃいましたらご教授お願いします。 | ||||||||||||
|
投稿日時: 2004-05-13 11:19
すいません。 個人的には、FW越しだとなぜactiveモードでFTP転送できないのかわかりません。 設定次第ではないのでしょうか?
パッシブモードで利用するポートの範囲については、 FTPサーバーソフトによって指定できるものもありますよ。 全てのFTPサーバーを知っているわけではないのですが、 proftpなどは、設定ファイルで指定できたとおもいます。 FTPサーバがなにかわからないので、マニュアル(man)などを見てみてください。 iptablesの設定で、RELATEDやESTABLISHEDなパケットの通過を許可すれば、 ポートをだだっぴらきにしなくてもよいのではないのでしょうか? ESTABLISHED: このパケットは、過去双方向にパケットがやり取りされた接続に属するパケットである。 RELATED: このパケットが新しい接続を開始しているが、 FTP データ転送や ICMP エラーのように、既存の接続に関係している。 http://www.linux.or.jp/JM/html/iptables/man8/iptables.8.html より抜粋 FTPサーバーの設定で、使用するポートの範囲を決め、それらのポートに関して 上記を適用するとするといいかもしれません。 (FTPに関してのみなので、目的に応じて設定しないといけないですが) iptablesに関しては、googleなどでもいろいろ設定についてかかれているWEBページがみつかりますので、見てみてはいかがでしょうか? _________________ | ||||||||||||
|
投稿日時: 2004-05-13 12:13
ダイです。
早速のお返事ありがとうございます。
Internet | | 外部IP 外部IP ----------- -------------- + ルータ + ------ + サーバー1 + -----+----- -------------- | 内部IP | | 内部IP -------------- ※ サーバー1ではIPTABLE によるFW を行っています + サーバー2 + ※ サーバー1,2共にLinux サーバーです -------------- ※ ルータはヤマハで,IP マスカレードしています ACTIVE モードだと,FTP データ転送を行う際,サーバー1からサーバー2へ新規接続されるので,ESTABLISHED でないパケットのみ通過させるFW であるとフィルターさせられてしまうと思っています。よって,ACTIVE モードではFW 越しに通信できないと思っています。また,ACTIVE モードだと,PORT コマンドで接続してきて欲しいIP, PORT 番号をサーバー1へ通知するので,NAT 越しであっても正常にFTP データ転送ができないと思っています。しかし,ヤマハルータはできるのです。ここが分かりません。
proftpd でPASSIVE で利用するポート範囲というのが設定できるみたいです。ありがとうございました。今回はproftpd で利用されるポート範囲を制限し,IPTABLE でそのポートを空ける作業を行えば大丈夫そうです。
確かにproftp で範囲指定したポートだけをFW で穴あけしても,そのポートに対して攻撃されるケースもあるので,RELATED フラグにて範囲を狭めた方がよさそうです。 ただ,RELATED フラグを指定した場合,IPTABLE はFTP データパケットを拾った場合にそれがどのFTP 制御パケットに関係するか分かっているということでしょうか?つまり,FTP データパケットが新規パケットでないことがIPTABLE は分かるのでしょうか? お願いします。 | ||||||||||||
|
投稿日時: 2004-05-13 12:45
FTP接続中に実際にネットワークを流れるデータ(コマンドや応答)を解析することで、動的にWAN側ポートの転送先&可否を制御しているだけです。もちろん、対応している器機もあれば非対応の器機もあることでしょう。非対応の器機の場合には、ご指摘の通りパッシブモードにしなくては動作しません。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ | ||||||||||||
|
投稿日時: 2004-05-13 12:54
お返事ありがとうございます。ダイです。
最近のルータはパケットデータまで解析してくれるということでしょうか?確かにデータまで解析してくれれば,FTP データパケットであることはさることながら,最終的なFTP データ転送先ホストまでもが分かるので,NAT 越しでも大丈夫ですね。しかし,データまでも解析するとなると,従来の解析しないルータに比べてルーティング効率などが割るそうですが,どうなんでしょうか? よろしければ回答お願いします。 | ||||||||||||
|
投稿日時: 2004-05-13 14:12
はじめまして、prestoです。
ちょっと確認というか、もしかしたらまったく関係ない 恐れがあるのですが、iptablesの設定の事で http://www10.plala.or.jp/keomin/miscell/iptables01.htm このURLページの一番したに -------------------------------------上記URLより引用------ ●プライベートアドレス側からftpを使えるようにする /sbin/insmod ip_nat_ftp /sbin/insmod ip_conntrack_ftp ftpは特別なことをしてるそうで、単純にフィルタリングを 掛けるだけでは使えない。使えるようにするには上記の モジュールをロードする必要がある。 ---------------------------------------------------------- というのがありました。 このモジュールのロードの話はどうでしょうか? まったく関係ないことだったらごめんなさい^^; | ||||||||||||
|
投稿日時: 2004-05-15 00:55
最近でなくても、いわゆるNATやIPマスカレードを行うルータは、昔から、 FTPプロトコルの内容を解析して、パケット内容の変換を行っています。 http://ftp.rfc-editor.org/in-notes/rfc3022.txt Traditional IP Network Address Translator (Traditional NAT) (↑もっともシンプルなNATの実装に関するRFCです) もちろんその分、処理が遅くなりますが、現在では安いブロードバンド ルータでもほぼワイヤースピード(100Mbpsですが)での転送ができることを 宣伝文句にしていますので(たいていは、FTPでの転送速度を測っている ようです)、あんまり心配する必要はないかと思われます。 |
1