Ciscoルータで学ぶネットワーク > FTPの通信(パッシブモード)
当サイト概要CCNA・CCENT・資格書籍学習環境の準備リンクについてリンクの申込お問い合せプライバシーポリシー
◆FTPの通信(パッシブモード)

FTPの通信(パッシブモード)


パッシブモードでは、制御コネクション、データコネクション共に全てクライアントから始まります。

 アクティブモードでは、FWやNATにおいて、問題点がありました。パッシブモードは、クライアントがFWやNATルータ配下にいても通信ができるようにするために用意されたモードです。

 アクティブモードでは、FTPサーバからデータコネクションが確立されましたが、パッシブモードのデータコネクションでは、アクティブモードとは逆に、クライアント側の任意のポートからFTPサーバの待ち受けポート方向にコネクションを確立します。

 このモードでは、クライアントからFTPサーバへ制御コネクションでPASVコマンドを使用します。FTPサーバは、その応答に自身のIPアドレスと待ち受けポート番号を含めクライアントに通知します。

クライアントは、FTPサーバから通知されたIPアドレス、ポートに対してFTPサーバにデータコネクションの確立を行います。


パッシブモードでは、制御コネクション、データコネクション共に全てクライアント側から確立されることになります。

 PASVコマンドに対する応答の中にFTPサーバのIPアドレスと待ち受けポート番号が記述されることにますが、NATやIPマスカレードでの変換対象にならないので問題になりません。

 パッシブモードでは、一見、NAT問題を解決できそうに思えますが、FTPサーバがNATルータ配下である場合に、同様な問題が起こります。


 パッシブモードでは、ファイルのダウンロード、アップロードにかかわらず、下図のようにクライアント側からコネクションが確立されるようになっています。


パッシブモードのデータ転送のクライアントとサーバのシーケンスは、下表のようになります。

クライアント 内容 サーバ
任意 ---> PASV ---> 21
任意 <--- Entering Passive mode (aaa,bbb,ccc,ddd,ee,ff) <---
※コマンド補足を参照
21
任意 ---> ( SYN ) ---> ee*256+ff
任意 <--- ( SYN , ACK ) <--- ee*256+ff
任意 ---> ( ACK ) ---> ee*256+ff
任意 ---> RETR filename ---> 21
任意 <--- Opening ASCII mode data connection <--- 21
任意 ( ファイルのダウンロード )


ee*256+ff
任意 <--- Transfer complete. <--- 21

 クライアントは、PASVコマンドをサーバに送信して、パッシブモーとでデータを転送するように要求します。サーバは、この応答として、データ転送で使用するサーバ側のポート番号を送信します。この応答を受け取ったクライアントは、クライアントの任意のポートからサーバの指定ポートに向けて、コネクションを張ります。

◆コマンド補足

 aaa,bbb,ccc,ddd   ・・・ クライアントの待ち受けIPアドレスを指します。
 ee,ff          ・・・ クライアントの待ち受けポート番号を指します。

上図のポート番号が「3001」の場合、eeが「11」、ffが「185」となります。

そのからくりは、このようになっています。

10進数の3001を16進数に変換すると下記のようになります。

 (3001)10=(0BB9)16

16進数の(0BB9)16をオクテットに分割し、その各々を10進数に変換します。

 (0B)16=(11)10

 (B9)16=(185)10


パッシブモードとファイアウォール、NATとの相性


 パッシブモードでは、内部からのSYNを送信して、コネクションを確立するので、外部からのSYNを拒否するように設定されたファイアウォールのフィルタリングにブロックされることはありません。

 また、送信元IPアドレスと送信元ポート番号は、アクティブモードと同様に記述されますが、これはサーバ側から内部へのパケットであるため、送信元IPアドレスと送信元ポート番号を書き換える必要がありません。そのため、NATやIP Masqueradeで問題が生じることがなくなります。

 パッシブモードで通信を行うと、ファイアウォールやNATとのトラブルがなくなりますが、注意するべき点があります。それは、パッシブモードでは、サーバの送信元ポート番号(1024以上)を通すようにファイアウォールを設定しておかなければならないことです。

 サーバの送信元ポート番号は、ランダムであるためかなり広い範囲を指定しておく必要があり、ファイアウォールの穴が大きくなってしまいます。静的フィルタリング型のファイアウォールでは、常に穴が開いた状態となるため、外部からの侵入経路となるため、危険にさらされることとなります。

FTPの通信B  @AB

◆Menu
◆スポンサードリンク
◆Amazon

Copyright(c)2014〜 Ciscoルータで学ぶネットワーク All rights reserved.