Git以外の方法でもさくらVPSにファイルを上げる為に、FTPを使うことになり、その方法をメモります。
vsftpdを使います。
vsftpdを入れます。
$ yum install vsftpd
//vsftpdを 起動
$ sudo /etc/rc.d/init.d/vsftpd start
//自動起動を有効化
$ sudo chkconfig vsftpd on
vsftpdの設定をします。
// 設定ファイルのバックアップを取ります。
$ cd
$ mkdir origin
$ sudo cp /etc/vsftpd/vsftpd.conf origin
// 設定ファイルの編集。
$ sudo vim /etc/vsftpd/vsftpd.conf
----
#アスキーモードを有効にする
ascii_upload_enable=YES
ascii_download_enable=YES
# TCP/IP でのフィルタリングを無効にする (iptables で一応OK)
tcp_wrappers=NO
# 日本時間を使用
use_localtime=YES
# anonymous を無効にする
anonymous_enable=NO
# /var/log/vsftpd.log にログを記入
xferlog_std_format=NO
# ログを有効にする
dual_log_enable=YES
---
chroot と FTP利用ユーザー制限
ユーザー作成
# useradd hoge
# passwd hoge
vsftpd.confの設定
$ sudo vim /etc/vsftpd/vsftpd.conf
---
# /etc/vsftpd/user_list に記述されたユーザーを拒否する
userlist_deny=NO
# 全てのローカルユーザーにchrootを有効にする。
chroot_local_user=YES
chroot_list_enable=NO
# vsftpdのルートディレクトリを /home/hoge/public_html に設定
local_root=/home/hoge/public_html
---
↑で指定したルートディレクトリが存在しない場合は作成しておく。
※chrootについてはコチラ
アクセス許可ユーザー指定
$ sudo vim /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.
hoge
---
iptables 設定
$ sudo vim /etc/sysconfig/iptables
---
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT (追記)
---
$ sudo /etc/rc.d/init.d/iptables restart
もしくは以下。
$ sudo iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
$ sudo /etc/rc.d/init.d/iptables save
vsftpdの反映
// vsftpd の設定を反映
$ sudo /etc/rc.d/init.d/vsftpd restart
IPTABLES_MODULESのロード
iptables-configを編集します。
$ sudo vim /etc/sysconfig/iptables-config
---
# 以下を追記
IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp"
---
iptables-configをrestartします。
$ sudo /etc/rc.d/init.d/iptables restart
ロード確認
$ lsmod
---
// ここにモジュールがあればOK
---
ftp出来るか確認
ftpアプリを使って確認してみる。
参考
・WEB開発記 | さくらのVPSでサーバー入門8 vsftpの導入
・pistolfly | iptablesでftpを通す