vsftpd は Linux 用の軽量で使いやすい FTP サーバーです。 Linux のあらゆるバージョンを通じて、最も人気のある FTP サーバーです。 ここでは、CentOS 7.2 x64 を稼働中の Linux ECS インスタンス上に vsftpd をインストールする方法を説明します。 ここでは、CentOS 7.2 x64 を稼働中の Linux ECS インスタンス上に vsftpd をインストールする方法を説明します。

Liunx ECS インスタンス上に FTP サイトを構築するには、以下のステップを実行します。

  • ステップ 1. vsftpd のインストール
  • ステップ 2. vsftpd の設定
  • ステップ 3. セキュリティグループの設定
  • ステップ 4. テスト

ステップ 1. vsftpd のインストール

  1. パスワードを使用した Linux インスタンスへの接続.
  2. 次のコマンドを実行して vsftpd をインストールします。
    yum install -y vsftpd

    次のコマンドを実行して

  3. etc/vsftpd を開き、閲覧します。
    cd /etc/vsftpd
    ls
    • /etc/vsftpd/vsftpd.conf がコアの設定ファイルです
    • /etc/vsftpd/ftpusers はブラックリストです。 このブラックリストのユーザーは FTP サーバーにアクセスできなくなります
    • /etc/vsftpd/user_list はホワイトリストです。 このホワイトリストのユーザーだけが FTP サーバーへのアクセスを許可されます。
  4. 次のコマンドを実行して、vsftpd が起動時に自動的に開始するようにします。
    systemctl enable vsftpd.service
  5. 次のコマンドを実行して FTP サービスを起動します。
    systemctl start vsftpd.service
  6. 次のコマンドを実行して FTP サービスのポートを閲覧します。
    netstat -antup | grep ftp

ステップ 2. vsftpd の設定

vsftpd をインストールすると、匿名 FTP がデフォルトで有効になります。 匿名 FTP 機能を使う と、ユーザーはユーザー名とパスワードなしで FTP サーバーにログインできますが、ファイルの修正 やアップロードはできません。

このセクションでは、vsftpd の設定方法と、それに対応したパラメーター記述を説明します。

  • 匿名ユーザーへのファイルアップロードアクセス許可の付与
  • ローカルユーザーのログイン設定
  • vsftpd.conf のパラメーターの紹介
匿名ユーザーへのファイルアップロードアクセス許可の付与

vsftpd.conf 設定ファイルのオプションを修正すれば、匿名ユーザーに付与するアクセス許可を増やせます。

  1. /etc/vsftpd/vsftpd.conf を次の手順で修正します。
    1. vim /etc/vsftpd/vsftpd.conf を実行します。
    2. i キーを押して編集モードに入ります。
    3. write_enable=YES と設定します。
    4. anon_upload_enable=YES と設定します。
    5. Esc キーを押し、「:wq」と入力して、ファイルを保存して閉じます。
  2. 次のコマンドを実行して /var/ftp/pub ディレクトリのパーミッションを変更し、FTP ユーザーに書き込み許可を与え、設定ファイルを再読み込みします。
    chmod o+w /var/ftp/pub/systemctl restart vsftpd.service
ローカルユーザーのログイン設定

ローカルユーザーのログインとは、ユーザーが Linux オペレーティングシステムのユーザー名とパスワードを使って、FTP サーバーにログインすることです。

vsftpd をインストールした段階では、匿名 FTP ログインだけがサポートされています。 もし Linux の ユーザー名でログインしようとすると、vsftpd へのアクセスは拒否されます。 ただし vsftpd 設定ファイルを修正して、ユーザー名とパスワードによるログインを可能にできます。 次の手順を実行します。

  1. 次のコマンドを実行して、ftptest ユーザーを作成します。
    useradd ftptest
  2. 次のコマンドを実行して、ftptest ユーザーのパスワードを変更します。
    passwd ftptest
  3. 次の手順で /etc/vsftpd/vsftpd.conf を修正します。
    1. vim/etc/vsftpd/vsftpd.conf を実行します。
    2. i キーを押して編集モードに入ります。
    3. anonymousenable=NO と設定します。
    4. local_enable=YES と設定します。
    5. Esc キーを押し、「:wq」と入力して、ファイルを保存して閉じます。
  4. 次のコマンドを実行して、設定ファイルを再読み込みします。
    systemctl restart vsftpd.service
vsftpd.conf のパラメーターの概要

cat /etc/vsftpd/vsftpd.conf を実行して、設定ファイルの中身を見ます。

次の表は、ユーザーログイン制御に関連するすべてのパラメーターをまとめたものです。

パラメーター 説明
anonymous_enable=YES 匿名ログインを許可します。
no_anon_password=YES ログイン時、匿名ユーザーはパスワードの入力を求められません。
anon_root=(none) 匿名ユーザーのルートディレクトリ。
local_enable=YES ローカルユーザーのログインを許可します。
local_root=(none) ローカルユーザーのルートディレクトリ。

次の表は、ユーザーアクセス許可制御に関連するすべてのパラメーターをまとめたものです。

パラメーター 説明
write_enable=YES ファイルアップロードを許可します (グローバル制御l)。
local_umask=022 ローカルユーザーのファイルアップロードに対して umask を行います。
file_open_mode=0666 ファイルアップロード権限に対して umask を使います。
anon_upload_enable=NO 匿名ユーザーに対してファイルアップロードを許可します。
anon_mkdir_write_enable=NO 匿名ユーザーにディレクトリの作成を許可します。
anon_other_write_enable=NO 匿名ユーザーにファイルやディレクトリの変更や削除を許 可します。
chown_username=lightwiter 匿名ユーザーにユーザー名を付与します。

匿名でアップロードされたファイルのユーザー名

FTP サイトを構築したら、FTP ポートを開くためのルールを追加する必要があります。 詳細は、「セキュリティグループルールの追加」をご参照ください。

ステップ 4 . テスト

[ローカルコンピューター] 上で、ftp://public IP address:FTP port (ポート番号を入力しなければ、デフォルトのポート番号 21 が使われます) を使って FTP サイトにアクセスします。 たとえば、「ftp://0.0.0.0:20」と入力します。 設定がうまくいっていれば、ユーザー名とパスワードを入力するように求められます。 ユーザー名とパスワードを正しく入力すると、権限に従って、関連する FTP ファイル操作を行うことができます。

この方法でクライアントから FTP サイトにアクセスする場合、FTP フォルダーを開くように Internet Explorer の設定を変更する必要があります。 Internet Explorer を開き、[ツール] > [インターネット オプション] > [詳細設定] をクリックします。 [FTP サイト用のフォルダー ビューを使用する]を選択し、[パッシブ FTP を使用する] をクリアします。

次にすること

FTP サービスのセキュリティ向上の対策を実行します。 詳細は、「FTP 匿名ログインと弱いパスワードの脆弱性」をご参照ください。