本稿ではFTP (File Transfer Protocol)について、2分で読めるボリュームに要約して紹介する。
1.FTP (File Transfer Protocol)とは
ファイル転送専用のプロトコルで、クライアントからサーバにログインし、ファイルを送信(PUT)したり取得(GET)したりすることができる。
古いプロトコルなので、複雑な機能は持っておらず、例えば、暗号化などのセキュリティ面の機能が少なかったり、ファイルの完全性保障がプロトコル単体では出来ないなど、利用時に考慮しなければならない点がある。
2.セキュリティ面での考慮
FTPは暗号化をサポートしておらず。ログイン時のユーザID/パスワードや送受信するファイルの内容がそのままネットワーク上を流れるため、セキュリティ面での考慮が必要だ。
FTPのセキュリティ面での課題を克服するために作られたプロトコルとしてFTPSとSFTPがある。それぞれ、強固なセキュリティを持つ別のプロトコルと組み合わせることで、FTPのセキュリティ面での弱さを補っている。
FTPSとSFTPは混合されがちだが、それぞれ以下のプロトコルと組み合わせている。
- FTPS → SSL/TLS
- SFTP → SSH
これらのプロトコルと組み合わせて利用することで、通信系路上のセキュリティを担保することが可能だ。昨今ではセキュリティへの意識の高まりから、業務システムにおいても巣のFTPではなく上記のプロトコルを使う場合が多くなってきている。
3.ファイルの完全性の面での考慮
FTPは送受信するファイルが完全であることを保障する仕組みはない。そのため、ネットワークの状態によってファイルが破損したり、送信途中のファイルを受信側で読みこめてしまえたりする。
残念ながらFTPにはこうした状況を回避するためのプロトコル上の機能は持っていないため、送受信の手順を工夫することで回避する必要がある。
よくある方法が、ファイルの送信完了後に、送信完了を伝えるトリガーファイルを送信するという方法だ。送信側でデータファイル送信を完了した後に、0byteのファイルをputする。受信側ではトリガーファイルの有無を監視し、トリガーファイルを発見したらデータファイルを取得することで、送信途中のファイル読み込みを避けることができる。
4.まとめ
FTPは気軽にファイルをやり取りできるため、コマンドラインからのファイル操作だけでなく、業務システムで利用される場面も多い。
コマンドさえ覚えれば誰でも簡単に利用できるプロトコルだが、合わせて上記のような、基本的な特性も抑えておくと良いだろう。
コメントを残す