Turbolinux 10 Server の /etc/proftpd/proftpd.conf には、すでに匿名 FTP サイトを公開するための設定が記述されています。以下のように、<Anonymous ~ftp> と </Anonymous> で囲まれた箇所が匿名 FTP サイトを公開するための記述です。ただし、初期設定では匿名 FTP サイトは機能していません。以下で解説する手順に従い、匿名 FTP サイトを有効にする必要があります。設定ファイルについては 項11.4 もあわせて参照してください。
<Anonymous ~ftp>
User ftp
Group ftp
UserAlias anonymous ftp
#RequireValidShell off
MaxClients 10 "Sorry, max %m users -- try again later"
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Limit WRITE>
DenyAll
</Limit>
</Anonymous> |
匿名 FTP サイトを有効にするには、RequireValidShell ディレクティブの値を off に設定します。初期設定ではコメントにされていますので、以下のようにコメントをはずします。
RequireValidShell off |
次に変更を反映するために proftpd を再起動します。
# /etc/init.d/proftpd restart |
これで、匿名 FTP サイトへのアクセスが有効になりました。FTP クライアントで匿名 FTP サーバーへログインするには、ユーザー名に anonymous または ftp 、パスワードには慣例として E-mail アドレスを入力します。以下は、lftp クライアントでログインした例です。
$ lftp ftp@ftp.example.com Password: lftp ftp@ftp.example.com:~> ls drwxr-x--- 2 ftp ftp 4096 Aug 3 16:38 incoming dr-xr-x--- 2 ftp ftp 4096 Aug 3 16:38 pub |
![]() | ユーザーのログインディレクトリは、/var/ftp となります。proftpd は、このディレクトリに chroot するため、匿名 FTP サイトにログインしたユーザーは、/var/ftp ディレクトリがルートディレクトリに見えます。 |
もし、匿名 FTP サイトだけを提供したいのであれば、server config コンテキストに以下の Limit ディレクティブを記述します。
<Limit LOGIN> DenyAll </Limit> |
次に、Anonymous ディレクティブ内に以下の Limit ディレクティブを記述します。
<Limit LOGIN> AllowAll </Limit> |
これにより、Turbolinux 10 Server にアカウントを持つユーザーであっても、自分のホームディレクトリへのログインは拒否されるようになります。
その他、Anonymous ディレクティブで使用されているディレクティブの意味は以下の通りです。
匿名 FTP サイトとして公開するルートディレクトリを root-directory に指定します。~ を記述した場合は、続くユーザーのホームディレクトリを意味します。この例では、~ftp と指定されていますので、ftp ユーザーのホームディレクトリをあらわします。Turbolinux 10 Server の /etc/passwd ファイルには以下のように記述されているため、/var/ftp ディレクトリが 匿名 FTP サイト のルートディレクトリとなります。
ftp:x:14:50:FTP User:/var/ftp: |
ProFTPD のサーバープロセスを実行するユーザーとグループを指定します。この例では、ftp と指定されていますので、ユーザーが匿名 FTP ユーザーでログインすると、proftpd デーモンの UID と GID は ftp に切り替わります。
システムに存在するユーザーに対するエイリアスを指定することができます。login-user で指定したユーザー名で FTP サーバーにログインすると、あたかも実際のユーザーである userid でログインしたかのように動作します。この例では、ftp ユーザーに anonymous というエイリアスを定義していますので、anonymous ユーザーで匿名 FTP サイトへログインできるようになります。
ProFTPD の初期設定では、ユーザーのログインシェルが /etc/passwd に設定されていなければログインを拒否しますが、この設定を off にするとログインは許可されます。初期設定ではコメントになっていますので、匿名 FTP サイトを有効にするにはコメントを外します。
Anonymous FTP サーバーへログインすることが可能なクライアントの最大数を指定しています。Turbolinux 10 Server の初期設定では、10 が指定されています。この数を超えるクライアントがログインを試みたときには、以下のメッセージを表示し切断します。
Sorry, max 10 users -- try again later |
ユーザーがログインしたときに表示するメッセージを記述したテキストファイル名を指定します。初期設定は、/var/ftp/welcome.msg です。
ディレクトリを変更したときに表示するメッセージを記述したテキストファイル名を指定します。初期設定は、.message です。
Limit ディレクティブは、FTP コマンドにアクセス制限をかけるために使用します。この例では、ディレクトリへの書き込みを完全に拒否する設定をしています。Limit ディレクティブについては、項11.4.3 を参照してください。
匿名 FTP サイトを有効にすると、Anonymous ディレクティブの指定に従い、ftp ユーザーのホームディレクトリ /var/ftp がルートディレクトリとして公開されます。Turbolinux 10 Server では、このディレクトリに以下 2 つのディレクトリがあらかじめ存在しています。
drwxr-x--- 2 ftp ftp 4096 Aug 3 16:38 incoming dr-xr-x--- 2 ftp ftp 4096 Aug 3 16:38 pub |
この中で、incoming ディレクトリは、匿名 FTP ユーザーにファイルのアップロードを許可するディレクトリとして使用されることがあります。一般的には、不特定多数のユーザーにファイルのアップロードを許可することはありませんが、必要に応じて、このディレクトリを利用することも可能です。ただし、Turbolinux 10 Server の初期設定では、/var/ftp ディレクトリに対する書き込みは全て禁止されていますので、アップロードを許可するには、以下のような設定を /var/ftp/incoming ディレクトリに対して行う必要があります。
<Anonymous ~ftp>
省略...
<Limit WRITE>
DenyAll
</Limit>
<Directory incoming/*>
<Limit READ>
DenyAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory>
</Anonymous> |
<Directory incoming/*> で incoming ディレクトリに対する設定を行うことを定義しています。そして、この Directory ディレクティブの中にある最初の Limit ディレクティブでは、ファイルの読み出しを行う FTP コマンド(READ)を全て拒否しています。しかし、次の Limit ディレクティブでファイルのアップロード(STOR)に関するコマンドを許可しています。したがって、この設定例では、匿名 FTP ユーザーが incoming ディレクトリへファイルをアップロードすることを可能にしますが、incoming ディレクトリにアップロードされたファイルを読み出す権限までは与えていないことになります。