Top > vsftp

vsftp

Last-modified: 2014-02-18 (火) 22:31:13
最終更新:2014-02-18 (火) 22:31:13
アクセス数(合計):16924
利用者; 1 アクセス数(本日):1 アクセス数(昨日):1

FTPサーバ構築 vsftp

FTPにてファイルのupload/downloadを可能とする。


目的

ftpとは「File Transfer Protocol」の略。ネットワークでファイルの転送を行うための通信プロトコルである。

今回、vsftpを導入することにより、ftpによるファイルのアップロード/ダウンロードを可能とする。

また、ユーザからのFTPアクセス時以下のとおりとなるよう設定を行う。

  • anonymousユーザ(匿名ユーザ)のログイン禁止
  • アスキーモードでのupload/downloadを許可
  • デフォルトでホームディレクトリより上層へのアクセスを禁止する

構築条件

構築機器

作成環境

OS    CentOS 6.5 64bit版

サーバ作成条件

サーバIP192.168.0.10/24
ホスト名hogehogeServer
user   hogehoge
userpasswdhogehogepass

手順記入ルール

  • コマンド行頭記号で 「$」はユーザ権限 「#」はスーパーユーザー権限 を表示
  • コマンドが長くなる場合は、行末に「\」を記述し複数行に記述。

前準備

  1. CentOSインストール 実施
  2. yumリポジトリ設定 実施

インストール

(1)インストール

【Telnet】

  • rootでログイン
$ su
パスワード:
  • 確認
# yum list install vsftpd
vsftpd.x86_64                     2.2.2-11.el6_4.1                      c6-media
  • インストール
# yum install vsftpd
================================================================================
 Package        Arch           Version                   Repository        Size
================================================================================
Installing:
 vsftpd         x86_64         2.2.2-11.el6_4.1          c6-media         151 k

設定

(1)ftp configファイル設定

  • vsftpd.conf ファイル編集
# vi /etc/vsftpd/vsftpd.conf
  • anonymousでのログイン禁止設定
    anonymous_enable=YES
       ↓
    anonymous_enable=NO
  • アスキーモードでのアップロード/ダウンロード許可設定
    #ascii_upload_enable=YES
    #ascii_download_enable=YES
       ↓
    ascii_upload_enable=YES
    ascii_download_enable=YES
  • 上位ディレクトリ移動禁止設定
    #chroot_local_user=YES
    #chroot_list_enable=YES
    # (default follows)
    #chroot_list_file=/etc/vsftpd/chroot_list
       ↓
    chroot_local_user=YES  ←上位ディレクトリ移動禁止設定
    chroot_list_enable=YES  ←上位ディレクトリ許可リスト有り設定
    # (default follows)
    chroot_list_file=/etc/vsftpd/chroot_list ←上位ディレクトリ許可リスト有り場所設定
  • タイムスタンプ日本語設定 ★最終行に追加
    use_localtime=YES
  • rootユーザを上位ディレクトリ許可リストに登録
# echo root >> /etc/vsftpd/chroot_list
  • 上位ディレクトリ許可リスト登録が出来たか確認
# cat /etc/vsftpd/chroot_list
root

起動

(1)vsftp起動

  • vsftpd起動
# /etc/rc.d/init.d/vsftpd start
vsftpd 用の vsftpd を起動中:                               [  OK  ]
  • vsftpd自動起動設定
# chkconfig vsftpd on
  • 確認
# chkconfig --list vsftpd
vsftpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
  • 終了
# exit
 exit
$

(2)動作確認

【FTP】

  • ユーザ名(hogehoge)でアクセス
    →上位ディレクトリにいけない事を確認

その他設定

上位ディレクトリアクセス許可ユーザ作成

【telnet】

  • hogehogeユーザを上位ディレクトリ許可リストに登録
# echo hogehoge >> /etc/vsftpd/chroot_list
  • 上位ディレクトリ許可リストに登録があるか確認
# cat /etc/vsftpd/chroot_list
root
hogehoge
  • vsftpd再起動
# /etc/rc.d/init.d/vsftpd restart
vsftpd を停止中: [  OK  ]
vsftpd 用の vsftpd を起動中: [  OK  ]

確認

【FTP】

  • ユーザ名(hogehoge)でアクセス
    ・上位ディレクトリにいける事を確認

遭遇したトラブル

ftpが「500 OOPS: cannot change directory:/home/hogehoge」エラーとなる

問題:
ftpが「500 OOPS: cannot change directory:/home/hogehoge」でアクセスできない

原因:
SELinux設定解除もれ
SELinux設定解除手順」にてファイアウォール設定を解除する

ftpがタイムアウトでアクセスできない

問題:
ftpがタイムアウトでアクセスできない

原因:
ファイアウォール設定解除もれ
ファイアウォール設定解除手順」にてファイアウォール設定を解除する

ftpでログインできない

問題:
ftpでログインできない

原因:
echo root >> /etc/vsftpd/chroot_list 設定忘れ
chroot_list ファイルが全然無い状態だと全ユーザのログインが拒否される

謝辞

テキスト作成に当たり、以下サイトを参考にさせて頂きました。ありがとうございます。

http://centossrv.com/vsftpd.shtml