Wu-ftpdインストール方法
※以下のほとんどの設定作業はスーパーユーザによって行われる必要があります。(スーパーユーザになる方法はこちら)
1.手順の概要
ここで解説するのは、インストール方法です。具体的には、
webで最新バージョンの確認・同FTP上よりソースファイルの入手
インストール
inetdエントリを変更
inetdの再起動
という手順となります。
2.最新版の確認
最新バージョンを確認します。例えば、次の場所で最新版の情報を入手できます。
http://www.wu-ftpd.org/
今回は、このサイトよりソースファイルを入手することとします。
3.ソースファイルのダウンロード
wu-ftp公式サイトよりソースファイルをダウンロードします。
●FTPサーバーと目的のディレクトリは ftp://ftp.wu-ftpd.org/pub/wu-ftpd/ です。
●ダウンロードするディレクトリは /usr/local/src/distfiles です。
●目的のファイルは wu-ftpd-2.6.0.tar.gz です。
なおこれらのディレクトリは存在しない場合があります。その場合には、mkdirコマンド(説明はこちら)で作成してください。
以上を踏まえた上で、こちらをご覧下さい。
無事作業が終了すると、/usr/local/src/distfiles/に wu-ftpd-2.6.0.tar.gz というソースファイルがダウンロードされます。
4.ソースファイルの解凍
/usr/local/src で、ソースを展開します。
4-1.ディレクトリを移動します。
4-2.圧縮されたファイルを展開します。
# tar -zxf ./distfiles/wu-ftpd-2.6.0.tar.gz
|
ここまでの作業で、/usr/local/src/wu-ftpd-2.6.0/ 以下にソースが展開されます。
5.コンパイルとインストール
展開されたソースをコンパイルして、configure ファイルに従って所定の場所にコピーします。
5-1.ソースが展開されたディレクトリへ移動します。
5-2.インストール先が/usr/local以下になるようにconfigureをします。
# ./configure --prefix=/usr/local
|
5-3.前述のconfigureにしたがって、コンパイルします。
5-4.コンパイルされたファイルをインストールします。
次は設定ファイルです。
6.設定ファイルのコピー
wu-ftpd が使用する様々なコンフィギュレーションファイルは、元となるものが
「 /usr/src/wu-ftpd-2.6.0/doc/exmaples 」に用意されています。これを「 /etc 」以下のディレクトリにコピーします。
# cd doc/examples
# cp ftpaccess ftpconversions ftpusers /etc
ftpaccess、ftpconversions、ftpusers の各ファイルを /etc 以下にコピーしています
|
7.各設定ファイルの内容を変更
wu-ftpd の動作を設定するために、いくつかの設定ファイルが用意されています。ここではFTPを運用していくにあたり、最低限設定しておいたほうがよいであろう、ftpaccess と、 ftpconversions、ftpusers の各設定ファイルについて説明します。
7-1.ftpaccessファイル
wu-ftpd の動作を決める設定ファイルです。ここではユーザーやグループごと、あるいは特定IPからの接続に対して様々な制限をかけたり、応答メッセージなどを記述したファイルを指定したりできます。ディレクトリ /etc に置かれています。
(ftpaccessファイルについて詳細な説明はこちら)
例えば、全てのユーザーを guest に設定し、その中でも ken というユーザーは real に、グループ admin と tech も同様に real にしたい場合は、以下のような記述を追記します。
guestuser *
realuser Ken
realgroup admin,tech
※guestグループに入れられたユーザはアクセスした時、homeディレクトリにchrootされてしまうので、/bin/ls が見えなくなってしまいます。
そのため、各ユーザのhomeディレクトリに /bin を作成し、その下に ls をコピーします。(下囲み参照)こうしないと、ls コマンドが使えません。
|
# cd [目的のホームディレクトリ]
# mkdir bin
# cd bin
# cp /usr/bin/ls ./
|
7-2.ftpconversionsファイル
ファイルをダウンロードする際、tar や gzip などで自動アーカイブできます。これら変換プログラムの設定をこのファイルで行います。
ftpaccessと同じ /etc に置かれています。
ftpconversionsの内容:
:.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
: : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
:.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
: : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
: : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
: : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
: : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
: : :.crc:/bin/cksum %s:T_REG::CKSUM
: : :.md5:/bin/md5sum %s:T_REG::MD5SUM |
パスとプログラム、起動オプションなどの設定が記述してあります。ここに記述されているプログラムパスを /bin から /usr/bin/ に変更します。
変更後のftpconversions:
:.Z: : :/usr/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
: : :.Z:/usr/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
:.gz: : :/usr/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
: : :.gz:/usr/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
: : :.tar:/usr/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
: : :.tar.Z:/usr/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
: : :.tar.gz:/usr/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
: : :.crc:/usr/bin/cksum %s:T_REG::CKSUM
: : :.md5:/usr/bin/md5sum %s:T_REG::MD5SUM |
7-3.ftpusersファイル
このファイルには、ftpアクセスできないユーザー名を記述します。
外部とやりとりする必要がない、(またはやりとりさせたくない)重要なデーモンやユーザーなどは、セキュリティの為にFTPアクセスができないように設定するのが普通です。
ファイル ftpusers の内容:
# $Id: ftpusers,v 1.3.2.1 1998/09/03 22:14:37 brian Exp $
#
# list of users disallowed any ftp access.
# read by ftpd(8).
root
toor
daemon
operator
bin
・
・
・ |
8.inetd.conf の設定記述変更
wu-ftpd は inetd が動作管理をしており、ftpポートにアクセスがあった場合、ftpd を起動します。そのため inetd の動作を設定する、inetd.conf を編集しなければなりません。
# cd /etc
# vi inetd.conf
・
・ファイルの内容が表示される
・
# $Id: inetd.conf,v 1.23.2.6 1998/09/03 22:14:37 brian Exp $
#
# Internet server configuration database
#
# @(#)inetd.conf 5.4 (Berkeley) 6/30/90
#
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
この行がFTP用の記述
telnet stream tcp nowait root /usr/libexec/telnetd telnetd
・
・ |
上記FTP用記述文をコメントアウト(#マークを行頭につけて、コメント行にすること)して、新しいFTPの設定行を追記します。
・
・
・
# $Id: inetd.conf,v 1.23.2.6 1998/09/03 22:14:37 brian Exp $
#
# Internet server configuration database
#
# @(#)inetd.conf 5.4 (Berkeley) 6/30/90
#
#ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
この行をコメントアウト
ftp stream tcp nowait root /usr/local/sbin/in.ftpd in.ftpd -a
この行(wu-ftpd用の記述)を追加
telnet stream tcp nowait root /usr/libexec/telnetd telnetd
・
・ |
9.inetd の再起動
intedにHUPシグナルを送り、再起動します。
10.動作確認
実際に使ってみて、正しく動いているかを確認します。
お客様のユーザー名は test、現在のカレントディレクトリは /home/test であると仮定して、以下をお読みください。
まず、test 1、test2 という2つのディレクトリを作ります。これは、自動アーカイブ機能のテスト時に使います。
ディレクトリが作れたらいくつか適当なファイルを、 test1 に cp コマンド(使い方はこちら)でコピーしてください。
その後、/home/test/test2 にカレントディレクトリを移します。
次にwu-ftpd を使って、ローカルホスト(127.0.0.1)に接続します。
お客様は、wu-ftp で real ユーザーとして定義されているものとします。
# ftp localhost
220 www FTP server (Version wu-2.6.0(1) Wed Nov 24 11:44:53 JST 1999) ready.
Name (localhost:test):test
331 Password required for test.
Password:XXXXX (お客様のこのサーバ上のPASSWORDを入れてください。)
230- it was last modified on Wed Nov 24 23:57:11 1999 - 2 days ago
230 User test logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
|
ftp> プロンプトが出れば、ログイン成功です。
問題がなければ、自動アーカイブ機能のテストをします。
ftp> get ./test1.tar.gz
local: ./src.tar.gz remote: ./.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for /usr/bin/tar.
自動圧縮しています
226 Transfer complete.
###### bytes received in 2.46 seconds (542.63 KB/s)
|
以上のように表示されれば成功です。
ctrl-D を入力して、wu-ftpサーバーからログアウトしてください。
|