Turbolinux 11 Server の /etc/proftpd.conf には、すでに匿名 FTP サイトを公開するための設定がコメントとして記述されています。以下のように、<Anonymous ~ftp> と </Anonymous> で囲まれた箇所が匿名 FTP サイトを公開するための記述です。ただし、初期設定では匿名 FTP サイトは機能していません。解説する手順に従い、匿名 FTP サイトを有効にする必要があります。設定ファイルについては 項12.4 もあわせて参照してください。
<Anonymous ~ftp>
User ftp
Group ftp
AccessGrantMsg "Anonymous login ok, restrictions apply."
RequireValidShell off
UserAlias anonymous ftp
MaxClients 10 "Sorry, max %m users -- try again later"
DisplayLogin /welcome.msg
DisplayFirstChdir .message
DisplayReadme README*
DirFakeUser on ftp
DirFakeGroup on ftp
<Limit WRITE SITE_CHMOD>
DenyAll
</Limit>
WtmpLog off
ExtendedLog /var/log/proftpd/access.log WRITE,READ default
ExtendedLog /var/log/proftpd/auth.log AUTH auth
</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: drwxr-xr-x 4 ftp ftp 4096 Nov 6 06:00 . drwxr-xr-x 4 ftp ftp 4096 Nov 6 06:00 .. drwxr-xr-x 2 ftp ftp 4096 Oct 19 10:59 pub d-wx-wx--x 2 ftp ftp 4096 Nov 14 00:52 uploads -rw-r--r-- 1 ftp ftp 224 Jun 19 09:34 welcome.msg |
![]() | ユーザーのログインディレクトリは、/var/ftp となります。proftpd は、このディレクトリに chroot するため、匿名 FTP サイトにログインしたユーザーは、/var/ftp ディレクトリがルートディレクトリに見えます。 |
もし、匿名 FTP サイトだけを提供したいのであれば、server config コンテキストに以下の Limit ディレクティブを記述します。
<Limit LOGIN> DenyAll </Limit> |
次に、Anonymous ディレクティブ内に以下の Limit ディレクティブを記述します。
<Limit LOGIN> AllowAll </Limit> |
これにより、Turbolinux 11 Server にアカウントを持つユーザーであっても、自分のホームディレクトリへのログインは拒否されるようになります。
その他、Anonymous ディレクティブで使用されているディレクティブの意味は以下の通りです。
匿名 FTP サイトとして公開するルートディレクトリを root-directory に指定します。~ を記述した場合は、続くユーザーのホームディレクトリを意味します。この例では、~ftp と指定されていますので、ftp ユーザーのホームディレクトリをあらわします。Turbolinux 11 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 11 Server の初期設定では、10 が指定されています。この数を超えるクライアントがログインを試みたときには、以下のメッセージを表示し切断します。
Sorry, max 10 users -- try again later |
ユーザーがログインしたときに表示するメッセージを記述したテキストファイル名を指定します。初期設定は、/var/ftp/welcome.msg です。
ディレクトリを変更したときに表示するメッセージを記述したテキストファイル名を指定します。初期設定は、.message です。
Limit ディレクティブは、FTP コマンドにアクセス制限をかけるために使用します。この例では、ディレクトリへの書き込みを完全に拒否する設定をしています。Limit ディレクティブについては、項12.4.3 を参照してください。
匿名 FTP サイトを有効にすると、Anonymous ディレクティブの指定に従い、ftp ユーザーのホームディレクトリ /var/ftp がルートディレクトリとして公開されます。Turbolinux 11 Server では、このディレクトリに以下 2 つのディレクトリがあらかじめ存在しています。
drwxr-xr-x 2 root root 4096 2007-10-19 19:59 pub/ d-wx-wx--x 2 ftp ftp 4096 2007-11-14 09:52 uploads/ |
この中で、uploads ディレクトリは、匿名 FTP ユーザーにファイルのアップロードを許可するディレクトリとして使用されることがあります。一般的には、不特定多数のユーザーにファイルのアップロードを許可することはありませんが、必要に応じて、このディレクトリを利用することも可能です。Turbolinux 11 Server の初期設定では、以下の記述がコメントとして用意されています。アップロードを許可するには、 <Directory uploads/*> から </Limit> のコメント記号を削除します。
<Anonymous ~ftp>
省略...
<Limit WRITE>
DenyAll
</Limit>
<Directory uploads/*>
AllowOverwrite no
<Limit READ>
DenyAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory>
</Anonymous> |
<Directory uploads/*> で uploads ディレクトリに対する設定を行うことを定義しています。そして、この Directory ディレクティブの Limit ディレクティブでは、ファイルの読み出しを行う FTP コマンド(READ)を全て拒否しています。しかし、次の Limit ディレクティブでファイルのアップロード(STOR)に関するコマンドを許可しています。したがって、この設定例では、匿名 FTP ユーザーが uploads ディレクトリへファイルをアップロードすることを可能にしますが、uploads ディレクトリにアップロードされたファイルを読み出す権限までは与えていないことになります。