1.FTP(File Transfer Protocol)
(1)FTPの概要
・FTP(File Transfer Protocol)とは、言葉の通り、ファイル(File)を転送(Transfer)するプロトコル(Protocol)です。
・FFFTPなどの、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はアクティブモードでも、セッションを管理することで、自動で許可する場合が多い。
❷パッシブモード
アクティブモードの上記の問題点を解消するために作られたのがパッシブモードです。パッシブモードでは,データ転送用コネクション(ポート番号はランダム)もクライアントから送ります。内部からの通信なので,ファイアウォールで拒否されにくくなります。
(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はシェルなのでコマンド操作を含む色々なことができる