- 締切済み
FTPの自宅サーバーに伴う問題。
はじめまして。日頃お世話になっております。親切にアドバイスくださる方など大変感謝いたしております。 前回同じ内容をYahoo知恵袋の方に質問させていただいたのですが、問題解決いかなかったのでこちらにご質問した次第です。 現在会社とiPhoneにFTPで繋げられないかと好奇心考え構築に伴う疑問がいくつか出てきたのでご享受お願いします。 1、1・FTPの接続モードであるアクティブモードで、サーバーの設定画面にあるポートを21番から50000番に変更しました。 サーバー側のNATに5000番を開けさせ、serverに通す設定をしました。 しかし 認証はするもののデータが表示されません。 ここで私の見解なのですが変更されたのは制御コネクションであり、データコネクションは20番ままである。 ならサーバー側のNATで20番も開ければ通信出来ると考えたのですが、できません。って事はクライアント側のNATでも20、50000番を開ける設定にしないと開かないのですか? 2、20番をアクティブモードで変更する事はできないのでしょうか?またネットで調べてわかったのですがなぜ一般の環境ですとアクティブモードでの運用は難しいのですか? 2;PASVを使用して通信を行う場合コネクションの要求がクライアント側になったので、server側のルーターにはどのポートが使われ るかわからないのになぜ通信が行えるのですか?サーバ側のNAT設定をしなければどのみちサーバーからはデータはグローバルに行く前にルーターではじかれると思うのです。 お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Wr5
- ベストアンサー率53% (2173/4061)
>PORTモードでのポート変更は意味はあると思うのですが、PASVではデフォで1024~5000ポートを使うため変更もへったくれもない。っということですよね? PASVでのデフォルトで使用されるポートの範囲は…サーバソフト次第かと思われます。 たいていは設定が可能なハズですが。 >またPORTで変更する意味は20-21が開いている=FTPが動いているってことが容易に推測できるからのセキュリティ意識なのでしょうか? PORTコマンドでクライアント側からアクティブモードで接続するポート番号を指定できるのは… ファイヤーウォールとか、そういった関係かと。 (サーバ側で)制御コネクションの21番が開いていると、FTPサービスが稼動しているだろう。という推測はされると思いますが。 # 標準ポート使っていれば他のサービスでも同様です。 >21番で制御コネクションが送られてきて、データコネクションが1024番以上のポートで来るっといった考えで間違いないですか? データコネクションは「クライアントからサーバへ」となるハズです。(パッシブですから) >つまりPASVで通信する場合1024~5000と21番のNAT設定が必要ってことですよね? サーバ側はそうなるでしょう。(PASVで使用するポートの範囲については設定次第) PASVモードの場合、クライアント側のインバウンドは開ける必要がありません。 # 今は構築していませんが…自宅でFTPサーバ開けるとしたらPASVのポート範囲を9個程度に制限しますかね…。(同時接続があるワケでもないので2つくらいで十分だったりしますけど) >またFFFTPを始めとしてPASVモードでポート指定が出来るクライアントソフトはこの(前回の質問と重複していますが)21番が変えられるっといった考えで間違い無いでしょうか? 制御用コネクション(21番)は、不要なアタックなどを避ける為にサーバ側で変更している可能性があります。 そういう場合に対応する為にクライアント側でポート番号を指定できるようになっているのでしょう。 PASVモードの場合、ポート番号の決定はサーバ側の都合によるので クライアント側はPASVのポート範囲について考慮する必要はない…ハズです。 # クライアント側のファイヤーウォールのアウトバンドが制限されている場合は別ですが……。
- Wr5
- ベストアンサー率53% (2173/4061)
>つまりサーバ側のNAT設定で例として1-100番まできた(FTP監視してないルーター)PacketをサーバーIPに転送するっといったことですよね? そうです。 例だとしても範囲がアレですが…。 >これってセキュリティ的に大いに危険ではないですか? 「大いに」という程ではありません。 # まったくないワケでもありませんが。 ルータは「常時」サーバへパケット(接続要求)を転送しますが、 サーバの方は「データコネクション接続待ち」の時しか待ち受けしていないハズです。 つまり誰もFTPログインしていない状態の時にPASVのデータコネクションポートへ接続要求を出しても接続できません。 # ヘタレなサーバなら常時ウェルカム!!かも知れませんが…今時、そんな非セキュアなことはないかと思われます。 コネクション待ちの時にたまたま他からの接続要求がカブった場合は…横取りされるかも知れません。 >ではクライアントが2番ポートしか使わないっとクライアントソフトで設定し FTPというプロトコルの性質上、無理なんじゃないですかね? RFCあたらないと断言はできませんが。 >iPhoneなどのマルチ端末ではアクティブでの通信はできないのですよね? 接続方式次第…かと。 WiFi接続ならその先にあると思われるルータ次第。 3Gとかで直結(端末にグローバルIPが付く)なら、たいていはそのまま通信できるかと。 # もちろんクライアントソフトは必要。
補足
ようやくある一定の部分まで理解できました。 手取り足取りを教えていただき、大変感謝いたして入ります。 最後に確認の意味を込めてお聞きしたいことがあります。 PORTモードでのポート変更は意味はあると思うのですが、PASVではデフォで1024~5000ポートを使うため変更もへったくれもない。っということですよね? またPORTで変更する意味は20-21が開いている=FTPが動いているってことが容易に推測できるからのセキュリティ意識なのでしょうか? 最後です。 http://www.nina.jp/server/basic/ftp.html 上記の内容でパシップモードの説明があるのですが、クライアントの任意のポートからサーバに21番接続とあるのですが、21番で制御コネクションが送られてきて、データコネクションが1024番以上のポートで来るっといった考えで間違いないですか? つまりPASVで通信する場合1024~5000と21番のNAT設定が必要ってことですよね? またFFFTPを始めとしてPASVモードでポート指定が出来るクライアントソフトはこの(前回の質問と重複していますが)21番が変えられるっといった考えで間違い無いでしょうか?
- EF_510
- ベストアンサー率50% (306/604)
FTPはアクティブ、パッシブに関わらずまず制御チャネルでデータ送受信用のポートを通知します。 アクティブの場合はサーバからクライアントに接続を行いますのでサーバから指定されたポートをクライアント側で空けておく必要があります。 パッシブの場合はクライアントがサーバに接続を行いますのでサーバでポートを使用可能にしておく必要があります。 (1)クライアントはポート20で待っているとは限りません。上記したように使用されるポートはサーバ側から指示されるためです。FTPクライアントによってはサーバに通知する使用可能ポートを設定できるものもあります。その場合はクライアント側ルーターのNATでポート開放を行うことによって使用できるかもしれません。 (2)FTPサーバソフトで変更は可能です。 一般にアクティブモードの使用が難しいのはクライアント側がNAT内部にあることが多く、サーバ側から直接コネクションを行えないためです。 (3)サーバがNATの内部にいる場合はポート開放を行う必要があります。直接グローバルアドレスを持っている場合はサーバ自身のファイアウォールなどが適切に設定されていれば普通に通信可能です。 いずれにしてもサーバ側では各モードで使用するポートを設定できますので対応は比較的容易かと思います。 また、クライアント側でFTPのプロトコル監視を行えるNATを使用できればアクティブモードでも接続は容易になるはずです。
- Wr5
- ベストアンサー率53% (2173/4061)
http://okwave.jp/qa/q6961959.html の続きでしょうかね…… >ここで私の見解なのですが変更されたのは制御コネクションであり、データコネクションは20番ままである。 あってます。 >ならサーバー側のNATで20番も開ければ通信出来ると考えたのですが、できません。って事はクライアント側のNATでも20、50000番を開ける設定にしないと開かないのですか? 前にも解説しましたが… アクティブモードだとサーバからクライアント側に接続に行きます。 よって、サーバ側の20番(のインバウンド)は閉じていてももよく、 クライアント側の20番(のインバウンド)は開けておく必要があります。 で、ルータでその様に開けた場合、クライアント側のネットワーク内でFTPクライアントが使えるマシンは1台だけになります。 # WAN側の20番に来たパケットを設定したマシン「のみ」に転送する為。 >20番をアクティブモードで変更する事はできないのでしょうか? サーバソフト次第です。 vsftpdというFTPサーバならば、connect_from_port_20とftp_data_portで設定できますし。 >なぜ一般の環境ですとアクティブモードでの運用は難しいのですか? サーバ側からの接続になる為、クライアント側ではじかれる場合がある。とか、 クライアント側としてはポート開放では1つのマシン(IP)向けにしか設定できない為、FTPが使えるマシンが1台だけになる。 などなど……。 これに、使っているルータがFTPのコマンドパケットを監視して転送時に内容を書き換える動作をするものがある……というのも。 >PASVを使用して通信を行う場合コネクションの要求がクライアント側になったので、server側のルーターにはどのポートが使われ るかわからないのになぜ通信が行えるのですか? サーバソフトで使用する範囲を設定できたりしますので、その範囲に来た接続要求をサーバに転送すれば正常に通信可能です。 # ルータとファイヤーウォール双方で必要ですが。 >サーバ側のNAT設定をしなければどのみちサーバーからはデータはグローバルに行く前にルーターではじかれると思うのです。 もちろん、設定しなければ弾かれます。 ルータがFTPのコマンドパケットを監視して…というものの場合は設定が不要だったり、設定が食い違ってトラブル起こすこともあります。 # 以前使っていたルータでは「FTPのコマンドポートのポート番号」を指定できるものがありましたけどね。 # 非標準ポートを使う場合に変更すると対応してくれた…のでしょう。(試す前にルータ換えちゃったし)
補足
Wr5様。 そうです。当方の質問です。あの時点では理解していたつもりだったのですが、いざ実行に移してみると、手詰まりなことばかりで、同じ所でどうかと思い質問を知恵袋からgooに来た次第でございます。本件に関し前回ともどもWr5様の素人の私に対する親切な対応を心から感謝いたしております。 ご享受お願いします。 通信方式はPASVで行うことにしました。 以下はPASVでの質問です。 >サーバソフトで使用する範囲を設定できたりしますので、その範囲に来た接続要求をサーバに転送すれば正常に通信可能です。 つまりサーバ側のNAT設定で例として1-100番まできた(FTP監視してないルーター)PacketをサーバーIPに転送するっといったことですよね? これってセキュリティ的に大いに危険ではないですか? ではクライアントが2番ポートしか使わないっとクライアントソフトで設定し、サーバーNATで2番開放した場合おそらく制御は2番を使うと思うのですが、データはどのようなポートを使うのですか? 最後の質問です。 iPhoneなどのマルチ端末ではアクティブでの通信はできないのですよね?やる気はないですが。 アドバイスお願いします。
お礼
ご回答ありがとうございます。 ご丁寧にご回答していただきありがとうございます。 通信による謎っといいますか疑問は理解できました。 当方の細々とした質問に一つ一つ丁寧な回答に感謝します。 お時間を割いてご回答もらえたことに感無量でございます。 現在はPASVで問題なく可動しております。 いずれはでの運用を考えており、これから一つ一つ学習していきたいと思います。