最近はWordPressなどのCMS(ブログ投稿システム)を利用してWebサイトを運用するケースが増えており、昔ほど頻繁にFTPが使われなくはなってはいますが、まだまだ重要なツールです。
FTPとはサーバーとのファイルの送受信を行う通信機能の一つですが、一体どの様な仕組みかを説明して行きます。
FTPの概要
FTP (File Transfer Protocol) は、インターネット通信上のファイル転送プロコトル※1です。
手短に説明すると、型が決まった「コマンド」と呼ばれる処理命令を使って、クライアント(パソコン)からサーバーにHTMLや画像のファイルをアップロード・ダウンロード、Webサーバーからソフトウェアを配布、サーバー上のファイルの管理権限を変更したりなどの操作が行えます。
※1:コンピューター同士のネットワーク通信に関する決まり事です。
FTPコマンドの一例
open | 指定サーバーへの接続 | user | サーバーへのユーザー名認証 |
mdk | サーバーでフォルダを作成 |
stor | ファイルをアップロード |
dele | サーバーのファイルを削除 |
FTPコマンドの実行例
FTPコマンドの実行には、Windowsの「コマンドプロンプト」や「コマンドライン」のツールを利用します(Macはターミナルで行えましたが、最新のOSは未対応となりました)。コマンドの入力は全てテキストです。
例えば、サーバーにログインするとしましょう。
ftp> open ftp 157.7.184.35
Connected to 157.7.184.35.
220 157.7.184.35 FTP server ready
Name (157.7.184.35:vagrant): example ②
331 Password required for example
Password: ********** ③
230 User admin logged in
Remote system type is UNIX.
①IPアドレスもしくは、ホスト名(FQDN)を入力してアクセスします。
②サーバーが見つかるとユーザー名を求めてきます。
③サーバー側でユーザー名が確認できると、パスワードを求めてきて…
と、対話形式で行われます。
FTPクライアントソフト
操作の度にFTPのコマンド通信を行うのは煩わしいものです。そこで登場したのが、FTPクライアントソフトです。FTPソフトはサーバーへのコマンドを視覚的に操作でき、サーバーとのデータ送受信を効率良く遂行してくれるソフトウェアです。
FTPソフトを使ったことがある方ならご存知かと思いますが、サーバーへのファイルのアップロードは、パソコン上のファイルを選択して、アップロード先の領域にドラッグ&ドロップするだけです。FTPコマンドの知識がなくても簡単に実現できます。
FFFTPの画面
上述の実行例も、ショートカットキーを登録して、ダブルクリックするだけでサーバーに接続できます。しかし、実際は裏側で記述のコマンド(命令)のやり取りが行われているのです。
代表的なFTPソフト
FFFTP | インターネット黎明期からある、最も有名なソフトです。 | Windows |
WinSCP | Windows 専用の、高セキュリティを誇るソフトです。 | Windows |
FileZilla | 多機能で安定していますが、中級者以上向けです。 | Windows / Mac |
Cyberduck | シンプルで使いやすい、初心者向けのソフトです。 | Windows / Mac |
FTPを実行するFTPサーバー
HTMLファイルをアップロードする際、いきなりWebサーバーに接続するのではなく、FTPコマンドが実行可能な「FTPサーバー」を介してデータの送信を行います。
FTPサーバーと聞くとわざわざ専用サーバーを立てるみたいに大袈裟に感じますが、サーバー内にFTPサービスを構築するソフトウェア(vsftpd や ProFTPD が有名)がインストールされている環境と考えてください。通常は1台のサーバーにFTPとWebのシステムを稼働させておき、HTMLをアップロードして、そのままWeb ページとして公開します。
ユーザーに対して特定の領域を付与すると、アクセス権限を持つユーザーはそこにデータをアップロードしたり、ファイルのパーミッション※2の設定をしたりが可能になります。ユーザーに付与されたエリアのみ覗くことが可能で、他者の領域は見ることができません。
※2:インターネット上のサーバーのファイルやディレクトリに対するアクセス権限です。
ポート番号
インターネット上を通信するデータには、「ポート番号」と呼ばれる識別番号が割り振られます。
ポート番号は、送られてきたデータをどのソフトウェアに届けるかの判断をする宛名書の様なものです。
コンピューター内ではいくつものソフトウェアが動作しているので、正しく処理する為です。
20番 | データの転送 |
21番 | データの制御(接続したり、転送形式を決める) |
21番でFTPサーバーにログインして、20番でファイルの送受信を行います。
モード
アクティブモード | サーバーからデータコネクションを開始する。 |
パッシブモード | FTPクライアントからデータコネクションを開始する。 |
外部(サーバー)からのアクセスは、ファイアウォール越しだと接続が断たれてしまいます。その場合は、パッシブモードにすると接続が確立します。
FTP通信の欠点
クライアントとサーバー間の通信が暗号化されずそのまま行われるので、FTPサーバーへ接続する際のアカウントやパスワードが第三者に傍受されてしまいます。これはWebサイトへの不正アクセスやデータ改竄に繋がります。
必ず現在のFTPソフトに備わっている、セキュリティ対策を施された通信方式を選択してください。
通信方式の違い
FTP | File Transfer Protocol | FTP通信の内容はそのままやりとりされます。 |
SFTP | SSH File Transfer Protocol | SSH※3によってFTPの通信内容の暗号化が行われています。 | FTPS | File Transfer Protocol over SSL/TLS | SSLによってFTPの通信内容の暗号化が行われています。 |
SCP | Secure Copy Protocol | SSHによる、FTP通信の高度な暗号化を行います。 |
※3:SSH (Secure Shell) は通信を暗号化して、サーバーなどをコマンドで遠隔操作するためのプロコトルです。
おすすめのレンタルサーバー
レンタルサーバーは、ドメインと一括管理が可能なバリュードメインがおすすめ
バリュードメインが提供するレンタルサーバーは、FTPS、SSHによるセキュアな接続に対応してます。高スペック・高速でありながら、低価格なレンタルサーバーを用途に合わせたプランで提供しております。
また、約500種類に及ぶドメインの登録代行も行っており、ドメインとサーバーの一括管理を行うことができ、大切なWebサイトの運用が簡単・便利になります。
そして、安心してご利用いただける様、ライブチャットやメールでのサポートにも対応しております。
Webサイトで「マニュアル」や「よくある質問」も公開しており、24時間いつでも閲覧できます。
普段何気なく使っているFTPソフトの機能について理解できたでしょうか?
ここまで述べた内容を要約すると…
- インターネット通信上では、FTPコマンドを使ってファイルの転送を行える。
- FTPソフトはコマンドを知らなくても、視覚的にファイルのアップロードや権限の設定変更が可能。
- Webサーバーにデータ転送するのではなく、FTPコマンド操作が可能な、FTPサーバーを介しています。
- FTP通信は安全性が低いので、セキュリティ対策されたSFTPやFTPS通信方式の利用を推奨。
多くのFTPソフトは操作時にサーバーとの対話が表されるので、コマンド処理の実行を観察することができます。