File Transfer Protocol

出典: Wikipedio


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

目次

概説

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

用途としては

  • ウェブページ用各種データファイル(HTMLソース画像など)のクライアントのパソコン→ウェブサーバへのアップロード
  • パソコンソフト配布サイトや、データが入っているFTPファイルサーバからクライアントへのファイルのダウンロード

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

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

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

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

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

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

セキュリティ

FTPは、サーバ(ウェブサーバなど)へのアップロードを行う場合、コマンドによりサーバ側のファイルを変更、消去することも可能であるため(一般的にクライアント側からのウェブサーバ内のデータファイルの入れ替えや削除などのメンテナンスは、FTPソフトを使って行うことが多い)、転送前にユーザ名とパスワードによる認証が必要となる。通常のFTPアップロードでは、パスワードが暗号化されず危険であるため、ワンタイムパスワードを利用した認証を行ったり、SFTPSCP(「同様の目的に使えるプロトコル」参照)などで代替したりすることが多い。

一方、フリーソフトなどのダウンロード専用のFTPサーバでは、認証無しで接続・ダウンロードできるサーバも多い。

関連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
  • 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

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

関連項目

als:File Transfer Protocol ar:بروتوكول نقل الملفات az:FTP bar:File Transfer Protocol be-x-old:FTP bg:Протокол за трансфер на файлове bn:ফাইল ট্রান্সফার প্রোটোকল bs:File Transfer Protocol ca:Protocol de transferència de fitxers cs:File Transfer Protocol da:FTP de:File Transfer Protocol el:File Transfer Protocol en:File Transfer Protocol eo:Dosiero-Transiga Protokolo es:File Transfer Protocol et:Failiedastusprotokoll eu:FTP fa:اف‌تی‌پی fi:FTP fiu-vro:FTP fr:File Transfer Protocol ga:FTP gl:File Transfer Protocol he:File Transfer Protocol hi:संचिका स्थानांतरण प्रोटोकॉल hr:FTP hu:File Transfer Protocol ia:File Transfer Protocol id:File Transfer Protocol is:FTP it:File Transfer Protocol ka:FTP kk:FTP ko:파일 전송 프로토콜 ku:FTP lt:FTP lv:FTP mk:ФТП ml:ഫയൽ ട്രാൻസ്‌ഫർ പ്രോട്ടോകോൾ nl:File Transfer Protocol nn:File Transfer Protocol no:FTP pl:File Transfer Protocol pt:File Transfer Protocol ru:FTP sh:FTP simple:FTP sk:File Transfer Protocol sl:FTP sq:File Transfer Protocol sr:FTP sv:File Transfer Protocol ta:கோப்புப் பரிமாற்ற நெறிமுறை tg:FTP th:เอฟทีพี tl:FTP tr:Dosya aktarım iletişim kuralı uk:FTP ur:تبادلۂ ملف دستور uz:FTP vi:FTP yo:File Transfer Protocol zh:文件传输协议

個人用ツール