■前提条件
・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で進めます。
※なお、空きポートに関しては以下のコマンドで確認してください。
[bash gutter=”0″]
# cat /proc/sys/net/ipv4/ip_local_port_range
[/bash]
(2) vsftpdをインストールする
[bash gutter=”0″]
# 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!
[/bash]
(3) コンフィグファイルを編集する
[bash gutter=”0″]
# vi /etc/vsftpd/vsftpd.conf
[/bash]
以下のように変更(追加、コメント外し)します。
[bash]
・・・
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
・・・
[/bash]
chroot機能は必要に応じて有効化してください。その場合は、
[bash]
・・・
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list # デフォルト
・・・
[/bash]
この3項目の追記と /etc/vsftpd/chroot_list ファイルの生成とファイル内部へのユーザ指定(取り急ぎは空でもOK)が必要です。
(4) vsftpdを起動する
[bash gutter=”0″]
# service vsftpd start
[/bash]
(5) 自動起動設定を行う
[bash gutter=”0″]
# chkconfig vsftpd on
[/bash]
サーバ側はこれでOKです。
(6) ftpクライアントからの接続テストを行う
ターミナルからは
[bash]
$ sftp -i ********.pem ec2-user@ec2-**-**-***-***.***************.amazonaws.com
[/bash]
GUIクライアント(例としてcyberduck)からは
このような感じで接続します(鍵指定を忘れずに)。問題なく接続できればOKです。