Javaな日々

NO JAVA, NO LIFE.

さくら VPS (CentOS 6.3) に LAMP を構築する - FTP インストール

  1. FTP サーバーをインストール (vsFTPd)
    サーバーに接続.

    $ ssh admin@XXX.XXX.XXX.XXX -p xxxxx

    yum を使って FTP サーバー (vsFTPd) をインストール.

    [admin@www****** ~]$ sudo yum -y install vsftpd

  2. FTP の設定
    設定ファイルを以下のように編集.

    [admin@www****** ~]$ sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org
    [admin@www****** ~]$ sudo /etc/vsftpd/vsftpd.conf

    • anonymous によるログインを許可しない

      anonymous_enable=YES
      ↓
      anonymous_enable=NO

    • ログファイルの指定

      #xferlog_file=/var/log/vsftpd.log
      ↓
      xferlog_file=/var/log/vsftpd.log

    • ASCII モードでのダウンロードとアップロードを許可

      #ascii_upload_enable=YES
      #ascii_download_enable=YES
      ↓
      ascii_upload_enable=YES
      ascii_download_enable=YES

    • ホームディレクトリより上の階層に移動できるユーザーをリストで管理

      #chroot_local_user=YES
      #chroot_list_enable=YES
      #chroot_list_file=/etc/vsftpd/chroot_list
      ↓
      chroot_local_user=YES
      chroot_list_enable=YES
      chroot_list_file=/etc/vsftpd/chroot_list

    • ディレクトリごとの削除を許可

      #ls_recurse_enable=YES
      ↓
      ls_recurse_enable=YES

    • TCP Wrapper による通信制限の無効化

      tcp_wrappers=YES
      ↓
      tcp_wrappers=NO

    • ローカルタイムの使用 (最後に追記)

      use_localtime=YES

    • 「/etc/vsftpd.user_list」をアクセス許可リストとして機能させる (最後に追記)

      userlist_deny=NO

    • PASV モードによる接続を許可する設定を追記.

      pasv_enable=YES
      pasv_min_port=10050
      pasv_max_port=10100

    ここまで編集したらファイルを保存してエディタを終了.

    FTPへの接続を許すアカウント名を「/etc/vsftpd.user_list」に追記.

    [admin@www****** ~]$ sudo vi /etc/vsftpd/user_list
    # vsftpd userlist
    # If userlist_deny=NO, only allow users in this file
    # If userlist_deny=YES (default), never allow users in this file, and
    # do not even prompt for a password.
    # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
    # for users that are denied.
    root
    bin
    daemon
    adm
    lp
    sync
    shutdown
    halt
    mail
    news
    uucp
    operator
    games
    nobody
    
    admin

    上位ディレクトリ参照許可ユーザーアカウントを「/etc/vsftpd/chroot_list」に記入.

    [admin@www****** ~]$ sudo vi /etc/vsftpd/chroot_list
    root
    admin

    リストを root ユーザー以外編集不可にする.

    [admin@www****** ~]$ sudo chmod 600 /etc/vsftpd/chroot_list

  3. FTP 接続用のポートを開放.

    [admin@www****** ~]$ sudo vi /etc/sysconfig/iptables

    以下を追記します.

    -A FIREWALL -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
    -A FIREWALL -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
    -A FIREWALL -m state --state NEW -m tcp -p tcp --dport 10050:10100 -j ACCEPT

  4. vsFTPd を起動させ,スタートアップ起動に登録.

    [admin@www****** vsftpd]$ sudo /etc/rc.d/init.d/vsftpd start
    vsftpd 用の vsftpd を起動中:                               [  OK  ]
    [admin@www****** vsftpd]$ sudo chkconfig vsftpd on
    [admin@www****** vsftpd]$ chkconfig --list vsftpd
    vsftpd         	0:off	1:off	2:on	3:on	4:on	5:on	6:off

    ローカルから FTP にログインできることを確認.

    $ ftp admin@XXX.XXX.XXX.XXX