ネットワークスペシャリスト - SE娘の剣 -

左門至峰によるネットワークスペシャリストの試験対策サイトです。勉強方法、合格体験談、合格のコツ、過去問解説、基礎知識などの紹介します。

FTP(File Transfer Protocol)

1.FTP(File Transfer Protocol)

(1)FTPの概要

・FTP(File Transfer Protocol)とは、言葉の通り、ファイル(File)を転送(Transfer)するプロトコル(Protocol)です。
・FFFTPなどの、FTPクライアントから、FTPサーバに対し、ファイルをアップロードおよび、ダウンロードします。
ftp

・FTPはHTTPとは異なり、ステートフルと言われる。FTPは制御ポート21番があるので、コネクションを管理することができる。
・21番ポートが制御用ポート。20番ポートがデータ転送用ポート
・FTPは、データが平文で流れるだけでなく、認証データ(ID/パスワード)も平文で流れる。つまり、セキュリティ的にはふさわしくない。
・そこで、セキュリティの高いFTPとしてSFTP(SSH Flie Transfer Protocol)があり、FTP通信をSSHで暗号化する。
・ネットワークスペシャリスト試験の過去問では、「1台のクライアントと1台のサーバ間でのFTPを用いたファイル転送では、二つのコネクションを用いてデータ転送を行う。これら二つのコネクションはデータ転送用と制御用に分かれており、データ転送中でも制御コマンドを送信することが可能である。(H19NW午前 問34)」と述べられている。

(2)FTPのシーケンス

1)Client→Server FTPの制御 宛先Port21
2)Client←Server FTPのデータ送信 送信元Port20 
※宛先Portが20と思っていたが、実は送信元(サーバ側)であった。キャプチャして確認した。
Clientのどのポートにアクセスするかは、事前にPORTコマンド(?)が送られて通知される。

通常モード(Activeモード)の場合、サーバからクライアントに対して通信が行われる。
PassiveモードならクライアントはFTPに対して20番ポートでアクセスするが、通常モードならサーバは何番ポートにアクセスすればよいのか?
それを通知するのがPORTというパケットである。
実際にFTPでgetコマンドを実行すると、以下のようにPORTというパケットが送られているのがわかる。

ftp> get aaa.txt  
200 PORT command successful.  
150 Opening ASCII mode data connection for aaa.txt  
226 Closing data connection.  
ftp: 803 bytes received in 0.00Seconds 803000.00Kbytes/sec.  

※WindowsXPのコマンドプロンプトでは、標準ではPASVモードに行けない。ソフトを入れる必要がある。IEではオプションの設定でできる。

(3)FTPのモード

FTPのデータ通信は、ServerからClientに向けて通信が行われる。社外のFTPサーバの場合、この通信は外部から内部への通信なので、Firewallで拒否される場合がある。(最近のFirewallは対応しているものも多いが)
そこで、FTPのデータ通信をClient側から送るモードがあり、それがPassiveモードである。
FTPのモードには,アクティブモードとパッシブモードの2つがあります。

❶アクティブモード

 アクティブモードは,古くからあるモードです。FTPの通信では,制御用コネクション(21番ポート)の確立はFTPクライアントからFTPサーバに対して行います(図❶)。それを受け取ったFTPサーバは,FTPクライアントに対してデータ転送用コネクション(20番ポート)の確立を行います(図❷)。
しかし,このモードでは問題が発生する場合があります。たとえば,社外のFTPサーバの場合,データ転送用コネクション(20番ポート)がファイアウォールでブロックされるのです。 ※ただし、最近のFWはアクティブモードでも、セッションを管理することで、自動で許可する場合が多い。
20230912224246

❷パッシブモード

アクティブモードの上記の問題点を解消するために作られたのがパッシブモードです。パッシブモードでは,データ転送用コネクション(ポート番号はランダム)もクライアントから送ります。内部からの通信なので,ファイアウォールで拒否されにくくなります。

(4)過去問

過去問(H29秋NW午前Ⅱ)
問14 FTPによるファイル転送には,制御用とデータ転送用の二つのコネクションが用いられる。これらのコネクションに関する記述のうち,適切なものはどれか。ここで, FTPはパッシブモードで動作するものとする。
ア 制御用コネクションの確立はクライアントからサーバに対して,データ転送用コネクションの確立はサーバからクライアントに対して行う。
イ 制御用コネクションの確立はサーバからクライアントに対して,データ転送用コネクションの確立はクライアントからサーバに対して行う。
ウ どちらのコネクションの確立もクライアントからサーバに対して行う。
エ どちらのコネクションの確立もサーバからクライアントに対して行う。






正解はウ
問題文に、FTPはパッシブモードで動作するとあります。パッシブモードの動作は、どちらのコネクションもクライアントからサーバに対して実施します。参考までに、アクティブモードの場合は、アが正解です。

過去問(R1秋NW午前Ⅱ)
問13 FTPを使ったファイル転送でクライアントが使用するコマンドのうち,データ転送用コネクションをクライアント側から接続するために,サーバ側のデータ転送ポートを要求するものはどれか。

ア ACCT  イ MODE  ウ PASV  エ PORT






正解はウのPASV

2.TFTP

Trivial(簡易な)FTP。
ちょっと前に高橋克美さんやと野嶋さんが司会する「トリビアの泉」という番組があったが、そのトリビアである。”たわいもない”というような意味だったと思う。

FTPとの違いは、
1)ユーザ認証をしない。
2)TCPではなくUDPを利用する、など
データは512バイトの固定長化するなど、プロトコルそのものを簡素化している。

ネットワークスペシャリスト試験の過去問(H23NW午後1問3)を見てみよう。

過去問(H23NW午後1問3)
・店舗側のL2SWの設定情報は,構成管理SVに保存しておき,簡易型ファイル転送用プロトコルである[ ウ ]を用いてデータを転送する。その作業は,店舗の担当者がL2SWにログインし,構成管理SVの[ エ ]とファイル名を指定したコマンドを投入して行う。






正解は以下
ウ TFTP
エ IPアドレス

3.sftp(Secure File Transfer Protocol)

・SSHを利用したFTP
・SSH (Secure Shell)は、UNIX系のコマンドから来たもの
・FTPの場合、SSHでもSSLでも暗号化できる。
違いは難しいが、SSLの場合は、専用ツールを使う必要があるだろう。標準プロトコルはないかもしれない。SSLは単に暗号化、SSHはシェルなのでコマンド操作を含む色々なことができる