Dell Optiplex GXa Solaris 8  x86  6/00

戻る




wu_ftpd-2.6.1

後にこのwu_fptdはやめて、proftpdに変更した


TCP Wrapperでftpのセキュリティも強化しているが、このままではメンバーが自分のHP
を開設することが出来ない。
そこで、wu_ftpdをインストールすることにした。 但し、今回はAnonymousFTPサーバー
にはしない。また、TCP Wrapperも併用してメンバーが加入しているプロバイダからの接続
は許すようにし、各メンバーがFTPでログインした場合、自分のディレクトリのみが見える
ようにする。(chroot機能 → FTPでログインした場合のルートを
/expot/home/メンバー名 の中に限定する。)


必要なソフトウェア:
	wu-ftpd-2.6.1.tar.gz
	ftp://ftp.wu-ftpd.org/pub/wu-ftpd/

	
インストール:

既存のin.ftpdを上書きしてしまうことになるので、元のin.ftpdのバックアップを取っておく。
	$ cp  /usr/sbin/in.ftpd /usr/sbin/in.ftpd.bak

作業ディレクトリを作成する。
	$ mkdir /opt/src/wu_ftpd

アーカイブをダウンロードする。
	$ wget ftp://ftp.wu-ftpd.org/pub/wu-ftpd/wu-ftpd-2.6.1.tar.gz

解凍展開する。
	$ tar xozf wu-ftpd-2.6.1.tar.gz

展開されたディレクトリ内のsrc/makefilesディレクトリに移動する。
	$ cd wu-ftpd-2.6.1/src/makefiles

Makefile.sol をviで編集する。
	$ vi Makefile.sol

以下の部分を以下のように変更して保存する。
	CC		= gcc
	CFLAGS	= -02 ${IFLAGS} ${LFLAGS}

ディレクトリを移動する。
	$ cd ../../support/makefiles/

Makefile.sol をviで編集する。
	$ vi Makefile.sol

以下の部分を以下のように変更して保存する。
	CC		= gcc
	CFLAGS	= -02 ${IFLAGS} ${LFLAGS}

wu-ftpd-2.6.1直下に戻る。
	$ cd /opt/src/wu_ftpd/wu-ftpd-2.6.1

最適化させる。
	$ ./configure

SuperUserになる。
	$ su
	password:

インストールする。
	# make install


ユーザーディレクトリの準備
(以下の例は、既にユーザー test が /export/home/test として普通に作成済みの場合)

ユーザーディレクトリに移る。
	# cd  /export/home/test

ユーザーtestにsuする。
	# su test

以下のようにtestユーザー用のディレクトリを作成する。
	# mkdir public_html cgi-data

SuperUserに戻る。
	# exit

以下のようにディレクトリを作成する。
	# mkdir dev etc usr 

作成したusrディレクトリに移る。
	# cd usr

更にこの中に以下のディレクトリを作成する。
	# mkdir bin lib share 

作成したbinディレクトリのシンボリックリンクを/export/home/test/
直下に置く。
	# ln -s ./bin ../bin

binディレクトリに移る。
	# cd  bin

以下のように各ファイルをこの中にコピーする。
	# cp /usr/bin/compress ./
	# cp /usr/local/bin/gzip ./
	# cp /usr/ucb/ls ./
	# cp /usr/local/bin/tar ./

コピーした全てのバイナリのパーミッションを実行のみにする。
	# chmod 111 *

一つ上の階層に戻る。
	# cd ..

binディレクトリのパーミッションを555にする。
	# chmod 555 bin

libディレクトリに移る。
	# cd lib

以下のように各ファイルをこの中にコピーする。
	# cp /lib/ld.so.1 ./
	# cp /lib/libc.so.1 ./
	# cp /lib/libdl.so.1 ./
	# cp /lib/libmp.so ./
	# cp /lib/libmp.so.1 ./
	# cp /lib/libmp.so.2 ./
	# cp /lib/libnsl.so.1 ./
	# cp /lib/libsocket.so.1 ./
	# cp /lib/nss_compat.so.1 ./
	# cp /lib/nss_dns.so.1 ./
	# cp /lib/nss_files.so.1 ./
	# cp /lib/nss_nis.so.1 ./
	# cp /lib/nss_nisplus.so.1 ./
	# cp /lib/straddr.so ./
	# cp /lib/straddr.so.2 ./

一つ上の階層に戻る。
	# cd  ../

libディレクトリのパーミッションを555にする
	# chmod 555 lib

share ディレクトリに移る。
	# cd  share

この中に lib ディレクトリを作成する。
	# mkdir lib

作成したlibディレクトリに移る。
	# cd lib

この中に/usr/share/lib/zoneinfoをディレクトリごとコピーする。
	# cp ?r /usr/share/lib/zoneinfo ./

testディレクトリ直下に戻る。
	# cd ../../..

devディレクトリに移る。
	# cd dev

以下のようにこの中にデバイスを作成する。
	# mknod tcp c 0 0 
	# mknod ticlts c 2 0
	# mknod ticotsord c 1 0
	# mknod udp c 0 0
	# mknod zero c 12 0

一つ上の階層に戻る。
	# cd ..

etcディレクトリに移る。
	# cd etc

default ディレクトリを作成する。
	# mkdir default

作成したdefaultディレクトリに移る。
	# cd default

/etc/default/init をこの中にコピーする。
	# cp /etc/default/init ./

一つ上の階層に戻る。
	# cd ..

以下のようにこの中に各ファイルをコピーする。
	# cp  /etc/group  ./
	# cp  /etc/netconfig  ./
	# cp  /etc/passwd  ./

コピーしたpasswdファイルをviで開く。
	# vi passwd

test以外の一般ユーザーを削除して保存する。

コピーしたファイルのパーミッションを読み込みのみにする。
	# chmod 444 group netconfig passwd

/etc/passwd をviで開く。
	# vi /etc/passwd

ユーザーtestのディレクトリ指定を以下のように書き換えて保存する。
	test:x:1002:10::/export/home/test/./:/bin/sh


設 定:

ディレクトリを移動する。
	# cd /etc/fptd

見本の設定ファイルを、/etc直下にコピーする。
	# cp ftpaccess ../
	# cp ftpgroups ../
	# cp ftphosts ../
	# cp ftpusers ../

/etc直下に移る。
	# cd /etc

最も肝心な設定ファイル fptaccess をviで開いて編集する。
	# vi ftpaccess

以下のように変更して保存する。
	class   local   real  *
	class   staff  guest *
	limit   staff   3   Any              /etc/msgs/msg.dead
	loginfails 2
	guestgroup staff
	chmod yes real,guest
	delete yes real,guest
	overwrite yes real,guest
	rename yes real,guest
	umask yes real,guest
	compress yes real,guest
	tar yes real,guest
	ls yes real,guest
	readme  README*    login
	readme  README*    cwd=*
	message /welcome.msg            login
	message .message                cwd=*
	log commands real
	log transfers real inbound,outbound