AWSにvsftpd導入(2)設定編
今回は実際に設定を行う。
【今回の記事のゴール】
「AWSのEC2インスタンス(Amazon Linux)にvsftpdをインストール・導入を行いFFFTPから接続可能とする」
【すること一覧】
0.rootユーザでログイン、「yum update」を行う。
1.vsftpdインストール ※yumコマンドでインストールする
(1)yum search vsftpd
(2)yum -y install vsftpd.x86_64
2.ftp用のユーザを作る
(1)adduser ftpuser
(2)passwd ftpuser
→パスワード入力(2回)
3.vsftpdの設定を行う(※SSL通信にはしない。見られても困らないので…)
(1)cd /etc/vsftpd/
(2)vim vsftpd.conf
→FTPをパッシブモードで使用する場合は下記の通り設定する各設定は以下の通り。
「参考(所々丸写し」
「既存のvsftpd.confの設定を変更」
●anonymous_enable:匿名ユーザのFTP接続設定
anonymous_enable=NO
●local_enable:CL側からの接続設定
local_enable=YES
●write_enable:ファイルシステムを変更するFTPコマンドを許可する。
write_enable=YES
●local_umask:ローカルユーザがディレクトリやファイルを作成する際に使用されるumaskを指定する。
→削除する実行権限の指定。「022」の場合、「777-022」でディレクトリのパーミッションは"755"、「677-022」でファイルのパーミッションは"655"となる。
local_umask=022
●anon_upload_enable:匿名ユーザによるファイルアップロードの許可設定
#anon_upload_enable=YES
●anon_mkdir_write_enable:匿名ユーザによるディレクトリ作成・ファイル書き込みの許可設定
#anon_mkdir_write_enable=YES
●dirmessage_enable:ユーザが新しいディレクトリに初めて移動した際のメッセージ表示設定
dirmessage_enable=YES
●xferlog_enable:ダウンロード/アップロード時のログのファイル出力設定
xferlog_enable=YES
●connect_from_port_20:FTP接続に設定するポート番号の動的変更設定
connect_from_port_20=YES
●chown_uploads・chown_username:匿名ユーザがアップロードしたファイルの所有者を、chown_usernameオプションで指定したユーザにする。※ 「recommended!」らしい。匿名ユーザの操作は許可していないので無視。
#chown_uploads=YES
#chown_username=whoever
●xferlog_file:ダウンロード/アップロード時のログのファイル出力先設定
xferlog_file=/var/log/xferlog
●xferlog_std_format:ログの出力フォーマットに関する設定。※いじらなくてOK
xferlog_std_format=YES
●idle_session_timeout:CL側からの操作タイムアウト時間の設定
#idle_session_timeout=600
●data_connection_timeout:CL側からのコネクションタイムアウト時間の設定
#data_connection_timeout=120
●nopriv_user:vsftpdが使用する非特権ユーザの設定
#nopriv_user=ftpsecure
●async_abor_enable:ABOR通信の設定(FTPクライアントソフトによってはコメントアウトを外す。今回はコメントアウトのまま)
#async_abor_enable=YES
●ascii_upload_enable・ascii_download_enable:ASCIIモードのアップロード許可設定
→バイナリ転送モードしか使わない場合はNOでも良い。
ascii_upload_enable=YES
ascii_download_enable=YES
●ftpd_bannerサーバに接続したとき(ユーザ名を入力する前)に表示される文字列
#ftpd_banner=Welcome to blah FTP service.
●deny_email_enable・banned_email_file:ログインを拒否する匿名パスワード(つまり、メールアドレス)のリストファイル設定
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
●chroot_local_user・chroot_list_enable・chroot_list_file:
chroot_list_fileオプションで指定したユーザリストファイルを読み込み、chrootさせる
#chroot_local_user=YES(※コメントアウトし、chroot_listを有効にする)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
●ls_recurse_enable:"ls -R"コマンド(ディレクトリリストを再帰的に表示)の使用許可設定
#ls_recurse_enable=YES
●listen:スタンドアロンモード(IPv4)での起動設定
listen=YES
●listen_ipv6:スタンドアロンモード(IPv6)での起動設定
#listen_ipv6=YES
「新規でvsftpd.confへ設定を追加」
●pam_service_name:vsftpdが使用するPAMサービス名を指定 ※PAM:Linuxが提供するアプリケーション向けの認証機能。
pam_service_name=vsftpd
● userlist_enable・userlist_file・userlist_deny:
userlist_fileオプション(デフォルトは/etc/vsftpd.user_listファイル)で指定したファイルに含まれるユーザリストを元に、ログインの許可 / 拒否が決定される。
→この設定だと、「vsftpd.user_listに含まれるユーザの接続は拒否、vsftpd.user_listに含まれないユーザの接続は許可」となる。
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=YES
●tcp_wrappers:この項目は下記リンク参照。
みんなの教室 - FTPサーバ(vsFTP)の構築 - 仮想専用サーバ構築 > FedoraCore3 - 裏番町通信
tcp_wrappers=YES
●local_root:全てのローカルユーザが、ログインした後に移動するディレクトリ設定
local_root=public_html
●pasv_enable:パッシブモードの設定
pasv_enable=YES
●pasv_address:PASVコマンドの応答でクライアントに通知する、サーバのIPアドレスを指定する。
→公開用のIPアドレスを指定する必要がある。「127.0.0.1」とか「192.168.0.1」とかはNG。ただしFTPサーバとCL側の端末が同一セグメント上にある、などの場合は別。
pasv_address=(※サーバのIPアドレスを設定する※)
●pasv_min_port・pasv_max_port:パッシブモードでファイルのやりとりを行うポートレンジの設定
pasv_min_port=60001
pasv_max_port=60100
※vsftpd.confの設定はここまで。
4.user_listは設定しない。
5.空のchroot_listを作成する。→「chroot_list_file」にて指定した場所に作成する。
6.vsftpdを起動する。
service vsftpd start
7.FFFTPから接続
接続に使用するユーザは「ftpuser」を使用する。
→接続に時間がかかるときはネットワークの設定よりIPv4を優先的に使用する設定にすると多少早くなる。
8.自動起動の設定
(1)chkconfig vsftpd on
以上で設定は終わり。
【注意点 - つながらなくなった場合に疑うところ】
①AWSセキュリティグループのIP設定
→テザリングなど、CL側に動的IPアドレスがふられる環境では「My IP Address」の項目はテザリングでの接続ごとに変化する。なのでサーバ接続する際は毎回セキュリティグループの設定を変更する。
②vsftpd.confの「pasv_address=(サーバのIPアドレス)」の設定値
ElasticIP(公開用IP)を設定する必要があるが、EC2再起動させたら変更されてしまうので、再起動の度に書き直す必要がある。
→上記設定がめんどくさい方は下記参照。スクリプト書いてください。
EC2でvsftpdのpasv_addressをbootupのしかけでどうにかする - c/fe
【感想】
・vsftpdの設定(vsftpd.conf) と 道はなくても進むのだ。: Amazon EC2 (Amazon Linux) での vsftpd インストールと設定を見ればだいたいできる。