green FTP サーバの構築 [目次] [前のページ次のページ]

1.Introduction

FTP とは File Transfer Protcol(ファイル転送プロトコル)の略である。
つまり、ネットワークを経由してファイルをやり取りするための仕組み。 これはサーバからファイルをダウンロード・アップロードするときによく用いられる。
ここでは wu-ftpd-2.6.0 を用いて FTP サーバーを構築する方法を解説する。

なお、OS(オペレーティングシステム)のインストールについては再構築資料 "基本システムのインストール" を参照し、終えておくこと。


2.wu-ftpd のインストールと設定

(2.1) wu-ftpd のインストール

(2.1.1) wu-ftpd の取得

wu-ftpd には debian パッケージも存在するが、 専攻サーバでは最新版を利用するために、 以下の手順でソースファイルを取得しコンパイルする。

必要なファイルは以下の2つ。
これらを提供している ftp サイトより各々 /home/green/ にダウンロードする。

○ wu-ftpd-2.6.0.tar.gz
-> ftp://ftp.wu-ftpd.org/pub/wu-ftpd/
○ ftp.bin.linux.i386.tar.gz
-> ftp://ftp.wu-ftpd.org/pub/wu-ftpd/binaries/intel/linux/

次に、取得したこれらのファイルをソースファイルとして保管する ディレクトリを用意する。green では /home/green/src 。

$ mkdir /home/green/src

ここに、先ほどのファイルをコピーしておく。

$ cp wu-ftpd-2.6.0.tar.gz /home/green/src/.

(2.1.2) wu-ftpd の展開

ファイル wu-ftpd-2.6.0.tar.gz は 複数のファイルがまとめて圧縮された状態にある。 このままではコンパイルすることはできないので、元に戻す必要がある。 (これを展開もしくは解凍と呼ぶ)
そこで、ファイル wu-ftpd-2.6.0.tar.gz を ディレクトリ /home/green/ に展開する。

$ cd /home/green/
$ tar xvpzf wu-ftpd-2.6.0.tar.gz

展開した結果として作られたディレクトリ wu-ftpd-2.6.0 に移動する。

$ cd wu-ftpd-2.6.0/

(2.1.3) wu-ftpd のコンパイルとインストールの手順

wu-ftpd のコンパイルとインストールの手順は、 "通例よく見かけるコンパイルとインストールの手順"と少々異なる。 ここで言う"通例よく見かけるコンパイルとインストールの手順"とは、以下の手順である。

$ ./configure
$ make
# make install

※因みに wu-ftpd 製作グループによると、 wu-ftpd も将来的には上記の手順に移行する予定であるそうだ。

■ 下準備

wu-ftpd では次のように行う。

まず、個々のコンピュータ環境に応じたコンパイル&インストールを行うよう、 次のコマンドを実行する。

$ ./bulid lnx

ここで lnx は、Linux 系OSを用いていることを指定している。

■ 設定ファイル配置先の変更

次に、wu-ftpd の動作設定ファイルを置くべきディレクトリを変更するため、 コンパイル前にソースファイルの一部を編集する。 何も編集せず、変更を加えない場合、 wu-ftpd の動作設定ファイルは /etc/ に置かなければならない。*1

*1
これは、/etc/ に設定ファイルが置かれるという前提で、 wu-ftpd が作られているため。 なお、編集しなくとも、オプションスイッチを利用することで /etc/ 以外のディレクトリに変更することはできる。 しかし、この手法では変更先に 任意のディレクトリを指定することはできないため 直接ソースファイルを編集する方法を選ぶ。

ディレクトリ /etc/ には他ソフトウェアの設定ファイルが 入っており、そこに wu-ftpd の動作設定ファイルも そのまま一緒に混ぜてしまうと、 wu-ftpd 関連のファイルとその他のファイルの区別が 直感的に出来ず、賢明ではないと言える。

具体的には、green では /etc/wu-ftpd-2.6.0/ に置く。
ディレクトリ /etc/ に ディレクトリ wu-ftpd-2.6.0 が存在しない場合は、 ここで作成しておこう。

# mkdir /etc/wu-ftpd-2.6.0

編集するソースファイルは pathnames.h.noac 。
上の通り作業していれば、/home/green/wu-ftpd-2.6.0/src/ にある。

vi や emacs でこのファイルを開き書き換える。
ここでは、書き換える必要のある部分だけ抜き出した。
すなわち、<73>行、<74>行、<75>行、<195>行目を、

#define _PATH_FTPACCESS  "/etc/wu-ftpd-2.6.0/ftpaccess"
#define _PATH_CVT        "/etc/wu-ftpd-2.6.0/ftpconversions"
#define _PATH_PRIVATE    "/etc/wu-ftpd-2.6.0/ftpgroups"
#define _PATH_FTPHOSTS   "/etc/wu-ftpd-2.6.0/ftphosts"

と変更する。

■ FTP サービスの一時停止

インストールを行う前に、外部から ftp サービスを利用できないよう、 安全のため一時的に停止させる。初めて ftp サービスを提供する場合 この操作は必要ない。しかし、後でサービスを開始する場合に参考に なるので、読んでおくこと。

まず /etc/inetd.conf を編集する。<29>行目の ftp の項目を、

#ftp	stream	tcp	nowait	root	/usr/sbin/tcpd	/usr/sbin/in.ftpd

の様に、行頭に # をつけコメントアウトする。

次に、行った変更を有効にするため inetd を再起動する。

# ps aux

として inetd のプロセス番号を確認し、

# kill -HUP [inetd のプロセス番号]

として inetd を再起動する。

詳しくは http://www.ep.sci.hokudai.ac.jp/~epcore/dvlop/TEBIKI.ep_security.html を参照のこと。

■ インストール

$cd /home/green/wu-ftpd-2.6.0
# ./build install

とすればインストールは完了である。

インストール成否の目安として、 in.ftpd のバージョンを確認する方法がある。

$ /usr/sbin/in.ftpd -V
とやってみて

Copyright (c) 1999 WU-FTPD Development Group.
All rights reserved.

Portions Copyright (c) 1980, 1985, 1988, 1989, 1990, 1991, 1993, 1994
  The Regents of the University of California.
Portions Copyright (c) 1993, 1994 Washington University in Saint Louis.
Portions Copyright (c) 1996, 1998 Berkeley Software Design, Inc.
Portions Copyright (c) 1989 Massachusetts Institute of Technology.
Portions Copyright (c) 1998 Sendmail, Inc.
Portions Copyright (c) 1983, 1995, 1996, 1997 Eric P.  Allman.
Portions Copyright (c) 1997 by Stan Barber.
Portions Copyright (c) 1997 by Kent Landfield.
Portions Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997
  Free Software Foundation, Inc.  

Use and distribution of this software and its source code are governed 
by the terms and conditions of the WU-FTPD Software License ("LICENSE").

If you did not receive a copy of the license, it may be obtained online
at http://www.wu-ftpd.org/license.html.

と表示されれば良いだろう。

■ サービスの再開

基本的に停止時の逆操作を行えば良い。即ち inetd.conf で先程 書き加えた # を削除して保存、しかるのちに inetd を再起動 する。


更新日: 2000/07/14 河野仁之 [目次] [前のページ次のページ]