ProFTPD
ProFTPDについて
- ProFTPDは、Apache等との組み合わせで使いやすいFTPサーバです。FreeBSDに付属のFTPサーバーを使用しても単純なanonymous ftpサービスを実現することができますが、より高機能なサーバを目指します。また、他にWu-FTPDが有名ですが設定がProFTPDに比べると難しそうなので、ここではProFTPDを使用しました。インフォサイエンスのProFTPD日本語訳のページが参考になります。
ProFTPDのインストール
- まず、ProFTPDのページから最新版のtarballをダウンロードします。
・proftpd-1.2.4.tar.gz(2002年2月6日時点の最新版)
- 以下の手順でインストールします。
% tar zxvfp proftpd-1.2.4.tar.gz
% cd proftpd-1.2.4
% ./configure
% make
% su
# make install
|
ProFTPDの設定(/usr/local/etc/proftpd.conf)
- ProFTPDの設定ファイル「/usr/local/etc/proftpd.conf」は、以下の様にしました。注記以外はデフォルトのままです。「Group」はLinux等に合わせて、nobodyに変更しました。ユーザのホームディレクトリ以外にアクセスできない様に「DefaultRoot」の設定を追加しました。
【/usr/local/etc/proftpd.conf】
# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.
ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
# Port 21 is the standard FTP port.
Port 21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User nobody
Group nobody <--nogroupから変更
# Normally, we want files to be overwriteable.
<Directory /*>
AllowOverwrite on
</Directory>
# A basic anonymous configuration, no upload directories.
<Anonymous ~ftp>
User ftp
Group ftp
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Limit the maximum number of anonymous logins
MaxClients 10
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayFirstChdir .message
# Limit WRITE everywhere in the anonymous chroot
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
DefaultRoot ~ <--追加
|
- 「/etc/ftpusers」に記述されているユーザはログインできません。私の場合は、以下の様になっていました。
【/etc/ftpusers】
# $FreeBSD: src/etc/ftpusers,v 1.6 1999/08/27 23:23:41 peter Exp $
#
# list of users disallowed any ftp access.
# read by ftpd(8).
root
toor
daemon
operator
bin
tty
kmem
games
news
man
bind
uucp
xten
pop
nobody
|
ProFTPDの起動と停止
- ProFTPDの起動は、スーパーデーモン(inetd)経由で起動する方法と、スタンドアロンで起動する方法がありますが、ここでは、スタンドアロンで起動する場合を示します。以下のコマンドで起動します。
% su
# /usr/local/sbin/proftpd
|
- 正常に起動された場合のプロセス状態は以下の様になります。
# ps ax | grep proftpd
628 p0 S+ 0:00.01 proftpd: proftpd (accepting connections) (proftpd)
|
- デバッグオプションを付けて起動すると、エラーメッセージを含む状態を表示する事ができます。起動後にクライアントからの接続を行った場合の表示は、以下の様になります。
# /usr/local/sbin/proftpd -n
taro.home - ProFTPD 1.2.4 (release) (built 2002年 2月 6日 水曜日 23時56分10秒 JST) standalone mode STARTUP
taro.home (hiroshi.home[192.168.0.2]) - FTP session opened.
taro.home (hiroshi.home[192.168.0.2]) - PAM(hnakamur): Permission denied.
taro.home (hiroshi.home[192.168.0.2]) - USER hnakamur: Login successful.
|
- ProFTPDを停止するには、killコマンドを実行します。
クライアントからのアクセス
- WindowsのFTPクライアントFFFTPからサーバに接続してみました。FFFTPの接続状況の表示は以下の様になりました。
ホスト taro を探しています.
ホスト taro (192.168.0.4 (21)) に接続しています.
接続しました.
220 ProFTPD 1.2.4 Server (ProFTPD Default Installation) [taro.home]
>USER hnakamur
331 Password required for hnakamur.
>PASS [xxxxxx]
230 User hnakamur logged in.
>>CD B:\Upload
>CWD /public_html
250 CWD command successful.
>PWD
257 "/public_html" is current directory.
|
注意
- FreeBSD附属のFTPサーバが起動される設定になっている場合は、それが起動されない様にします。「/etc/inetd.conf」のftp行に#を付加してコメントにします。
【/etc/inetd.conf 修正部分】
#ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
|
ちなみにFreeBSD附属のFTPサーバにクライアントから接続すると、以下のメッセージが返ってきました。
ホスト taro を探しています.
ホスト taro (192.168.0.4 (21)) に接続しています.
接続しました.
220 taro.home FTP server (Version 6.00LS) ready.
|
- ProFTPDを起動した時に、接続が拒否されてしまう事がありました。表示されるメッセージによると「/etc/shutmsg」が存在すると、全ての接続を拒否する様です。その場合は「/etc/shutmsg」を削除するとOKになりますが、「/etc/shutmsg」が作成される原因はよく判りません。
# /usr/local/sbin/proftpd -n
taro.home - ProFTPD 1.2.4 (release) (built 2002年 2月 6日 水曜日 23時56分10秒 JST) standalone mode STARTUP
taro.home - /etc/shutmsg present: all incoming connections will be refused.
# rm /etc/shutmsg
|
トップへもどる
Copyright (c) 2002 Hiroshi Nakamura. All rights reserved.
|
|