Open8
AWS EC2にFTP接続できる様にする 2022
ピン留めされたアイテム

まずはsshで該当のec2にログインする
ssh -i 秘密鍵のパス ec2-user@アドレス

vsftpのインストールと初期設定
このまま何も編集せずにコピペでいける
#!/bin/bash
sudo yum install vsftpd -y
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org
Elastic_IP=`curl http://169.254.169.254/latest/meta-data/public-ipv4`
sudo sh -c "cat << EOF >> /etc/vsftpd/vsftpd.conf
pasv_enable=YES
pasv_addr_resolve=YES
pasv_address=${Elastic_IP}
pasv_min_port=60001
pasv_max_port=60010
use_localtime=YES
force_dot_files=YES
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd/user_config_dir
EOF"
sudo sed -i -e "/^anonymous_enable/s/YES/NO/g" /etc/vsftpd/vsftpd.conf
sudo sed -i -e "/^dirmessage_enable/s/YES/NO/g" /etc/vsftpd/vsftpd.conf
sudo sed -i -e "/^#ascii_upload_enable/s/#//g" /etc/vsftpd/vsftpd.conf
sudo sed -i -e "/^#ascii_download_enable/s/#//g" /etc/vsftpd/vsftpd.conf
sudo sed -i -e "/^#chroot_local_user/s/#//g" /etc/vsftpd/vsftpd.conf
sudo sed -i -e "/^#chroot_list_enable/s/#//g" /etc/vsftpd/vsftpd.conf
sudo sed -i -e "/^tcp_wrappers/s/YES/NO/g" /etc/vsftpd/vsftpd.conf
sudo sed -i -e "/^connect_from_port_20/s/YES/NO/g" /etc/vsftpd/vsftpd.conf
sudo sed -i -e "/^xferlog_std_format/s/YES/NO/g" /etc/vsftpd/vsftpd.conf
sudo touch /etc/vsftpd/chroot_list

vsftpの起動と、EC2を再起動した際の自動起動の有効化
sudo service vsftpd start
sudo chkconfig vsftpd on
sudo systemctl enable vsftpd

AWSコンソールより、該当EC2のセキュリティグループのインバウンドルールの以下のポートをそれぞれ解放する
60001 - 60010
22

Linuxユーザーの追加(これがFTPのアカウントとなる)
sudo su
useradd 任意のユーザー名
passwd 任意のユーザー名
"パスワードを聞かれるので任意のパスワードを設定する"

ユーザーがFTP接続した際のログインディレクトリ設定
sudo mkdir /etc/vsftpd/user_config_dir
sudo vim /etc/vsftpd/user_config_dir/ユーザー名
sudo echo "local_root=ログインディレクトリパス" >> /etc/vsftpd/user_config_dir/ユーザー名
ログインディレクトリパスは、apache使うなら
/var/www/html
大体上記になると思う。

FTP接続のログイン先のディレクトリの権限設定
大抵は、apacheを導入し、/var/www/html/ 配下を編集することになると思うので、その場合は、以下
(apacheグループに作成したユーザーを追加する)
#該当ディレクトリをapacheの権限配下にする *これはもしまだやってなかったら
chown -R apache:apache /var/www/html/
#該当ディレクトリの権限設定 *これはもしまだやってなかったら
chmod 775 /var/www/html/
#apacheグループに作成したユーザーを追加する *これで書き込みできる様になる
usermod -aG apache ユーザー名

参考: