概要
AWS EC2 Amazon Linux 2 で FTP サーバを構築。SFTP、FTP を使用できるようにする。
環境
Amazon WEB Service – EC2
■アプリケーションおよび OS イメージ(Amazon マシンイメージ)
Amazon Linux 2 Kernel 5.10 AMI 2.0.20230119.1 x86_64 HVM gp2
■ElasticIP
12.34.56.78
■セキュリティグループ設定
プロトコル | ポート | ソース |
---|---|---|
TCP | 22 | 0.0.0.0/0 |
TCP | 60001-60010 | 0.0.0.0/0 |
■ユーザー名
hoge
■ユーザーのルートディレクトリ
/var/www/html
■chroot 無効のユーザー
hoge
手順
root 権限になります。
$ sudo su
パッケージのアップデートをします。
$ yum update -y
vsftpd をインストールします。
$ yum install vsftpd -y
デフォルトの状態の設定ファイル(vsftpd.conf)をバックアップします。インストールした日がわかると良いので名前に日付を追加しましょう。
$ cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.YYYYMMDD
vsftpd.conf を編集します。
$ vi /etc/vsftpd/vsftpd.conf
以下、vsftpd.conf の編集内容。ElasticIP とセキュリティグループの設定を反映しています。
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=NO
chroot_local_user=no
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_address=12.34.56.78
pasv_min_port=60001
pasv_max_port=60010
force_dot_files=YES
use_localtime=YES
user_config_dir=/etc/vsftpd/user_conf
allow_writeable_chroot=YES
log_ftp_protocol=YES
dual_log_enable=YES
xferlog_file=/var/log/xferlog
vsftpd_log_file=/var/log/vsftpd.log
設定ファイルの権限を変更。
$ chmod 600 /etc/vsftpd/vsftpd.conf
ユーザの設定ファイルを作成します。
$ mkdir /etc/vsftpd/user_conf
$ vi /etc/vsftpd/user_conf/hoge
以下、ユーザの設定ファイル(hoge)の編集内容。
local_root=/var/www/html
ホームディレクトリより上層ディレクトリへアクセスできるようにする。
$ vi /etc/vsftpd/chroot_list
以下、chroot 無効のユーザーリスト(chroot_list)の編集内容。
hoge
vsftpd サービスを起動。
$ systemctl start vsftpd
vsftpd サービスを自動起動有効。
$ systemctl enable vsftpd
以上。