FTPサーバ

インストール

通常、FTPサーバは、なにもしなくても標準でインストールされます。細かいアクセス制御をするためには、wu-ftpdをインストールする必要があります。今回は、portsを利用します。

パッケージを使用する場合。

よくわかりませんが、たぶん、パッケージをダウンロードしてきてpkg_addすればできあがり。パッケージは、packages/ftp/wu-ftpにあったと思います

# pkg_add wu-ftpd-2.5.0.tgz

portsを使用する場合。

/usr/ports/net/wu-ftpdのディレクトリを削除して、最新のportsのディレクトリをダウンロードしてきます。そして、wu-ftpd.-2.5.0.tar.gzをダウンロードしdistfilesにコピーし、portsのディレクトリに移動しインストールします。

# cd /usr/ports/net/wu-ftpd
# make install

anonymousFTPの設定

ディレクトリの作成

/home/ftpをanonymousユーザのホームディレクトリとして作成します。

# mkdir /home/ftp

他に必要なディレクトリを作成します。pubは公開するファイルを置くディレクトリです。binは、lsコマンドをコピーします。

# mkdir /home/ftp/pub
# mkdir /home/ftp/bin
# mkdir /home/ftp/etc

ftpアカウントの作成

/stand/sysinstallでアカウントを作成します。

「configure」→「networking」→「Anon FTP」を選択するとユーザ登録画面になります。このとき、FTP Root Directryには、/home/ftpを指定します。ウェルカムメッセージを作成するかどうか聞いてきますが、あとで作れるのでここでは、「no」を選択します。

設定ファイル

/etc/inetd.conf

通常、なにも変更しなければ、標準のFTPサーバが起動されますので、/etc/inetd.confの次の行を修正します。

ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l

の行を以下のように変更します。

ftp stream tcp nowait root /usr/local/libexec/ftpd ftpd -al

これで、標準のftpからwu-ftpに変わります。

/usr/local/etc/ftpaccess

とりあえず、このファイルだけあればよいです。ftpaccess.exampleをそのまま使用できます。

/usr/local/etc/ftpusers

アクセスを禁止したいユーザを指定します。あらかじめ設定されていますので、特に変更する必要もないでしょう。このファイルは無くてもよいです。

/usr/local/etc/ftpconversions

ファイル転送時のファイル圧縮と展開を定義するファイルです。そのまま使いましょう。

いろいろな設定

そのマシンにアカウントのある人が wu-ftpdにログインした場合の自分のディレクトリの上位や他のユーザー領域へのアクセス制限をする。

これは、先ほど設定したftpaccessにguestgroup定義を1行を追加すると実現できます。class定義のすぐ後に追加すると良いでしょう。

guestgroup users

このusersは、このマシンのアカウントを追加するときに指定したユーザグループです。複数指定する事もできます。その場合は","で区切って羅列します。

設定そのものはこれで良いのですが、このままだとdirectoryの情報を取得することができません。つまり、FTPソフトをつかってアクセスした場合、ログインは成功するのですが、画面になにも表示されない状況に陥ってしまいます。これは通常ftpは/bin/lsを使ってdirectory情報を表示していますが、この場合は、/home/user1が/となっていますので、当然、/home/user1/bin/lsを使ってdirectory情報を表示しようとして、lsがないためになにも表示されないので、/home/user1/binにlsをコピーします。

cp /bin/ls /home/user1/bin/

ユーザのホームディレクトリを作るときにデフォルトでコピーするように設定する事もできます。ユーザのアカウントを作成するときの標準の設定をしておけばよいです。