• ベストアンサー

ftpのアクティブモード対応モジュールの作成について

ftp受信サーバのftpの設定がパッシブモードとなっています。 環境の設定を変更せずにアクティブモードでのftpを実現するための モジュールを作成することは可能でしょうか? ※レジストリ等の設定を変更すれば実現可能ということは確認しました。 ftpサーバはWin2003サーバです。 またファイアウォール越しにたっています。 モジュールを作成する環境はVC++6.0です。 他に情報が必要であればご指摘ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

パッシブモードの場合は、データ転送の為のコネクションを確立するときに、サーバ側でリッスンを行い、クライアント側から接続を行います。 それに対して、アクティブモード(通常のモード)の場合は、データ転送の為のコネクションを確立するときに、クライアント側でリッスンを行い、サーバ側から接続を行います。従って、クライアント側のファイアウォールを通過できないことがあります。アクティブモードがftpのデフォルトのモードの為、ftpがファイアウォールとの相性が良くないと言われるのは、このことです。 今回の場合、パッシブモードで問題がなく、アクティブモードで、問題になるとすれば、クライアント側のファイアウォールが原因なのではないでしょうか?(自信なし) >自分がモジュールと記述したものは、VC++6.0で作ったexeを指します。 これは、ftpサーバを自前で作るということになりませんでしょうか? ftpのクライアントを自前でつくるのも大変ですが、ftpサーバをつくるのは、もっと大変です。もし、本当に作るのであれば、RFCの理解から始めるべきかと思います。私は、完全なスペックではありませんが、ftpのクライアントもどき及びサーバもどきを必要にせまられてjavaで作ったことがありますが、そのとき、このサイトを利用させて頂きました。参考になれば幸いです。

参考URL:
http://hp.vector.co.jp/authors/VA002682/rfc959j.htm
ken__t
質問者

お礼

色々お世話になりました。 結局上の人も環境上、「おそらく無理かもしれないと思ったけれど、もしかしてできるんじゃないか な?」程度で依頼をしたそうです。 代替案が既にあり、「難しそう」と調査の途中報告で代替案で行くことが決定していたそうです。 それを知らされたのはかなり後からでした。 ということで、それほど期待していなかったようです。 しかし、今回を機会に個人的に深く調べてみようと思います。 有難う御座いました。

その他の回答 (1)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

すみません、回答出来るわけではないのですが、興味があって、質問しました。 >レジストリ等の設定を変更すれば実現可能ということは確認しました。 現行のftp受信サーバがレジストリなどの変更により、アクティブモードでもファイル転送ができたということを確認したと言うことでしょうか? >環境の設定を変更せずにアクティブモードでのftpを実現するためのモジュールを作成することは可能でしょうか? このモジュールの意味がよくわかりませんが、このモジュールは現行のftp受信サーバに追加して使用するのでしょうか?もし、そうだとして、現行のftp受信サーバは、そのようなことが出来るような作りになっているのですか? それとも、現行のftp受信サーバに置き換わるものをモジュールと読んでいるのでしょうか? また、レジストリなどの環境を変えずに、アクティブモードに対応させたい理由は、何故なのでしょうか。環境を変えられない事情があるのでしょうか? 一般的には、ftpサーバは、パッシブモードでもアクティブモードでも動作する仕様で作られているはずです。(但し、windowsの場合はわかりませんが・・)ですので、ファイアウォール自体がアクティブモードでのftp通信を許可していないのではないでしょうか。

ken__t
質問者

補足

ftpに詳しい方の様ですので補足させていただきます。 緊急でこの件を調査していまして、色々はホームページを参照したところ、 レジストリでの対応可能との内容が載っていたページがあったと思います。 作業の依頼者も「それは知っている」と、自分なりの調査結果を報告したときに 指摘されました。 自分がモジュールと記述したものは、VC++6.0で作ったexeを指します。 環境に付いてですが、他にftpの処理をおこなっているものがあるため、 この案件のためだけに環境を変更することができません。 ネットワークの環境ですが、あまり詳しい情報が手に入りませんので、 ファイアウォールの設定がどのようになっているのか分かりません。 もう少し、調べてみます。 有難う御座いました。

関連するQ&A

  • FTPサーバーでパッシブモードを使えるようにしたい

    当方、FTPサーバーを立ち上げています。 セキュリティ等も多少考慮してルーター経由で必要なポートだけあけるようにし、DMZ機能でサーバーマシンへIPを割り振ってます。 さて、FTPサーバーを立ち上げたのですが、クライアントがパッシブモードにチェックするとアクセスできなくなります。 外せば繋がる人もいますが、外すとまったくリストが取得できなくなり、結局いれても外しても接続不可能ってクライアントもいます。 当サーバーでもパッシブモードを有効になるようにしたいのですが、具体的にどうしたらいいのでしょうか? ルーターはマイクロ総研のNetGenesisOPT50です。 サーバーのOSはWIN2Kpro FTPサーバーはBPFTPv2.15です。 ルーターからはポート20と21はサーバーに割り振るようDMZ設定をしてあります。 他にあけなければならないポートがあるのでしょうか? よろしくお願いします。

  • FTPのパッシブモードの設定がうまくいきません

    FTPのパッシブモードの設定をしたいのですが、うまくいきません。 FTPサーバはvsftpdです。 vsftpd.confに次の設定はしました。 ------------------------------ pasv_addr_resolve=YES pasv_address=WANのアドレス pasv_min_port=60000 pasv_max_port=60099 ------------------------------ /etc/sysconfig/iptables-configに ------------------------------ IPTABLES_MODULES="ip_conntrack_ftp" ------------------------------ を設定しました。 lsmodで nf_conntrack_ftpがロードされているのを確認しました。 ルーターはNTTのRT-200NEで、 静的IPマスカレード設定で上記のTCP:21とTCP:60000-60099をFTPサーバのアドレスに設定しました。 iptables でも上記のポートは許可しています。 パソコンおやじさんのFTPサーバテストでPASVモードで接続テストを行いました。 http://www.aconus.com/~oyaji/ftp_tst/ftp_tst.htm すると、60101とかpasv_max_portで設定した値より上のポートで接続しようとしてタイムアウトになるようです。どうやら、ルーターで設定した値の少し上のポートで接続をしようとするようです。ルーターの設定を変更すると、ポート番号がそれにつれて変更します。 環境は OS: Fedora Core 6 FTPサーバ: vsftpd (Fedora Core 6に付属のものをアップデートしたもの) ルーター: NTT RT-200NE 回線: Bフレッツ (固定IP) どなたか、解決策をご存知の方教えていただけないでしょうか? よろしくお願いいたします。

  • FTPソフト。

    プロバイダを変更したので(前はADSLだったのですが、ケーブルテレビにしました)、FTPを使って違うサーバーへアップロードをしようとしました。 ビルダー8についているFTPなんですけど、何故か繫がりません。パッシブモードにしても駄目でした。 ちなみに、ケーブル→モデム→ルーター→PCと繋いでいるんですけど、何か設定等があるのでしょうか??ご存知の方いらっしゃいましたら、ご指導のほど、お願い申し上げます!!(>_<)

  • FTPサーバ

    現在、外出先でもデータの出し入れができるほうに自宅でFTPサーバを立てたんですが、その設定にパッシブモードといった物が有るんですけど、これはどういう機能でどういった時に使うんでしょうか? ちなみにFTPサーバソフトはTiny FTPを使っています。

  • FTPサーバーの構築について

    vsftpdでパッシブモード、アクティブモードの両方でアクセスできるようにさせたいと考えておりますが、 そのようなことは可能でしょうか。 また、パッシブモードがダメな場合、アクティブモードで接続できるようにする。その逆でアクティブモードがダメな場合、パッシブモードで接続できるようにも考えております。 vsftpdで構築可能な場合、その手順が記載されているサイト等をお教えいただけますでしょうか。 vsftpdで構築不可能な場合、別のftpサーバーで実現できるよとのことであれば、その手順が記載されているサイト等をお教えいただけますでしょうか。

  • FTP接続できなくて困っています

    DreamweaverでFTP接続をしていて、FTPパッシブモードのON・OFFを切り替えて以来、FTP接続できなくなってしまい困っています(パッシブモードは今はONに戻しています) ・DreamweaverでもFFFTPでも試してみたが接続できない ・ウィルスソフトやファイヤーウォールを無効にして試してみたが接続できない ・現象が起きているのはロリポップの一部のサーバーのみ (ロリポップでも接続できているFTPアカウントもある、またGMOクラウドなどのサーバーでは接続できている) ・別のネットワーク環境からは接続できている ・Drewmweaverを再インストールし直しても現象変わらずだった <環境> OS:WindowsXP レンサバ:ロリポップ FTPソフト:DreamweaverCS3 どのような原因が考えられますでしょうか・・? どうぞよろしくお願いいたします。

  • 通常FTPではどちらのモードが使用されるのでしょうか?

    通常FTPではどちらのモードが使用されるのでしょうか? ルータのフィルタリングをかけているのですが、FTPを行う場合、 デフォルトでは、アクティブモードなのでしょうか? それともパッシブモードなのでしょうか? ●アクティブモードの場合  21/tcpにて制御  データ部分に関しては、サーバから20/tcpで通信が始まります。 ●パッシブモードの場合  21/tcpにて制御  データ部分に関しては、サーバが任意に決める形であると思います。 つまり、どちらの通信に関しても、TCP(EST)の戻りパケットのみだけだと通信が出来ない 状態だと思います。(サーバからsynパケットが始まるため。) 今回ルータのフィルタリングで ●lan=>wan  lan側サブネット=>wan  src:すべて  dst:20-21 ●wan=>lan  wan=>lan側サブネット  src:20-21  dst:すべて と定義しました。(通常は、tcpプロトコルなら、戻りパケットにて許可を与えればいいと 思います。) 【質問1】まず、ftpと一般的に言った場合のモードはどちらのモードとなるのでしょうか? 【質問2】パケットフィルタリングの考え方としては、戻りパケットではなく、      TCPプロトコルとして定義しなくてはいけないのでしょうか? の2点となります。 ftpについては、未だ通信の流れをあまり理解していないので、よろしくお願いいたします。

  • パッシブモードでポート20番の開放が必要?

    FTPサーバーでパッシブモードを使うことに関してお伺いしたいことがあります。 最近になってFTPサーバーの構築に挑戦し始めたのですが、ソフトウェアには vsFTPdを使い、パッシブモードで動かしています。 データ通信用ポートには60000~60030番を設定しており外部ネットワークからも アクセスしたいので、ルーター側も21番と60000~60030番のポートを開放しました。 調べた限りでは、この設定でパッシブモードが使えるはずなのですが、なぜか外部からの 接続を受け付けてくれません。試行錯誤の末、ルーター側でポート20番も開放しないと パッシブモードが使えないということを突き止めたのですが、僕が調べたどのサイトにも パッシブモードを使用するために20番ポートを開放しなければならないとは書いていませんでした。 データ通信に使用しているポートを調べたところ、確かに60000~60030番のポート を使っていたので、パッシブモードで動いているには違いないようなのですが どうにも腑に落ちない内容なので、どなたかご教授いただけませんでしょうか? よろしくお願いします。

  • FTPのPASVモードについて

    FTPでファイルをアップロードするプログラムを作っています。 そこで質問なのですが、 ・PORTモード、PASVモードはセキュリティ上どちらにしたほうがいいのでしょうか?  ※PASVモードの説明を読んだのですが、データポートをランダムで割り当てる⇒ランダムで割り当てるポートのファイアウォールをあけておかなければならない⇒セキュリティが下がると感じたのでポートモードのほうがいいカナと思ったのですがどうなのでしょうか? ・PASVモードで接続する場合にWindows2000Server、Windows2003Serverで応答するポートを固定に指定できないでしょうか?やり方を教えてください。 よろしくおねがいします~

  • FTP接続ができなくなりました

    ルータの設定を変更した後にプロバイダで開設しているホームページにFTP接続できなくなりました。ルータの設定を戻して、Windowsファイアウォールを無効にしてみましたが、改善しません。FFFTP.exe ではエラー要因が分からないので、InfoByIPというWebサイトから接続試験をしたところ、次の様なログがでました。 (xx はIPアドレス user-id はログインID public_htmlはプロバイダの初期接続先  レは成功、Xは失敗) レ <私>に接続 xx.xx.xx.xx:21 FTPサーバー レ <私>としてログインシテ user-id@xx.xx.xx.xx:21 レ パッシブモードに切替え レ リモートシステムタイプは<私>UNIX X <私>へのリモートディレクトリへの変更に失敗しました。 public_html プロバイダは、FTPサーバーの設定に問題は無いと言うのですが、PC側の設定も以前、接続できていた状態に戻したので、悪いところが分かりません。FTP接続に詳しい方がいらっしゃいましたら、良い対応を教えて頂けると助かります。よろしく御願い致します。

専門家に質問してみよう