File Transfer Protocol
出典: フリー百科事典『ウィキペディア(Wikipedia)』
アプリケーション層 |
---|
DNS ・ ENRP ・ FTP ・ HTTP IMAP ・ IRC ・ NNTP ・ POP3 SIP ・ rlogin ・ RTP ・ SMTP SNMP ・ SSH ・ SSL ・ TELNET |
トランスポート層 |
DCCP ・ IL ・ RSVP ・ RUDP SCTP ・ TCP ・ UDP |
ネットワーク層 |
ARP ・ BGP ・ IP(IPv4,IPv6) ICMP ・ IGMP ・ IGP ・ RARP |
データリンク層 |
ATM ・ DTM ・ FDDI ・ PPP SLIP ・ SMDS ・ イーサネット 無線LAN (Wi-Fi) ・ トークンリング フレームリレー |
File Transfer Protocol(ファイル・トランスファー・プロトコル、略称:FTP)は、ネットワークでファイルの転送を行うための通信規約(プロトコル)である。日本語訳は、ファイル転送プロトコル。
目次 |
[編集] 概説
インターネット初期の頃から存在するプロトコルで、今でもインターネットでよく使用されるプロトコルの1つである。プロトコル上は任意のホスト間のファイル転送を行うことが可能であるが、通常は接続したクライアントとサーバ間の転送に利用される。
用途としては
- ウェブページ用各種データファイル(HTML、画像など)のクライアントのパソコン→ウェブサーバへのアップロード
- パソコンソフト配布サイトやデータが入っているFTPファイルサーバー→クライアントへのファイルのダウンロード
などに使われる。 ダウンロードについては、ブラウザソフトでも可能であるが、アップロードについてはFTPクライアントソフトやCUIコマンドが必要となる。
任意のホスト間の転送を指示できる名残として、サーバへの接続時のコマンド用とは別にデータ転送用のコネクションを確立するが、この確立方法にアクティブモード、パッシブモードという2種類の方式がある。
アクティブモード(ポートモードとも言う)では、クライアントがサーバへ待ち受けIPアドレスとポート番号を通知し、サーバがクライアントから通知されたIPアドレスのポート番号へコネクションを確立しに行く。このとき利用するポート番号が毎回異なるので、ファイアーウォール、NAT(IPマスカレード)などを使った環境では場合によってはうまく接続できないこともある。この場合はパッシブモードを用いる。
パッシブモードではサーバがクライアントへ待ち受けポート番号を通知し、待ち受けポート番号の通知を受けたクライアントがサーバへコネクションを確立しに行く。
いずれのモードでもコマンド用とデータ用で別々のコネクションを張ることには変わりはない。 サーバ側にファイヤーウォールがある場合、データコネクションのためにどのポート番号を使うかを設定してファイヤーウォールとの整合を確認する必要がある。 パッシブモードを使っている限りにおいてはクライアント側のファイヤーウォールは気にする必要がない。
通常、サーバに接続する際には、認証を必要とするが、専らファイル(主に無償のフリーソフトなど)を配布する目的で、匿名でアクセスできる Anonymous(匿名) FTP サーバを用いる場合もある。ただし、匿名アクセスでも認証は必要であり、この場合、ユーザとして"anonymous"または"ftp"、パスワードとして利用するユーザの電子メールアドレスを指定する。
[編集] セキュリティ
FTPは、サーバ(ウェブサーバなど)へのアップロードを行う場合、コマンドによりサーバ側のファイルを変更、消去することも可能であるため(一般的にクライアント側からのウェブサーバ内のデータファイルの入れ替えや削除などのメンテナンスは、FTPソフトを使って行うことが多い)、転送前にユーザ名とパスワードによる認証が必要となる。通常のFTPアップロードでは、パスワードが暗号化されず危険であるため、ワンタイムパスワードを利用した認証を行ったり、SCP(「同様の目的に使えるプロトコル」参照)などで代替したりすることが多い。
一方、フリーソフトなどのダウンロード専用のFTPサーバでは、認証無しで接続・ダウンロードできるサーバも多い。
[編集] 関連RFC
- RFC 2640 - Internationalization of the File Transfer Protocol
- RFC 2577 - FTP Security Considerations
- RFC 2428 - FTP Extensions for IPv6 and NATs
- RFC 2389 - Feature negotiation mechanism for the File Transfer Protocol
- RFC 2228 - FTP Security Extensions
- RFC 1635 - How to Use Anonymous FTP
- RFC 1579 - Firewall-Friendly FTP
- RFC 1127 - A Perspective on the Host Requirements RFCs
- RFC 1123 - Requirements for Internet Hosts -- Application and Support 4.1章
- RFC 959 - FILE TRANSFER PROTOCOL (FTP)
- RFC 765 - FILE TRANSFER PROTOCOL (RFC 959 で改訂)
- RFC 114 - A FILE TRANSFER PROTOCOL