FTP/FTPS/SFTPの備忘録
はじめに
FTP/FTPS/SFTPについて調べたことを忘れないための備忘録になります。
FTP
File Transfer Protocolの略であり、基本的にクライアント-サーバ間においてファイル転送を行う通信プロトコルである。
チャネル
FTPでは、ファイル転送を行うために、2つの通信用チャネルを使用して動作する。
- 制御チャネル: ポート番号 21, 主にFTPコマンドの送受信を行うためのチャネル。
- データチャネル: ポート番号 20, ファイルデータの送受信を行うためのチャネル。但し、パッシブモードの場合は、ランダムなポートが選出される。
モード
FTPでは、クライアント-サーバ間において、どちらに対して接続を行うかの2つのモードがある。
- アクティブモード: サーバからクライアントに対して、データチャネル用ポートを通知して、ファイルデータの送受信を行う。
- パッシブモード: クライアントからデータチャネル用のランダムなポート選出して、サーバへ通知し、ファイルデータの送受信を行う。
FTPS
FTP over SSL/TLSの略であり、SSL/TLSを使用してデータチャネルを送受信を暗号化する。
モード
- 明示モード (explicit): クライアントが暗号化に使用するプロトコルを選択して、暗号化してファイル転送を行う。
- 暗黙モード (implicit): クライアントは、サーバが使用しているプロトコルに対してのみ暗号化されたファイル転送が可能になる。
SFTP
SSH FTPの略であり、SSHで暗号化されたチャネルを用いて、安全なデータの送受信を行う。
所感
FTPを学ぶ必要があったため、FTP関連のことをまとめてみました。実際の環境に使われているファイル転送のプロトコルが、FTP/FTPS/SFTPなのか把握していないと、どのレイヤーで問題が起きているか時間がかかりそうだと思う。特にSSL/TLSとSSHの場合だと、サーバ側の調査も必要になる。