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