自宅サーバー(CentOS6.2)ですが他人にFTPを解放する事を想定して管理者と一般ユーザを想定してます。
管理者は / 以下を見れるようにして、一般ユーザは自分の public_html/ 以下のみを見れるようにします。
また、待ち受けポートを10020にしてDynamicDNSでPassiveを使用します。
※ページの最後に下記を一括実行するスクリプトを用意しています。
前のページから来ていない方はユーザを追加する際のシェルに気を付けてください。
useradd -s /sbin/nologin {ユーザ名} [Enter] とするか、
/etc/default/useradd のシェルを /sbin/nologin へ変更します。
- インストール
yum -y install vsftpd [Enter]
- 設定ファイル(/etc/vsftpd/vsftpd.conf) の編集箇所のみを列挙します。
待ち受けポートを変更します connect_from_port_20=NO listen_port=10020 匿名FTPを許可しません anonymous_enable=NO ASCIIでアップ・ダウンロード可能にします。 ascii_upload_enable=YES ascii_download_enable=YES /home/{USER}/public_html/より上位へ移動できないようにします。 chroot_local_user=YES chroot_list_enable=YES 一般ユーザのルートの位置を指定します。 local_root=public_html 下のファイルに列挙したユーザが上位ディレクトリへ移動可能になります chroot_list_file=/etc/vsftpd/chroot_list ディレクトリ単位の操作を可能にします。 ls_recurse_enable=YES 日本時間にします use_localtime=YES Passiveの設定 pasv_enable=YES pasv_min_port=10030 pasv_max_port=10040 DynamicDNSの場合 pasv_addr_resolve=YES pasv_address={ドメイン名} 固定IPの場合 pasv_address={固定IP}
- 管理者を設定
# echo {ユーザ名} >> /etc/vsftpd/chroot_list [Enter]
# chmod 600 /etc/vsftpd/chroot_list [Enter] - FTP接続を全てのサイトから受け入れます。
# echo "vsftpd: ALL" >> /etc/hosts.allow [Enter]
- サービスを開始します。
# chkconfig vsftpd on [Enter]
# /etc/rc.d/init.d/vsftpd start [Enter]
一括実行をするスクリプトです ここからダウンロードして確認できます。
スクリプトをダウンロードして実行します ※CentOS6.2 / vsftpd-2.2.2
# cd /var/tmp [Enter]
# wget http://stargate.undo.jp/download/centos/2_vsftpd.sh [Enter]
# bash 2_vsftpd.sh [Enter]
FTP Port No [20]: {待ち受けポート番号} [Enter]
chroot enable user : {管理者のユーザ名} [Enter]
/etc/hosts.allow setting ftp open network (ex.192.168.10.) [ALL]: ALL [Enter]
↑ FTP接続を許可するネットワークを指定します
Passive Enable ? (yes/no) [yes]: yes [Enter]
Passive Mini Port [10030]: {Passive用の最小ポート番号} [Enter]
Passive max Port [10040]: {Passive用の最大ポート番号} [Enter]
Use DynamicDNS ? [yes]: {ダイナミックDNSの使用有無} [Enter]
Your Global IP Address : {WAN側のIPアドレス} [Enter] ↑はダイナミックDNSでnoの場合に指定します
Run OK ? (yes/no) [no]: yes [Enter] これで実行します