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

2.wu-ftpd のインストールと設定(続き)

(2.2) wu-ftpd の設定など

(2.2.1) 概要

デフォルトで用意される設定ファイルのサンプルには、 FTP サーバとして機能するための基本的事項は記述されている。 しかし詳細な設定は設定ファイルを作成するか編集して行う必要がある。 また、FTP 利用者向けに、ls 等のコマンド類を別途用意しなければならない。

wu-ftpd の主な設定ファイルは /etc/wu-ftpd-2.6.0/ に置かれる次の3つ。

ftpaccess
wu-ftpdの全体的な動作設定を行う。編集の必要あり。
ftpconversions
ファイルを圧縮して転送する際の圧縮モードの設定など。 ここでは特に編集する必要はない。
ftpusers
FTPアクセスを禁止するユーザアカウントを記述する。 特に編集する必要はない。

他に shutdoun.msg のファイルが /etc/wu-ftpd-2.6.0 に置かれる。 これは shutdoun 時の表示メッセージであるので特に編集する必要が無い。

pathmag、msg.toomany、welcome.msg の 3 ファイルを /etc/wu-ftpd-2.6.0/ に作成するとよい。 これらはログイン時などの表示メッセージのファイルであるので 無くても良い。ファイルの中身は、
green の /etc/wu-ftpd-2.6.0/shutdoun.msg
green の /etc/wu-ftpd-2.6.0/path.mag
green の /etc/wu-ftpd-2.6.0/msg.toomany
green の /etc/wu-ftpd-2.6.0/welcome.msg
である。

基本となる設定ファイルのサンプルは /home/green/wu-ftpd-2.6.0/doc/examples/ 以下に置かれている。 以下の手順で ftpaccess、ftpconversons、ftphosts、ftpgroups を /etc/wu-ftpd-2.6.0/ 以下にコピーしよう。

# cd /home/green/wu-ftpd-2.6.0/doc/examples/
# cp ftpaccess ftpconversions ftphosts ftpgroups /etc/wu-ftpd-2.6.0/
# cd /etc/wu-ftpd-2.6.0/
# chmod 444 *

また、以下のようにシンボリック・リンクを張っておく。

# ln -s /etc/ftpusers ftpusers

※他の設定ファイルと異なり、ftpusers を /etc/wu-ftpd-2.6.0/ に置かずにシンボリック・リンクを用意したのは、 前に利用していた wu-ftpd の debian パッケージの仕様に準じただけで、 それ以上の明確な理由はない。

(2.2.2) ftpaccess の編集

wu-ftpdの全体的な動作設定を行う。 「クラス定義」、「同時アクセス数」、 そして green では anonymous FTP サービスの設定が主な設定項目。

green の /etc/wu-ftpd-2.6.0

class
ユーザーのグループ化を行う。
構文:
class [クラス名] [タイプ名] [アドレス]

クラス名:
任意の名前
タイプ名:
クラスに含めるユーザーのグループ。 real、guest、anonymous を任意に指定する。
アドレス:
相手の IP・ドメインを指定する。

※green の場合
class all real,guest,anonymous *
したがって、クラス名"all"に"real,guest,anonymous"を含め、 "*"すなわちあらゆる場所からのアクセスを許可する。

limit
各種制限事項(同時アクセス数ならびに接続可能時間)を設定。
構文:
limit [クラス名] [同時アクセス数] [アクセス可能時間]  [アクセス不可時に表示するメッセージファイル]

クラス名:
制限を上記の class で定義したクラスが指定できる。

※green の場合
limit all 10 Any /etc/wu-ftpd-2.6.0/msg.toomany
したがってクラス"all"に対し同時に10人までのアクセスを許可する。 アクセス可能時間は制限しない。 アクセス不可時には /etc/wu-ftpd-2.6.0/msg.toomany の内容を表示する。

その他設定項目については man ftpaccess および各参考文献を参照のこと。

Anonymous FTP について
Anonymous FTP サービスとは不特定多数のユーザーを対象に ファイルの配信・受信を行うサービスであり、 サーバにアカウントを持っていない人でも サービスを受けることができるのが特徴だ。 一般的にネットワーク上でファイルのライブラリを 提供する FTP サーバの構築に用いられる。 アクセスの際、ユーザ名として"anonymous"又は"ftp"を、 パスワードには各人のメールアドレスを用いてログオンを行う。

※green の場合
Anonymous FTP に関して注意すべき設定は次の2ヶ所

1) Anonymous FTP ユーザのメールアドレスのチェック

# passwd-check <none|trivial|rfc822> [<enforce|warn>]
passwd-check rfc822 enforce

この行では Anonymous FTP ユーザがログイン時に入力する メールアドレスが rfc822 フォーマットに 適合する (有効なメールアドレスと考えられる)かどうかをチェックしている。

2) Anonymous FTP ユーザによるファイルアップロードの可否

# FTP-home-dir archiv-dir allow? owner group mode dirs?
# (as in /etc/passwd)
upload /home/ftp * no
upload /home/ftp /pub/incoming no ftp daemon 0666 nodirs

デフォルトの設定では anonymous FTP ユーザにも /home/ftp/pub/incoming ディレクトリには ファイルのアップロードができるようになっている。 これはセキュリティ上好ましくないので、"allow?" の列を "no" に変更してファイルのアップロードができないように設定している。

(2.2.3) その他、ディレクトリやファイルの作成や設定

■ ユーザ ftp の追加

Anonymous FTP 利用者は、一般の FTP 利用者と異なり、 サーバにアカウントを持っている必要がないことは先に述べた通りである。 コンピュータ側では Anonymous FTP 利用者を全てユーザ ftp として認識する。
デフォルトではユーザ ftp は用意されていないため、ここで追加する。 これはルート権限で行わなければならない。 具体的には、

$ sudo -s
# vipw

とし、/etc/passwd に以下のように書き加える。

ftp:x:77:80:Anonymous FTP user:/home/ftp:/bin/false

そして、上で追加したユーザ ftp が所属するグループを追定義する。
具体的には、

# vi /etc/group

とし、 ftp:x:80: を加える。

■ ディレクトリ等の作成

次に Anonymous FTP 利用者が利用することの出来るコマンドや設定ファイル、 そして Anonymous FTP 利用者向けに公開するディレクトリ (/home/ftp/pub)を作成する。

まずはディレクトリから。 ルート権限にて /home/ftp を作り、/home/ftp 以下に etc、pub を作る。 また、それらのパーミッションも以下のように変更する。

# mkdir /home/ftp
# chmod 555 /home/ftp
# mkdir etc
# chmod 111 etc
# mkdir pub
# chmod 555 pub

■ コマンド類の用意

続いて、コマンド類。 ここでは、cksum、compress、gzip、ls、md5sum、tar コマンドファイルを用意しよう。

これらは ftp.bin.linux.i386.tar.gz に圧縮して納められている。 ここでは ftp.bin.linux.i386.tar.gz は /home/green に置いておく。 green にスイッチユーザーして、/home/green で ftp.bin.linux.i386.tar.gz を展開する。

# su green
$ tar xvpzf ftp.bin.linux.i386.tar.gz

green のスイッチユーザーをやめる。 展開すると ftp/bin というディレクトリが生成され、 ftp/bin 以下に cksum、compress、gzip、ls、md5sum、tar ができる。 これらのファイルを /home/ftp/bin 以下にコピーする。

#cp ftp/bin/* /home/ftp/bin

コピーしたら、パーミッションをすべて 111 に変更する。

# chmod 111 /home/ftp/bin/*

■ /home/ftp/etc/ の整備

次はディレクトリ /home/ftp/etc 内に配置するファイルの設定を行う。 ここに置かれたファイルが実際に利用されることは、まずない。 セキュリティ上のダミーファイルである。 従って、本物の /etc/passwd や /etc/group と 内容が異なっているべきである。

/home/ftp/etc/passwd

# cd /home/ftp/etc
# vi passwd

として、

ftp:*:500:1:
bin:*:2:2:
root:*:0:3:

を書き加える。

/home/ftp/etc/group

# cd /home/ftp/etc
# vi group

として、

root::0:
staff:::

を書き加える。

そして今作った /home/ftp/etc/group、 /home/ftp/etc/passwd のパーミッションを変更しておく。

# chmod 444 *

※余談だが、上記の一連の設定を行うと、Anonymous FTP ユーザにとっては ディレクトリ /home/ftp/ が、ルート・ディレクトリ / であるかのように 見える。こうすることで余計なディレクトリを覗かれたりすることが防げる。 興味があれば chroot を調べてみること。


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