ftpユーザを作成しよう

vsftpdでEC2(centos7)にFTP接続する手順を記載します。

作業手順

1.vsftpdインストール

$ sudo yum install -y vsftpd
$ sudo systemctl enable vsftpd
$ sudo systemctl start vsftpd
$ sudo systemctl status vsftpd

2.vsftpdの設定

以下の通り設定する

$ sudo cp -p /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org
$ sudo chmod 664 /etc/vsftpd/vsftpd.conf
$ sudo vim /etc/vsftpd/vsftpd.conf

▼ 変更内容

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=NO
xferlog_std_format=NO
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
user_config_dir=/etc/vsftpd/vsftpd_user_conf
ls_recurse_enable=YES
listen=YES
userlist_enable=YES
tcp_wrappers=NO
use_localtime=YES
allow_writeable_chroot=YES

3.FTPユーザ作成(指定されたパスワードを設定)

# useradd ftp_user
# passwd ftp_user
# usermod -g developer ftp_user
# usermod -aG ftp_user ftp_user
# id ftp_user

→プライマリグループがdeveloper、サブグループがftp_userとなることを確認する

# vim /etc/vsftpd/chroot_list
# cat /etc/vsftpd/chroot_list

→「ftp_user」と表示されることを確認

4.symboliclink作成および権限設定

# touch /etc/vsftpd/chroot_list
# chown ftp_user:ftp_user /home/ftp_user
# cd /home/ftp_user
# ln -s /var/www/html/stg.sample.jp/ stg.sample.jp
# ln -s /var/www/html/www.sample.jp/ www.sample.jp
# chown ftp_user:ftp_user /home/ftp_user/stg.sample.jp
# chown ftp_user:ftp_user /home/ftp_user/www.sample.jp
# mkdir /etc/vsftpd/vsftpd_user_conf
# vim /etc/vsftpd/vsftpd_user_conf/ftp_user
# cat /etc/vsftpd/vsftpd_user_conf/ftp_user

→「local_root=/var/www/html/www.sample.jp」と表示されることを確認

5.vsftpdの設定変更を適用

# systemctl restart vsftpd
# systemctl status vsftpd

6.FTP用セキュリティグループにて指定IP接続許可

21番ポートの接続許可

7.確認作業

Filezillaにて、ファイルアップロード確認をする