FTP
FTPとは
FTP(File Transfer Protocol)は、サーバーとの間でファイルをアップロード・ダウンロードするための古典的なプロトコルです。Webサイトのファイルをサーバーに置く用途などで長く使われてきました。
FTPの最大の特徴は、制御用とデータ転送用の2本の接続を使うことです。
- 制御コネクション: ログインやコマンドのやり取り(ポート21)
- データコネクション: ファイルの中身や一覧の転送(モードによってポートが変わる)
FTPアクティブモードとFTPパッシブモード
データコネクションを「どちらから張るか」で2つのモードがあります。[[ファイアウォール]] との相性を理解する上で重要なポイントです。
| アクティブモード | パッシブモード | |
|---|---|---|
| データ接続の向き | サーバー → クライアントに接続しにいく | クライアント → サーバーに接続しにいく |
| クライアント側の都合 | 外からの接続を受ける必要があり、ファイアウォールや NAT にブロックされやすい | 外向きの接続だけなので通りやすい |
| 現在の主流 | ほぼ使われない | こちらが標準 |
家庭や社内のネットワークは「内から外への接続は許可、外から内は拒否」が基本のため、サーバー側から接続しにくるアクティブモードは失敗しがちです。これは [[ファイアウォール]] のステートフルインスペクション(内側から始めた通信の戻りだけを通す仕組み)による挙動で、同じ FTP でもデータ接続を張る向きが変わるだけで結果が変わります。「FTPがつながらない」トラブルの定番原因であり、現在はパッシブモードが標準になっています。
現在の位置づけ — SFTPへ
素のFTPはID・パスワードもファイルの中身も平文で流れるため、盗聴に弱いという致命的な弱点があります([[暗号化の基礎]])。このため現在は、
- SFTP — [[SSH]] の仕組みの上でファイル転送する(事実上の後継。ポートも SSH と同じ22番1本で済む)
- FTPS — FTP を TLS で暗号化したもの
への移行が進み、新規で素のFTPを選ぶ理由はほぼありません。プロトコルの歴史と「なぜ置き換えられたか」を学ぶ教材としての価値が大きい技術です。
関連技術とのつながり
- [[TCP/IP]] — FTP は TCP の上で動く(制御とデータで2本の接続)
- [[ファイアウォール]] — アクティブ/パッシブの違いはファイアウォール越えの問題そのもの
- [[SSH]] — 後継の SFTP は SSH の応用
- [[暗号化の基礎]] — 平文プロトコルの危険性と暗号化の必要性
Q: FTPパッシブモードの説明として正しいのはどれ?
- [ ] サーバーからクライアントへデータ接続を張りにいく
- [x] クライアントからサーバーへデータ接続を張りにいく
- [ ] データ接続を使わず制御接続だけでファイルを送る
解説: パッシブモードはクライアント側から接続するため、ファイアウォールや NAT を通りやすく現在の標準です。
Q: アクティブモードがファイアウォール環境で失敗しやすい理由はどれ?
- [x] サーバー側からクライアントへの接続が「外から内」への通信として拒否されるから
- [ ] 暗号化が必須でクライアントが対応できないから
- [ ] ポート21が常に閉じられているから
解説: 多くのネットワークは外から内への接続を拒否するため、サーバー発のデータ接続がブロックされます。
Q: 素のFTPに代わって現在推奨される、SSHの仕組みを使うファイル転送はどれ?
- [ ] FTPS
- [ ] SCP-FTP
- [x] SFTP
解説: SFTP は SSH 上でファイル転送を行い、認証も転送内容も暗号化されます。