• No : 12202
  • 公開日時 : 2016/12/10 16:08
  • 印刷

CentOS6でのvsftpdの設定(VPSクラウド)

回答

設定する内容

VPSクラウドのCentOS6には初期状態で「vsftpd」というFTPサーバープログラムがインストールされています。
お客さまのコンピュータで作成したWebコンテンツをインスタンスにアップロードしたい場合はFTPサーバーを構築して下さい。

このマニュアルでは、例として以下のようなご利用形態を前提として記述しております。
FTPサーバーに設定する内容はお客さまのご利用形態によって変わりますが、 オンラインマニュアルに記載されていない設定については弊社のサポート対象外となりますので、 vsftpdの設定方法について解説されている書籍・Webサイトなどをご参考にお客さまにて設定ファイルの内容を書き換えてご利用下さい。

  • 構築したWebサーバーのドキュメントルート(/var/www/html ディレクトリ)にWebコンテンツをアップロードするための設定を行う。
  • コンテンツのアップロードはユーザーアカウントを使用して行う。

vsftpdの設定手順

FTPサーバーを構築する場合は下記の手順でvsftpdの設定を行って下さい。

  1. サーバーにSSHで接続し、rootアカウントを使用してログインします。
  2. viなどのテキストエディタで /etc/vsftpd/vsftpd.conf ファイルを開いて下さい。
    viで /etc/vsftpd/vsftpd.conf ファイルを開くコマンドは以下の通りです。
    [root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
    

    vsftpd.confファイルには多くの設定項目が書かれていますが、 ここでは最低限設定しておいた方がよいと思われる項目をご案内致します。

    「anonymous_enable=YES」と書いてある行がありますが、 この設定の場合匿名FTPサーバー(アカウントを持っていない第三者がログインできるFTPサーバー)として動作します。
    特に必要がない場合は、以下のように書き換えて匿名FTPサーバーを使わない設定にしておくことをお勧め致します。
    anonymous_enable=NO
    

    「ascii_upload_enable=YES」と「ascii_download_enable=YES」と書いてある行がありますが、
    デフォルト状態ではこの行がコメントアウトされているため、 アスキーモードでのアップロード・ダウンロードが出来ないようになっています。

    Perlなどの言語で記述されたテキストファイル形式のCGIは アスキーモードで転送しなければCGIが正常に動作しない場合がありますので、
    CGIファイルを転送するお客さまは行頭の「#」を削除してアスキーモードの転送を有効にして下さい。

    # By default the server will pretend to allow ASCII mode ...
    # the request. Turn on the below options to have the server ...
    # mangling on files when in ASCII mode.
    # Beware that on some FTP servers, ASCII support allows ...
    # attack (DoS) via the command "SIZE /big/file" in ASCII ...
    # predicted this attack and has always been safe, reporting ...
    # raw file.
    # ASCII mangling is a horrible feature of the protocol.
    ascii_upload_enable=YES  (←行頭にある # を削除)
    ascii_download_enable=YES  (←行頭にある # を削除)
    
    表示の都合上ここでは長いコメントが書かれている行を一部省略して記載しています。

    初期状態ではファイルのタイムスタンプがGMT(世界標準時刻)のタイムゾーンに合わせて表示されます。
    JST(日本の標準時刻)のタイムゾーンに合わせて表示されるようにするため、ファイルの末尾に以下の1行を書き足して下さい。

    use_localtime=YES
    
    書き換えが終了したらファイルを保存してテキストエディタを終了して下さい。
  3. 以下のコマンドを実行し、vsftpdを起動して下さい。
    [root@localhost ~]# service vsftpd start
    
  4. vsftpdのデフォルトの設定では管理者アカウント(root)でFTP接続することは出来ませんが、
    ドキュメントルートに設定されている /var/www/html ディレクトリは rootしか書き込めないためこのままではWebコンテンツをアップロードする時に若干不便です。

    ここではFTPで直接 /var/www/html ディレクトリ にコンテンツのファイルをアップロードできるようにするため、
    ディレクトリのオーナーをFTP接続に使用するユーザーアカウントに変更することにします。
    オーナーを変更するには以下のコマンドを実行して下さい。
    [root@localhost ~]# chown (ユーザーアカウント名) /var/www/html
    
    (ユーザーアカウント名)の部分にはコンテンツのアップロードに使用するユーザーアカウントの名前を入力して下さい。
  5.  

自動起動の設定

vsftpd を起動するとFTPサーバーとして動作するようになりますが、
そのままの状態ではOSを再起動するたびに手動でvsftpd を起動しなければなりません。

OSの再起動と同時に vsftpd を自動起動したい場合は、chkconfig でvsftpd をon に設定して下さい。