Open8

AWS EC2にFTP接続できる様にする 2022

ピン留めされたアイテム
dofutadofuta

まずはsshで該当のec2にログインする

ssh -i 秘密鍵のパス ec2-user@アドレス
dofutadofuta

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
dofutadofuta

vsftpの起動と、EC2を再起動した際の自動起動の有効化

sudo service vsftpd start
sudo chkconfig vsftpd on
sudo systemctl enable vsftpd
dofutadofuta

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

60001 - 60010
22

dofutadofuta

Linuxユーザーの追加(これがFTPのアカウントとなる)

sudo su
useradd 任意のユーザー名
passwd 任意のユーザー名
"パスワードを聞かれるので任意のパスワードを設定する"
dofutadofuta

ユーザーが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

大体上記になると思う。

dofutadofuta

FTP接続のログイン先のディレクトリの権限設定

大抵は、apacheを導入し、/var/www/html/ 配下を編集することになると思うので、その場合は、以下
(apacheグループに作成したユーザーを追加する)

#該当ディレクトリをapacheの権限配下にする  *これはもしまだやってなかったら
chown -R apache:apache /var/www/html/

#該当ディレクトリの権限設定 *これはもしまだやってなかったら
chmod 775 /var/www/html/

#apacheグループに作成したユーザーを追加する *これで書き込みできる様になる
usermod -aG apache ユーザー名