使用したインスタンスのイメージですが、『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など特別なユーザーのみ指定してください。とりあえず空にしておいてもかまいません。
ここで指定されたユーザーは、ルートディレクトリにアクセスできるようになりますので、rootなど特別なユーザーのみ指定してください。とりあえず空にしておいてもかまいません。
#vi /etc/vsftpd/chroot_list
ユーザーの作成
ローカルユーザーを作成してパスワードを設定します。FTPでサーバーに接続する際にこのユーザーとパスワードを入力することになります。
#adduser webadmin #passwd webadmin
サービスの起動、OS起動時にvsftpdを自動実行させるための設定
serviceコマンドでサービスを起動します。自動起動の設定はchkconfigコマンドにより行います。
#service vsftpd start #chkconfig vsftpd on