« Logparser でグラフを作成する | トップページ | Cisco の設定変更の前に確認しておくこと »

FTP パッシブモード(PASV)の動作確認の方法

FTP パッシブモード(PASV)の動作確認の方法


キーワード:FTPコマンド、パッシブモード、アクティブモード

このエントリーをはてなブックマークに追加

                       

概要

FTPのデータ転送用のためのコネクションの確立方法には、アクティブモード(Active)とパッシブモード(PASV)の 2 種類があります。

アクティブモードでは、クライアントがサーバに「待ち受けIPアドレスとポート番号(デフォルトでは20/TCP)」を通知し、サーバからクライアントが通知 したIPアドレスのポートに対してコネクションを確立します。古めのファイルウォールでは、インターネット上にあるサーバから、内部ネットワークのクライアントに対するコネクション接続を許可しない設定になっていてアクティブモードではFTP接続できないというトラブルが発生する可能性があります。この場合はパッシブモードを使うことで解決することができます。

パッシブモードの場合は、サーバからクライアントに「待ち受けポート番号」を通知して、クライアントからサーバの「待ち受けポート番号」に対してコネクションを確立しに行きます。ファイアウォールの内側にあるクライアントから、外部にあるサーバに対するコネクション確立になるため、ファイアウォールでブロックされるトラブルが起こる可能性が低くなります。

今回はパッシブモードの動作を Telnet と  FTP コマンドを使って動作原理を確認してみました。

FTP パッシブモード(PASV)の動作確認

1.制御用コネクションでファイルリストを要求

制御用コネクションポートである FTP サーバの 21/TCP に Telnet で接続します。USER、PASS コマンドで認証してFTPサーバにログインします。次にPASVコマンドでパッシブモードを指定します。LISTコマンドでファイルサーバ内のファイルリストを要求します。

%telnet ftpserver 21  
Trying 192.168.1.21...  
Connected to ftpserver.example.jp.  
Escape character is '^]'.  
220 FTPServer  
USER ftpadmin  
331 Password required for ftpadmin.  
PASS ********  
230 User ftpadmin logged in.  
PASV  
227 Entering Passive Mode (192,168,1,21,128,31).  
LIST  
150 Opening ASCII mode data connection for file list  
226 Transfer complete.

2.LISTコマンドの結果を表示

2.1.で要求したデータが送信されるデータ転送用ポート番号を特定します。データ転送用のポート番号は、制御用コネクションのPASVコマンドのレスポンスの値から計算することができます。「227 Entering Passive Mode (192,168,1,21,128,31).」のカンマで区切られた 5番目と 6番目の値を使います。「(5番目の値 × 256 ) + 6番目の値」で計算出来ます。ここでは 32799ポートになります。Telnet コマンドで FTP サーバの 32799ポートに接続すると、LIST コマンドの結果が表示されます。

32799 = 128 * 256 + 31

%telnet ftpserver 32799  
Trying 192.168.1.21...  
Connected to ftpserver.example.jp.  
Escape character is '^]'.  
drwxrwxr-x  11 ftpadmin    other         512 Jan 18 11:51 src  
drwxrwxr-x   6 ftpadmin    other        1024 Jan 25 20:09 tmp  
Connection closed by foreign host

                       

参考情報

基礎からわかるTCP/IPセキュリティ実験―Linux/FreeBSDの対応  
に各種プロトコルの説明がわかりやすく書いてあります。  
実際に試しながら学べる内容になっていて、基礎的なプロトコルを理解するのに非常に役に立ちました。  



« Logparser でグラフを作成する | トップページ | Cisco の設定変更の前に確認しておくこと »

Linux」カテゴリの記事

Solaris」カテゴリの記事

セキュリティ(Security)」カテゴリの記事

パソコン・インターネット」カテゴリの記事

技術一般」カテゴリの記事

記事一覧

スポンサードリンク


Twitter


無料ブログはココログ

ブログ検索