このセクションではLinuxで構築した自宅サーバーFTPサーバーvsFTPdを設置するための方法を初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
FTPサーバーの構築

FTPサーバーについて


vsFTPdの基本設定
(WBEL3,4_CentOS3,4)

ローカルユーザー接続の設定
(WBEL3,4_CentOS3,4)

アノニマスFTPの設定
(WBEL3,4_CentOS3,4)

vsFTPdのコントロール
(WBEL3,4_CentOS3,4)

vsFTPdの動作チェック
(WBEL3,4_CentOS3,4)


vsFTPdの基本設定
(CentOS5)

ローカルユーザー接続の設定
(CentOS5)

アノニマスFTPの設定
(CentOS5)

vsFTPdのコントロール
(CentOS5)

vsFTPdの動作チェック
(CentOS5)


ポートフォワーディングの設定


FTPサーバーについて

FTP は非常にシンプルで、また誕生してからの歴史が長いこともあって、遠隔地とのファイルの送受信に最もよく利用される プロトコル の一つです。

ただし最近はインターネットで利用されるプロトコルの多くが、ホームページや電子メールの普及とともに、 HTTP POP3 SMTP などで占められるようになってきました。

その結果、FTPで担われるファイルの送受信の比率は少なくなりつつあります。

とはいえ、制限や手続きの多い最近のプロトコルと比較して、FTPは

・単一のプロトコルで双方向にデータを送信可能。

・サイズの大きなデータを大量に安定して送信可能。

OS に依存せずにデータを送信可能。

という特徴があります。

従って一般にFTPは、 クライアント アプリケーション プログラムを メーカーや ディストリビューター 公開サーバー から ダウンロード をする場合や、web コンテンツ データの アップロード をするときなどによく用いられます。

しかし自宅 サーバー にFTPサーバーを設置すれば、そういった用途だけではなく、例えば電子メールには添付できないような大量または巨大なデータでも WAN 空間を介して 簡単に第三者に受け渡すことができるようになります。

FTPは、HTTPやSMTPのように、「webコンテンツを扱うため」、「メールを送信するため」といった特定の目的のもとに設計されたプロトコルではなく、 「ファイルの転送を行うため」 という特定の目的を持たない汎用のプロトコルですから、使い道はアイデア次第です。

FTPによるファイル転送の仕組みと扱い方を熟知しておけば、特に「異なるOS間で確実にデータの送受信を行える」という特性がありますから、「いざというときのファイル転送の切り札」として活躍の場が生まれることもあります。

また、この コンテンツ では説明は割愛していますが、FTPはもともと コマンド 操作でファイルの送受信を行うためのプロトコルです。

そしてほとんどの クライアント 向けのOSは最初からFTPコマンドが利用できるようになっていますから、FTPコマンドによる操作方法さえ知っていれば、 GUI FTPクライアント アプリケーションが インストール されていないパソコンからでも FTPサーバー に接続し、操作することができます。

コマンドで操作できるということは、 スクリプト に記述して「自動アップロード」、「自動ダウンロード」もできるようになります。

そういう意味でFTPサーバーは、サーバー管理者の力量とセンスが試されるアプリケーションだといえるでしょう。

このページの先頭へ↑

vsFTPdについて

FTP サーバー アプリケーション は、 プロトコル の成り立ちが古いこともあり、他のサーバーアプリケーションに比べると非常に多くの種類があります。

特に近年FTPは、他のプロトコルと比較すると相対的な利用頻度は減ったとはいえ、通信速度の飛躍的な向上とインターネット利用者の増大によって、性能的にも セキュリティ 的にも高度なものが要求されるようになってきました。

そして、何の セキュリティ 対策も必要のない、 TELNET でサーバーのリモート管理が可能だった「平和な」時代のFTPサーバーアプリケーションは、次第に使われなくなってきています。

WBEL CentOS に標準で インストール される vsFTPd は、その名前の示すとおり、安全性の高さがウリのFTPサーバーアプリケーションです。

数年前までは、 LinuxOS 用のFTPサーバーといえば、 WU-FTPd というアプリケーションがスタンダードでしたが、現在は性能でも安全性でも上回るvsFTPdにほぼ置き換わっています。

この コンテンツ では、このvsFTPdについての設定と運用を解説して行きます。

このページの先頭へ↑

いきなりvsFTPdを起動してみる

FTPサーバー がどういうものかをご覧いただくために、とりあえず vsFTPd を稼動させてみましょう。

起動と動作確認は 構築中のLinuxサーバー と同じ サブネット 内の クライアント機 から行います。

まず、 SSHクライアント などから 構築中のLinuxサーバー ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5)

それから su コマンド ユーザーアカウント "root" に変更し、次のようなコマンド操作でvsFTPdを起動してください。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# /etc/init.d/vsftpd startEnter
vsftpd用のvsftpdを起動中:                 [ OK ]
[root@web1 ~]#
この例では 構築中のLinuxサーバー IPアドレス で接続していますが、既に DNSサーバーの設定へ でLAN用の hostsファイル の設定や BIND の構築で、ルーターに FQDN を割り当てている場合 サブネット内の通信機器にFQDNを設定する は、 "ftp://192.168.100.1/" ではなくルーターのFQDNを用いた URL "ftp://???.obenri.com/ でも接続することができます。

FTPサーバーが起動したら、適当な Webブラウザ を開き、アドレスバーに

ftp://192.168.100.11/

とタイプして Enter キーを押してください。

例えば "FireFox" の場合は次のように読み取り専用のディレクトリ形式で表示されるはずです。

FTPサーバーへ匿名ログイン(FireFox2)
FTPサーバーへ匿名ログイン(FireFox2)

"InternetExplorer6" デフォルト で簡易 FTPクライアント 機能が動作して、以下のようにWindowsのエクスプローラー形式で表示されるはずです。

ちなみに "InternetExplorer7" の場合は読み取り専用のディレクトリ形式がデフォルトですので、最初の表示形式はFireFoxの場合と同じです。

FTPサーバーへ匿名ログイン(InternetExplorer7)
FTPサーバーへ匿名ログイン(InternetExplorer7)

ここでブラウザ内の表示に従って、 表示 メニューから エクスプローラでFTPサイトを開く を選択すると、Windowsのエクスプローラー形式で表示されるようになります。

ところで、 "InternetExplorer6" ではウィンドウの下のほうに "ユーザー:匿名" と表示されていることにお気づきでしょうか(ブラウザによっては表示されないこともあります。)。

実は今、 構築中のLinuxサーバー 上で稼動している アノニマスFTP サーバーを覗いているわけです。

アノニマスFTPサーバーは、一般にサイトのオーナーが クライアント に対してプログラムやデータを自由に配信する目的で運用するもので、既に WBEL CentOS インストール CD を作成するために、 理化学研究所のアノニマスFTPサーバー から ISOイメージ ダウンロード するために利用した方も多いはずです WBEL3のインストールCDイメージのダウンロード CentOS3のインストールCDイメージのダウンロード WBEL4のインストールCDイメージのダウンロード CentOS4のインストールCDイメージのダウンロード CentOS5のインストールCDイメージのダウンロード

構築中のLinuxサーバー のアノニマスFTPサーバーは、 "/var/ftp/" というディレクトリに作成されますが、 デフォルト ではその中に "pub/" というディレクトリが一つだけ作成されていて、ここへの自由なアクセスが可能になっているはずです。

では試しに、このディレクトリに適当なファイルを作成してみましょう。

[root@web1 ~]# cd /var/ftp/pubEnter cdコマンドの説明
[root@web1 pub]# pwd > sample.txtEnter pwdコマンドの説明 出力のリダイレクトの説明
[root@web1 pub]# lsEnter lsコマンドの説明
sample.txt
[root@web1 pub]# cat sample.txtEnter catコマンドの説明
/var/ftp/pub
[root@web1 pub]#

そして、先ほど開いたFTPサーバーの中の "pub/" フォルダを開いてみてください。今作成した "sample.txt" が表示されているはずです。

では、この "sample.txt" をクライアント機の適当な場所にコピーして、適当なテキストエディタで開いてみてください。次のように、pwdコマンドの実行結果が一行だけ書かれているはずです。

sample.txtの内容
"sample.txt"の内容

では、もう一つ試してみましょう。

もし適当なFTPクライアントがインストールされていないときは、 FTPクライアントについて(WBEL3) FTPクライアントについて(CentOS3) FTPクライアントについて(WBEL4) FTPクライアントについて(CentOS4) FTPクライアントについて(CentOS5) などをインストールしてください。
公開サーバー を運用する以上、FTPクライアントアプリケーションは必要になりますから、どれか一つは使えるようにしておきましょう。

現在使用中のクライアント機でFTPクライアントソフトが使用できるのであれば、

ホスト名(またはアドレス)...web1.obenri.com(192.168.100.11)

ユーザー名(またはアカウント)...tanaka

パスワード(またはパスフレーズ)...tanakaのパスワード

ホストの初期フォルダ(またはディレクトリ).../home/tanaka

と設定して接続を行ってみてください。

web1.obenri.comへのFTP接続の設定例(FFFTP)
"web1.obenri.com"へのFTP接続の設定例(FFFTP)

接続がうまくいくと、以下のように表示されるはずです。

もしもサーバー側(向かって右側)に "." で始まるディレクトリやファイルがいくつか表示されるときは、FTPクライアントの設定で 「.で始まるファイルを表示」 というオプションが有効になっているはずです。
これらの ドットファイル はとても重要なものですから ドットファイルについて 誤って消去や書き換えをしてしまわないように、表示オプションを無効にしておくことをお奨めします。

これは、 ローカルユーザーからのFTP接続 で、先ほどのアノニマスFTPと異なり、WBELやCentOSのシステム上にアカウントを持つローカルユーザーが、個人で使用するデータを扱うためのものです。

ローカルユーザーがFTP接続を行うためにはユーザーアカウント名と対応するパスワードが必要になりますが、この場合は受信だけではなく、自分の ホームディレクトリ に対して ファイルの送信 を行うことができます。

試しに、向かって左側(クライアント側)に表示されているファイルのどれかを、右側(サーバー側に) アップロード してみましょう。



このようにvsFTPdはアプリケーションを起動するだけで、デフォルトの設定もままでも、ユーザーアカウント毎に認証が必要な送受信接続と、アノニマスFTP接続の二種類が基本的な動作を行うようになっています。

ただ、デフォルトの設定のままでは セキュリティ 的にも不十分ですし、実際に利用するには不都合が残る部分があります。

特にFTPの場合は 「ファイルをサーバーに送信する」 という役目を持っているため、この部分の権限を第三者に与える場合にはFTPサーバー自身の設定に気をつけるだけではなく、ユーザーアカウントごとの書き込み容量制限として quota を設定しなければならないこともあります。

このセクションでは、こういったポイントを中心にvsFTPdの設定を行っていきます。

このページの先頭へ↑

ホスト名に"ftp"を設定する功罪

FTPサーバー を構築するとき、一般に使われるのが "ftp" という ホスト名 です。

つまり現在 構築中のLinuxサーバー の場合でも、 "ftp.obenri.com" という FQDN を設定して運用するのが常識的な設定といえます。

もちろん、ホスト名は ドメイン名 の所有者が任意に設定して構わないわけですし、"ftp."で始まるFQDNでなければFTPサーバーとして運用できないわけではありません。

ただし、"ftp."で始まるFQDNを設定しておくと、便利なことがあります。それは、

「先頭が"ftp."で始まるFQDNをFTPサーバーとみなして動作する クライアント アプリケーション を利用するとき、面倒がない。」

という点です。

例えば多くの Webブラウザ は、例えば本来アドレスバーに、

"http://www.obenri.com/

URL でタイプすべき場合でも、普通は "http://" という プロトコル 表記を省略して

"www.obenri.com"

とFQDNを入力するだけで、自動的に先頭に"http://"が補完されて、 HTTP で接続が行われるようになっています。

また最近のWebブラウザの大半は FTPクライアント 機能を合わせ持っていますが、実はFQDNの先頭が"ftp."で始まる場合に限って自動的に先頭に "ftp://" が補完されるようになっています。つまりアドレスバーに、

"ftp.obenri.com"

とタイプすれば、自動的に

"ftp://ftp.obenri.com/

への接続が試みられるわけです。

というわけですから、もしも現在 構築中のLinuxサーバー に"ftp."始まるFQDNが設定されていなければ、FTP接続を行う場合にはプロトコル表記を省略することができず、必ず、

"ftp://www.obenri.com/

という具合にURLでタイプしなければならなくなります。

ということは、FTPサーバーを第三者に積極的に利用してもらうのが運用の目的であるならば、"ftp."で始まるFQDNを設定しておくほうが何かと好都合ということになります。

ところが、これは逆に考えると危険なことかもしれません。

SSH TELNET のように、 ホスト機 をリモート接続で完全にコントロールできるプロトコルに比べれば、侵入者の標的となる危険性はずっと低いはずですが。

実はFTPサーバーは コンテンツ の公開が目的の Webサーバー と異なり、第三者に利用させるのが目的ではないファイルの格納庫として利用されることがあるため、悪意をもって侵入を企てているクラッカーや、探索プログラムの標的とされることがあります。

つまり"ftp."で始まるFQDNを運用することは、「ここにFTPサーバーがありますよ」という看板をインターネット空間にぶら下げているのと同じことですから、善意をもって利用する人には便利な反面、悪意をもって攻撃をする人にも「侵入経路」を教えていることになるわけです。

という訳ですから、これから構築するFTPサーバーについて、利用者を限定して運用するような場合には"ftp."で始まるFQDNを設定することはお勧めしません。

"ftp."で始まるFQDNは、 アノニマスFTP サーバーを公開して、自分の作ったファイルやプログラムなどを不特定多数のユーザーに利用してもらうような場合に限って、ある程度は攻撃を受けることを覚悟した上で設定するべきだと思います。

このページの先頭へ↑

OSの種類によるvsFTPdの違いについて

WBEL3 及び CentOS3 、 そしてWBEL4とCentOS4、CentOS5では、 デフォルト インストール されている vsFTPd のバージョンが異なります。

これらはバージョンは異なるものの、基本的な動作や仕組み、設定や稼動に必要なファイルや操作手順にはほとんど違いはありません。

ただしCentOS5の場合には、後述するユーザーリストファイルのデフォルトの パス とファイル名がWBEL3、CentOS3、WBEL4、CentOS4とは異なります。

従ってこのセクションでは設定方法について、初期設定ファイルの内容が基本的に同じWBEL3,CentOS3、WBEL4、CentOS4についてインストールされているvsFTPdを同じものとしてひとつのページでまとめて解説し、CentOS5のみページを別に設けて解説します。

ただし操作自体はほぼ共通していますので、操作に関しては説明に支障がない限りはCentOS5を基準に説明しますので、WBEL3やCentOS3、WBEL4やCentOS4をご利用の方は細かい部分についてはその内容を適宜読み直して参考にしてください。

WBEL3、CentOS3、WBEL4、CentOS4をご利用の方は、ここから vsFTPdの基本設定(WBEL3,4_CentOS3,4) へ、CentOS5をご利用の方は、 vsFTPdの基本設定(CentOS5) へと進み、更にそれぞれの ディストリビューション 用のvsFTPdの解説へと進んでください。

それぞれの設定が終わったら最後に ポートフォワーディングの設定 へと進んでください。こちらは共通の解説になっています。

このサイトは リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。今のところ更新予定はありませんのでご了承ください。
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。