FTPとは?FTPの仕組みとFTPが抱える問題点・安全なFTPサーバーvsftpd

FTPとは?FTPの仕組みとFTPが抱える問題点・安全なFTPサーバーvsftpdのアイキャッチイメージ

FTPとは?


FTPとは、File Transfer Protocolの略で、インターネットに接続したしたコンピュータ間でファイルを転送するための通信規格、またはその規格を使った通信方法です。

インターネットの黎明期から使われている古い仕組みですが、シンプルな仕様のため今でもWebサーバーの更新などで使われています。次から、このFTPの概要について紹介します。

FTPの仕組み

FTPは、ファイル転送サービスを提供するサーバーで受け付けするプログラムを実行しておき、そのサーバーに接続するFTPクラウアントを利用してファイルを取得したり、送信などが行える仕組みです。

具体的には、WebサーバーでFTPのサービスを提供するデーモンを起動しておけば、インターネットに繋がったパソコンでFTPクライアントのアプリケーションを使うことで、パソコンで作成したHTMLファイルや画像ファイルを送信できます。

FTPを利用するには

FTPサーバーに接続するには、通常20番ポートと21番ポートを利用し、登録済のアカウントとパスワードで認証します。

なお、ポート番号とはTCP/IPのプロトコル毎に決められた数字で、サーバーが通信データを受け取ったら、このポート番号を利用して目的のサービスに通信データを振り分けます。

ほとんどの仕組みはポート番号を1つしか使いませんが、FTPでは20番ポートと21番ポートの2つを使います。もし、ポート番号でインターネットへの接続を制限している場合は、この2つを許可しないと接続できないので注意してください。

FTPが抱える問題点

インターネット上のファイル転送に使えるFTPですが、仕様が古いせいでセキュリティに関する多くの問題点を抱えています。

例えば標準のFTPで使用する認証や通信データは、暗号化されずにインターネット上を流れます。そのため、悪意のある人が通信データを覗けば、簡単にパスワードやデータそのものを盗むことが可能でした。

さらにFTPが利用しているポート番号はインターネット上で攻撃されることが多く、破られるとWebサイトにコンピュータウィルスを仕掛けられたりします。そのため、最近は標準のFTPではなく、暗号化してファイルを転送できる仕組みが利用されるケースが増えています。

安全なFTPサーバーvsftpd


今、FTPサーバーを設置するなら、セキュリティに対する配慮が欠かせません。そのため、安全に接続できるFTPサーバーを作る場合、暗号化などのセキュリティ対策が可能なvsftpdが利用されます。

次からvsftpdの概要と設定方法について紹介します。

vsftpdとは

今回紹介するvsftpdとは、今のインターネットでFTPサーバーを運営できるだけのセキュリティ対策が可能なFTPデーモンです。

主にクラウドのLinuxによるWebサーバーでWebページを更新する仕組みで使われています。なお、vsftpdの「vs」は「very secure」の略で、日本語では「非常に安全な」という意味です。

このvsftpdは、昔使われていたftpdを改良したオープンソースのソフトウェアで、クラウドで利用されることの多いUbuntuやCentOSなどのLinuxではデフォルトで利用できます。また、vsftpdを使うことで、SSLを利用した暗号化に対応可能です。

vsftpdをインストールする方法

先ほど紹介したようにクラウドで利用されることの多いLinuxのCentOSでは、vsftpdをデフォルトで利用できます。利用する場合、まずyumコマンドでvsftpdパッケージをインストールします。

CentOSにvsftpdをインストールするコマンドは、yum -y install vsftpdです。

ただし、このままでは安全ではありません。FTPで安全に接続してもらうための設定が必要です。vsftpdをインストールすると、/etc/vsftpd/vsftpd.confが作られるので、このファイルで設定してください。

設定したら、OS起動時にvsftpdのデーモンが起動するように設定し、デーモンを起動します。起動設定のコマンドは、systemctl enable vsftpdで、デーモン起動コマンドはsystemctl start vsftpdです。

vsftpdの設定

FTPで安全に接続するためにvsftpdの設定ファイルに次の箇所を修正してください。

(1) anonymousログインを無効にする。
(2) SSLを有効にし、暗号化に必要なサーバー証明書と秘密鍵のファイルを登録する
(3) バーチャルユーザーを有効にしてFTPアクセス専用のアカウントを設定する

これらの設定は先ほど紹介した/etc/vsftpd/vsftpd.confに記述します。なお、具体的な書き方はvsftpdの設定例をインターネットで検索すると幾つもヒットするので、それらを参考にしてください。

また、既にvsftpdのデーモンを起動した後に設定を変更した場合は、デーモンを再起動するコマンド、systemctl restart vsftpdを実行してください。

FTP接続の方法~FFFTP編~


FTPを利用してファイルを転送するには、クライアントアプリケーションも必要です。そして、パソコン用のFTPのアプリケーションとして、以前からよく使われているのがFFFTPです。

FFFTPは1997年に公開されたフリーソフトです。今でもオープンソースとして開発が続けられており、Windows10にも対応しています。

FFFTPでFTPに接続するには、ホスト名、ユーザー名、パスワードを指定します。ホスト名の設定名でその設定が保存されるので、次回は設定名をクリックするだけで接続可能です。

なおFFFTPは、FTPの通信データを暗号化する仕組みのFTPSに対応しています。FTPサーバーがFTPSをサポートしている場合、自動的にFTPSが使われるので、利用者は特に意識する必要はありません。

FFFTPは、「窓の杜」などからインストーラをダウンロードできるので、FTPを利用したい方はぜひ利用してください。

FTP接続の方法~WinSCP編~


WinSCPは、SSLを利用したファイル転送の仕組みのSCPを利用するフリーのアプリケーションですが、FTPプロトコルにも対応しています。

SSLのみ対応しているWebサーバーとFTPに対応したWebサーバーの両方に使えるので、先ほど紹介したFFFTPからWinSCPに乗り換えた方が多くいます。

また、FTPの通信データを暗号化する方法として、SSLを利用したSFTPも使われています。WinSCPはSFTPにも対応しているので利用してください。

WinSCPでFTPサーバーに接続するには、メニューから「新しいセッション」をクリックし、「新しいサイト」を選択して、転送プロトロル、ホスト名、ユーザー名、パスワードを指定してログインします。

転送プロトコルとしてFTP、SFTPが選択できます。なお、セッションに登録した内容は「保存」ボタンで保存しておけば、クリックだけでFTPサーバーに接続できます。また、WinSCPも「窓の杜」などからインストーラをダウンロードできます。

FTPは今でも使えるファイル転送の仕組み


これまで紹介したようにFTPはインターネットの黎明期から使われている古い規格ですが、セキュリティ対策さえ実施していれば今でも十分使えるファイル転送の仕組みです。

なおファイルを転送する仕組みはSCPやHTMLなどでも作ることが可能です。それでもFTPサーバーが必要なら、今回紹介したvsftpdを利用して安全に接続できるFTPサーバーを構築してください。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。