wu-ftpd 2.4 for Solaris 2.5.1 ( SPARC ) - Install Log


目的: Solaris 2.5.1 SPARCwu-ftpをインストールし、Anonymous FTPを構築する。
その際、FTPのログを取得できるようにする。4/small>
資源: wu-ftpd-2.4.tar.gz
謫セ元: ftp.uu.net/networking/ftp/wuarchive-ftpd ( 192.48.96.9 )

01.ダウンロードしたアーカイヴファイルの展開
02.コンパイル
03.インストール
04.FTP設定ファイルのコピー
05.Anonymous FTP設定
06.動作確認


01.ダウンロードしたアーカイヴファイルの展開



#gunzip wu-ftpd-2.4.tar.gz
#tar xvf wu-ftpd-2.4.tar

[GO TO TOP]

 

02.コンパイル(Cシェルで行う。SuperUserでないこと。パスを通しておく。)

%In -s . arpa
%setefv LANG C
%./build sol

%setenv LANG Cはコンパイル時の環境変数がftpdのメッセージに影響を及ぼす為です。
Solarisのデフォルトはjaになっているため、これをやっておかないとftp<'font>で接続したときに「デーモンの作成時刻」が日本語で表示され、クライアントによっては文字化けしてしまう。

%vi makefiles/Makefiles.sol

Makefilesを編集することによってftpdのインストール先などを変更することができます。
デフォルトのままでもよければ変更する必要はありません。

BINDIR=/usr/local/sbin
MANDIR=/usr/local/man
 など。

編集したMakefiles.solはファイル名をMakefileに変え、一つ上のディレクトリっコピーする。

[GO TO TOP]

 

03.インストール

#build install

Makefileで指定したディレクトリへftpdとマニュアルがそれぞれインストールされます。
これ以降の行はrootで行います。

[GO TO TOP]

 

04.FTP設定ファイルのコピー

#cp doc/example/ftpaccess /etc
#cp doc/example/ftpusers /etc
#cp doc/example/ftpconversions.solaris /etc/ftpconversions
#cp doc/example/ftphosts /etc
#cp doc/example/ftpgroups /etc

ここでコピーしたファイルを編集することによって、FTPをカスタマイズすることが可能です。
それぞれのファイルについて簡単に説明します。

ftpaccessファイル
ユーザのクラスと、クラスメンバーのアーカイブへのアクセスを定義し、どのようなメッセージをいつ表示するかをコントロールし、ftpdの多岐にわたり雑多な細部にわたる振る舞いを制御します。

ftpusers
特定のアカウントをもつユーザからのアクセスを拒否することができます。

ftpconversionsファイル
アーカイブファイルの拡張子を元に行われるファイルの自動処理機構をサポートします。

ftphostsファイル
アクセスしてくるホストを制限することができます。

ftpgroupsファイル
グループによってアクセス制限をすることができます。

[GO TO TOP]

 

05.Anonymous FTP設定

#useradd -u 230 -d /export/ftp ftp

anonymous ftpを許可するためにftpというアカウントを新規に作成します。
ユーザID(230)は適当につけてください。ftpとして提供するディレクトリはここでは/export/ftpになっていますが、それぞれの環境にあわせて変更して下さい。

#mkdir ~ftp/bin ~ftp/usr ~ftp/usr/lib ~ftp/dev ~ftp/etc

anonymous ftpでは、認証後、「~ftp」にchrootするので、「~ftp」以下に仮想的な「/」を作成しておく必要があります。

#vi ~ftp/etc/passwd

そのための設定として、passwdファイルも必要となります。/etc/passwdをそのまま利用するのは危険なので、rootftpだけ残し、後で削除します。

例)
root:x:0:1::/:/sbin/sh
ftp:x:230:23::/export/ftp:/sbin/sh

#cp /bin/ls /bin/compress ~ftp/bin

anonymous ftpで利用するバイナリを用意します。

#cp /usr/lib/libw.so.1 /usr/lib/libintl.so.1 /usr/lib/libc.so.1 /usr/lib/libdl.so.1 /usr/lib/ld.so.1 ~ftp/usr/lib

最低限、これだけのライブラリを必要としますので、それらをコピーします。

#chmod -R 111 ~ftp/bin

パーミッションを変更。

#cd ~ftp/dev

デバイスを作成する場所へ移動。

#mknod udp c 11 41

udpデバイスの作成。ここで指定している11(メジャー番号)と41(マイナー番号)はsodarisの値です。
他のOSの場合、lsを使用し本腹(/dev/udp)の番号を調べて下さい。

例)
#ls -lL /dev/udp
crw-rw-rw- 1 root sys 11,41 12
121997/dev/udp

4font face="Verdana" color="#FF8000">#mknod tcp c 11 42
#mknod zero c 13 12
#chmod go+w udp tcp zero

同様にtcpzeroも作成します。最後にパーミッションを設定します。

#vi /etc/inetd.conf

inetd経由で呼び出されるように、inetd.confファイルを編集します。

例)
省略
ftp stream tcp nowait root /usr/local/sbin/in.ftpd in.ftpd -a -l -o -i
省略

コマンドライン・オプション

-d : syslogへデバッグ情報を送ります。
-a : ftpaccessファイルの使用を許可します。
-A : ftpaccessファイルの使用を不可にします。
-L : ftpdUSERユーザ名の特定・変更の際に用いられるすべてのUSERコマンドを記録します。
-i : ftpdはすべてのアップロードされるファイルをxferlogファイルに記憶します。
-o : ftpdはすべてのダウンロードされるファイルをxferlogファイルに記憶します。

その他のオプションも存在します。<'small>

#ps -ef | grep inetd

inetdのプロセスIDを調べます。

root 131 1 0 918?0:02 /usr/sbin/inetd -s<'font>

#kill -HUP 131

変更を有効にする為に、inetdHUPシグナルを送ります。

[GO TO TOP]

 

06.動作確認

#ftp localhost

動作確認をします。4br> anonymousアカウント、ftpアカウントでのログイン、コマンドの使用、ホームディレクトリを確認します。
ログを取得するようにオプションをつけた場合、ログが記憶されているかどうか確認します。

例)
通常、/var/log/ftpd/xferlogに作成されます。
見つからない場合はxferlogfind
してください。

[GO TO TOP]