File_Transfer_Protocol
[Wikipedia|▼Menu]

TCP/IP群
アプリケーション層


BGP

DHCP

DNS

FTP

HTTP

IMAP

IRC

LDAP

MGCP

NNTP

NTP

SNTP

TIME

POP

RIP

ONC RPC

RTP

SIP

SMTP

SNMP

SSH

Telnet

TFTP

TLS/SSL

XMPP
カテゴリ
トランスポート層


TCP

UDP

DCCP

SCTP

RSVP
カテゴリ
インターネット層


IP (IPv4IPv6)

ICMP

ICMPv6

NDP

IGMP

IPsec
カテゴリ
リンク層


ARP

OSPF

SPB

トンネリング (L2TP)

PPP

MACイーサネットIEEE 802.11DSLISDN
カテゴリ

File Transfer Protocol(ファイル・トランスファー・プロトコル、FTP、ファイル転送プロトコル)は、ネットワークファイルの転送を行うための通信プロトコルの1つである。

FTPは、インターネット初期から存在する古いプロトコルであり、セキュア(安全)なプロトコルとして設計されていない。ユーザ名やパスワードなどの認証情報を含むすべての通信内容を暗号化せずに転送するなどの問題の他、数多くのセキュリティ脆弱性が指摘されている。FTPは、Gumblarなどのコンピュータウイルスの標的にもされた。そのため、現在では、FTPではなく FTPS (SSL/TLSを使ったFTP) や SFTP (SSH File Transfer Protocol)、SCPSSH上でのrsync、など暗号化された手法を用いることが強く推奨される。
目次

1 概説

2 セキュリティ上の問題

3 関連RFC

4 同様の目的に使えるプロトコル

5 関連項目

概説

インターネット初期の頃から存在するプロトコルで、今でもインターネットでよく使用される通信プロトコルの1つである。プロトコル上は任意のホスト間のファイル転送を行うことが可能であるが、通常は接続したクライアントサーバ(FTPサーバ)間の転送に利用される。

用途としては

ウェブページ用各種データファイル(HTMLソース画像など)のクライアントのパソコンからウェブサーバへのアップロード

パソコンソフト配布サイトや、データが入っているFTPファイルサーバからクライアントへのファイルのダウンロード

などに使われる。ダウンロードについては、ブラウザソフトでも可能であるが、アップロードについてはFTPクライアントソフトやCUIコマンドが必要となる。

任意のホスト間の転送を指示できる名残として、サーバへの接続時のコマンド用とは別にデータ転送用のコネクションを確立するが、この確立方法に「アクティブモード」、「パッシブモード」という2種類の方式がある。

アクティブモード(ポートモードとも言う)では、クライアントがサーバへ待ち受けIPアドレスポート番号を通知し、サーバがクライアントから通知されたIPアドレスのポート番号へコネクションを確立しに行く。このとき利用するポート番号が毎回異なるので、ファイアウォールNATIPマスカレード)などを使った環境では場合によってはうまく接続できないこともある。この場合はパッシブモードを用いる。

パッシブモードではサーバがクライアントへ待ち受けポート番号を通知し、待ち受けポート番号の通知を受けたクライアントがサーバにコネクションを確立しに行く。

いずれのモードでも、コマンド用とデータ用で別々のコネクションを張ることには変わりはない。サーバ側にファイアウォールがある場合、データコネクションのためにどのポート番号を使うかを設定してファイアウォールとの整合を確認する必要がある。パッシブモードを使っている限りにおいては、クライアント側のファイアウォールは気にする必要がない。

通常、サーバに接続する際には認証を必要とするが、専らファイル(主に無償のフリーソフトなど)を配布する目的で、匿名でアクセスできる Anonymous(匿名) FTP サーバを用いる場合もある。

ただし、匿名アクセスでも形式上認証が必要であり、この場合、ユーザとして"anonymous"または"ftp"を指定する。パスワードは通常何でもよいが、配布したソフトに瑕疵があった場合などにサーバ管理者が連絡をとることができるよう、ユーザの電子メールアドレスを指定するのがマナー(ネチケット)とされてきた(メールアドレスのドメインがクライアントのIPアドレスの逆引きなどから明らかな場合は、"foo@"のようにドメインを省略することも多い)。サーバによっては、パスワードがメールアドレスの形式を満たさないと利用できないこともある。しかし、近年ではスパム(迷惑メール)などの問題により、むやみにメールアドレスを公開しない風潮が高まっていることから、このマナーは廃れつつある。また、現在ではFTPクライアント機能を備えたウェブブラウザで匿名FTPサーバにアクセスすることも多く、この場合パスワードは特に指定しない限りブラウザのデフォルト設定(Internet Explorerであれば"IEuser@"など)が使われ、メールアドレスとして意味のあるものにはならない。
セキュリティ上の問題

FTPはセキュア(安全)なプロトコルとして設計されていない。ユーザ名やパスワードを暗号化せずに転送するなどの問題の他、数多くのセキュリティ脆弱性が指摘されている。RFC 2577は、以下の脆弱性を列挙している:

総当たり攻撃

en:FTP bounce attack

パケットキャプチャ (sniffing)

Port stealing

en:Spoofing attack

ユーザ名保護

FTPは通信内容を暗号化できない。通信経路上でパケットをキャプチャすることで、ユーザ名・パスワード・コマンド・データといった情報を容易に盗聴できる。この問題は、SMTPIMAPといった他の歴史のあるインターネットプロトコルでも同様である。これらのプロトコルをセキュアにする一般的な方法は、SSL/TLSセッション上で通信を行うことである。FTPでこれを行うのがFTPSである。またSSHを介してファイル転送を行うSFTPSCPといったツールもある。
関連RFC

RFC 4217
- Securing FTP with TLS

RFC 3659 - Extensions to FTP

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


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:23 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:FIRTREE