■前提条件
・OS(AMI):Amazon Linux
・ftpサーバ:vsftpd
・デフォルトユーザ(ec2-user)でログイン
・Elastic IPはアサイン済み
※インストール手順は用途、環境に合わせて読み替え、もしくは、変更してください。
■手順
(1) セキュリティグループにてポートを設定を行う
AWSのコンソールからEC2 Dashboardに遷移し、NETWORK & SECURITYカテゴリのSecurityGroupSを選択します。次に当該インスタンスに紐付けているセキュリティグループ選択して詳細画面を開いたら、Inboundタブを選択してEditボタンを押下します。
以下のルールを追加します。
Custom TCP Rule | TCP | 21 | Anywhere 0.0.0.0/0
Custom TCP Rule | TCP | 60000 – 60010 | Anywhere 0.0.0.0/0
追加したらSaveボタンを押下します。
※Source項目は任意で選択および入力してください。この例ではAnywhereで進めます。
※なお、空きポートに関しては以下のコマンドで確認してください。
# cat /proc/sys/net/ipv4/ip_local_port_range
(2) vsftpdをインストールする
# yum -y install vsftpd Loaded plugins: fastestmirror, priorities, security, update-motd Loading mirror speeds from cached hostfile * amzn-main: packages.*****.amazonaws.com * amzn-updates: packages.*****.amazonaws.com amzn-main | 2.1 kB 00:00 amzn-updates | 2.3 kB 00:00 Setting up Install Process Resolving Dependencies ・・・ Complete!
(3) コンフィグファイルを編集する
# vi /etc/vsftpd/vsftpd.conf
以下のように変更(追加、コメント外し)します。
・・・ anonymous_enable=NO ascii_upload_enable=YES ascii_download_enable=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=NO use_localtime=YES force_dot_files=YES pasv_address=***.***.***.*** # Elastic IP pasv_enable=YES pasv_addr_resolve=YES pasv_min_port=60000 pasv_max_port=60010 ・・・
chroot機能は必要に応じて有効化してください。その場合は、
・・・ chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list # デフォルト ・・・
この3項目の追記と /etc/vsftpd/chroot_list ファイルの生成とファイル内部へのユーザ指定(取り急ぎは空でもOK)が必要です。
(4) vsftpdを起動する
# service vsftpd start
(5) 自動起動設定を行う
# chkconfig vsftpd on
サーバ側はこれでOKです。
(6) ftpクライアントからの接続テストを行う
ターミナルからは
$ sftp -i ********.pem ec2-user@ec2-**-**-***-***.***************.amazonaws.com
GUIクライアント(例としてcyberduck)からは
このような感じで接続します(鍵指定を忘れずに)。問題なく接続できればOKです。