2011年7月26日火曜日

Amazon EC2 (Amazon Linux) での vsftpd インストールと設定

Amazon EC2に vsftpd(ver 2.2.2) をインストールして稼働させる方法です。ネットで調べると root ユーザーでFTP接続を行っていることが多かったので、FTP用にユーザーを作って接続するための方法としてまとめました。

使用したインスタンスのイメージですが、『Basic 32-bit Amazon Linux AMI 2011.02.1 Beta (AMI Id: ami-300ca731)』を使用しました。

管理者権限になる

インストールと設定は管理者権限で行いますので権限を取ります。
$sudo su -

vsftpdのインストールと設定ファイルの編集

yumを使ってvsftpdをインストールします。-yオプションを付けて確認を省略しています(全てyes)。
#yum -y install vsftpd


インストールが完了したら、次に使われていないポート番号を確認します。32768~61000までが空いていることが分かります。

#cat /proc/sys/net/ipv4/ip_local_port_range
32768   61000


設定ファイルを編集します。

#vi /etc/vsftpd/vsftpd.conf
修正
anonymous_enable=NO
匿名ユーザーのログインは許可しない
修正
dirmessage_enable=NO
ユーザが新しいディレクトリに初めて移動したとしてもメッセージは表示しない。
修正
ascii_upload_enable=YES
アスキーモードのアップロードを有効にする。
修正
ascii_download_enable=YES
アスキーモードのダウンロードを有効にする。
修正
chroot_local_user=YES
ローカルユーザーのルートを各自のホームに変更する。
修正
chroot_list_enable=YES
chroot_listを有効にする。ファイルはデフォルト(chroot_list_file=/etc/vsftpd/chroot_list)になる。
修正
tcp_wrappers=NO
ホストへのアクセスを制御しない。(EC2のSecurity Groupsで指定したほうが設定しやすい)
修正
connect_from_port_20=NO
ActiveFTPを無効にする。
修正
xferlog_std_format=NO
wu-ftpdではなく、vsftpdログ形式でログを記録する。
追加
pasv_enable=YES
PASV FTPを有効にする。
追加
pasv_addr_resolve=YES
PASVモード接続先IPアドレスをホスト名から取得する。
追加
pasv_address=固定IP
ElesticIPを設定する。(インスタンスのPublic DNSを指定するとPASVモードでの接続はできない。バージョン2.0.4以降であれば、IPが固定でなくても pasv_addressにDDNSを書くことで動的なIPに対応できるらしいが未確認。)
追加
pasv_min_port=60001
PASVモード接続時の最小ポート番号。(確認した空きポートの範囲で設定)
追加
pasv_max_port=60010
PASVモード接続時の最大ポート番号。(確認した空きポートの範囲で設定)
追加
use_localtime=YES
ローカルタイムを使用(デフォルトはGMT)
追加
force_dot_files=YES
.(ドット)で始まるファイルを隠さない。


次に chroot_list ファイルを作成して、ルートを変更しないユーザーを指定します。
ここで指定されたユーザーは、ルートディレクトリにアクセスできるようになりますので、rootなど特別なユーザーのみ指定してください。とりあえず空にしておいてもかまいません。

#vi /etc/vsftpd/chroot_list

ユーザーの作成

ローカルユーザーを作成してパスワードを設定します。FTPでサーバーに接続する際にこのユーザーとパスワードを入力することになります。
#adduser webadmin

#passwd webadmin

サービスの起動、OS起動時にvsftpdを自動実行させるための設定

serviceコマンドでサービスを起動します。自動起動の設定はchkconfigコマンドにより行います。
#service vsftpd start

#chkconfig vsftpd on

Security Groupsのポート設定

vsftpdが稼働しているインスタンスが使用しているセキュリティグループのポートを設定します。使用しているSecurity Groupを選択して、21番ポートと、PASVポートを外部からアクセスできるように設定します。
















FTPクライアントで接続

これで設定は完了です。FTPクライアントで接続確認します。FFFTPにて動作確認済みです。
Related Posts Plugin for WordPress, Blogger...