サイトマップ | お問い合わせ  | ID  PASS 

SmartSection is developed by The SmartFactory (http://www.smartfactory.ca), a division of INBOX Solutions (http://inboxinternational.com)
ۡ롼 > 裏番町通信 > 仮想専用サーバ構築 > CentOS4 > FTPサーバーの構築(vsFTP)
FTPサーバーの構築(vsFTP)
投稿者: Master 掲載日: 2007-8-12 (3276 回閲覧)
Apacheの設定が済んだので、Webコンテンツをアップロードできるようにするために、FTPサーバを構築します。デフォルトではvsFTPがインストールされていました。

Apacheの設定が済んだので、Webコンテンツをアップロードできるようにするために、FTPサーバを構築します。仮想専用サーバーにインストールされていたvsFTPで、FTPサーバーを構築することにします。
[seperator]

● vsFTPの環境ファイルの編集
SSHでサーバに接続してvsFTPの環境ファイルを開きます。
[root@localhost~]# vi /etc/vsftpd/vsftpd.conf 

匿名ユーザのログインを禁止します。
anonymous_enable=NO ← YESをNOに変更 

アイドル時のタイムアウトを設定します。
idle_session_timeout=600 ← 行頭の#を削除 

接続時のタイムアウトを設定します。
data_connection_timeout=120 ← 行頭の#を削除 

asciiモードでの送受信を許可します。
ascii_upload_enable=YES ← 行頭の#を削除 
ascii_download_enable=YES ← 行頭の#を削除 

セキュリティホールが見つかったときに狙われる可能性があるので、接続時にバージョンが表示されないようにします。必要であれば「ftpd_banner=」以降を任意のメッセージに書き換えます。
ftpd_banner=Welcome to blah FTP service. ← 行頭の#を削除 

ディレクトリの削除を許可します。
ls_recurse_enable=YES ← 行頭の#を削除 

ユーザーリストの設定を確認します。
userlist_enable=YES ← YESなのを確認 

TCPラッパーを確認します。
tcp_wrappers=YES ← 行頭に#が無いのを確認 

パッシブモードを有効にするのと、タイムスタンプを日本時間に合わせるために以下の2行を最下行へ追加します。
pasv_promiscuous=YES
use_localtime=YES 

FTP接続したときに、ドットで始まる.htaccessなどのファイルも表示するようにします。
force_dot_files=YES ← 追記 

編集が済んだらファイルを保存してviを終了します。

● FTP接続できるユーザの制限
メールだけを使うユーザなど、Webコンテンツの管理に関係ないユーザは、FTPサーバへアクセスできないようにしておきます。userlist_enableがYESで制御が有効になります。
[root@localhost~]# vi /etc/vsftpd.ftpusers
# Users that are not allowed to login via ftp
root
 :
 :
hanako ← 追記 


● 自ディレクトリより上位ディレクトリへ移動させないようにする

chroot_local_user=YES ← 行頭の#を削除 
chroot_list_enable=YES ← 行頭の#を削除 
chroot_list_file=/etc/vsftpd.chroot_list ← 行頭の#を削除 


● ユーザーのホームディレクトリをpublic_htmlとする場合
※ユーザーディレクトリにpublic_html/を作成する必要があります。新規ユーザー追加時に自動作成する方法はこちら

local_root=public_html ← 追記 


● 上位ディレクトリへ移動を許可するユーザーを設定
[root@localhost~]# vi /etc/vsftpd.chroot_list ← vsftpd.confで指定したファイルを作成
webmaster ← ユーザーを設定して保存 


● vsFTPの起動
設定が済んだらvsFTPを起動します。
[root@localhost~]# service vsftpd start 


● vsFTPの自動起動設定
OSを再起動したときに、vsFTPも自動的に起動するよう設定します。
[root@localhost~]# chkconfig vsftpd on

設定を確認します。2〜5がonになっていれば設定が反映されています。
[root@localhost~]# chkconfig --list
 :
vsftpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
 : 


● ドキュメントルートの所有者を変更
vsftpdのデフォルトの設定では、rootアカウントでのFTP接続はできません。しかし、ドキュメントルートに設定されている/var/www/htmlにはrootしか書き込めないようになっています。このままでは、FTPクライアントにるWebコンテンツのアップロードができないので、ディレクトリの所有者を変更します。設定する所有者は、FTP接続するユーザアカウントにします。
[root@localhost~]# chown webmaster /var/www/html 


● 接続の確認
ログインできないようにしたhanakoでアクセスしてみます。
[Macintosh:~] Taro~% ftp hanako@123.456.789.10
Connected to 123.456.789.10.
220 Welcome to blah FTP service. ← バージョンが表示されないのを確認
331 Please specify the password.
Password: ← hanakoのパスワードを入力
530 Login incorrect.
ftp: Login failed. ← ログインできなかった
ftp> bye ← 接続を切る
221 Goodbye. 

ログインできるwebmasterでアクセスし、index.htmlファイルをアップロードしてみます。アップロードは、ローカルのカレントディレクトリからサーバのカレントディレクトリに送信します。この場合、Macintoshの/ユーザ/Taro内にindex.htmlファイルを用意しています。またアップロード先は/var/www/html(ドキュメントルート)です。
[Macintosh:~] Taroi%  ftp webmaster@123.456.789.10
Connected to 123.456.789.10.
220 Welcome to blah FTP service.
331 Please specify the password.
Password:
230 Login successful. ← ログインできた
Remote system type is UNIX.
Using binary mode to transfer files. ← ファイル転送がbinaryモードになっている
ftp> cd /var/www/html ← ドキュメントルートに移動
250 Directory successfully changed.
ftp> ascii ← テキストファイルを転送するのでasciiモードに変更
200 Switching to ASCII mode.
ftp> put index.html ← index.htmlをアップロード
local: index.html remote: index.html
229 Entering Extended Passive Mode (|||20481|)
150 Ok to send data.
100% |*************************************************|  3825       2.45 MB/s    --:-- ETA
226 File receive OK. ← アップロードできた
3825 bytes sent in 00:00 (154.86 KB/s)
ftp> bye ← 接続を切る
221 Goodbye. 

Webブラウザでhttp://(移転先サーバのIPアドレス)/ にアクセスし、アップロードしたページが表示されるか確認します。

※ドキュメントルートとは、Webサーバ上のルートディレクトリのことです。 ホームページにアクセスしたときには、このディレクトリが一番上の階層のディレクトリとして見えます。デフォルトでは/var/www/htmlがドキュメントルートに設定されています。

● IPアドレスによるアクセス制限の設定
FTP接続するユーザーが限られているので、念のためホスト制限を設定していきます。vsftpd.confの「tcp_wrappers=YES」は、「hosts.allowとhosts.denyによりアクセス制限を行う」といういうことです。/etc/hosts.allowを開くと、利用開始時に設定したSSH接続を許可するIPアドレスが書き込まれています。そのあたりにFTP接続を許可するIPアドレスを追記します。
[root@localhost~]# vi /etc/hosts.allow
sshd : 123.123.123.1
vsftpd : 123.123.123.1 ← アクセスを許可する接続元のIPアドレス 

さらにアクセスを拒否する設定を行います。このファイルにもSSH接続のアクセス制限が設定されています。処理としては「hosts.denyで拒否してhosts.allowの接続元にだけに許可」となります。すべての接続を拒否するようALLを設定します。
[root@localhost~]#  [color=ff5300vi /etc/hosts.deny[/color]
sshd : ALL
vsftpd : ALL ← hosts.allowに記述された接続元以外はすべて拒否 
  この記事を PDF フォーマットで見る 記事を印刷する 記事をメールで送信

良く読まれた記事 SMTPサーバーの構築(Postfix) Webサーバーの構築(Apache) 次の記事
メインメニュー
大橋デザイン室