#
# ftpaccess - アクセス制限定義ファイル
# 参考:http://www.nspl.co.jp/Solaris/Internet/wu_ftp.htm
#       http://www.geocities.co.jp/SiliconValley-SanJose/2264/ftpaccess5.html
#
# ・ここに載っていないオプションは ftpaccess(8) で見ることが出来ます.
# ・このファイルは断り無しに自由に配布してもらってかまいません.
# ・どこから拾ってきたかの記載も強要しませんのでご自由にどうぞ.
#

## 書式:class  クラス定義名  タイプリスト(real,anonymous,guest)  接続元(ここに書かれたアドレスのみ接続を可能にする)
# user クラスを作成. 実アカウントを持ち接続元は問わない.ここで guest も追加しておかないと下の guestgroup で chroot できないので注意.
class   user   real,guest  *
# anon クラスを定義. anonymous アカウントを含み接続元は問わない
class   anon   anonymous   *


## ログオン上限を設定します.
## 
## 書式:limit  クラス定義名  制限人数  時刻  制限に引っかかったときのメッセージファイル
## 
## 時刻 は "開始hhnn-終了hhnn" で指定.
## 曜日を含む場合は 「Su」「Mo」「Tu」「We」「Th」「Fr」「Sa」で日曜から土曜が指定可能.
## 土日以外を指定する場合は「Wk」で代用.
## 曜日と時間の組み合わせも可能で,そのときは
##     SaSu2300-2500 (土日の23時~深夜1時)
## とすることが可能.
# anon クラス定義名のユーザーは上限 x人.常時定義でメッセージは /etc/msgs/msg.dead
limit  anon  6  Any  /etc/msgs/msg.dead


## TCP Window サイズを決定します.(注意) 単位が byte でないことに注意!
## 800で 4,000byte ほど,100で 500byte,5 で 20byte ほど出ます.
# tcpwindow   制限 TCP Window サイズ   クラス定義名
tcpwindow 750 anon


## ダウンロード速度を制限します.
## 速度制限は tcpwindow オプションでも指定できますが,throughput オプションはダウンロードのみの制限を行います.
## 
## 書式:throughput   制限するディレクトリルート   制限するサブディレクトリ   制限するファイル   転送速度(Byte/Sec)   倍率   制限対象ドメイン
##
## ・制限するディレクトリルートは,制限するサブディレクトリが格納されている上位のディレクトリを指定します.
## ・制限するサブディレクトリは,転送速度を制限するサブディレクトリを指定します./ を忘れずに.
## ・制限するファイルは,転送速度を制限するファイル名を指定します.
## ・転送速度は,上限転送速度を指定します.単位は バイト/秒.oo (半角小文字 オー 2個) は無制限を示します.
## ・倍率は,ファイルをダウンロードするごとにこの値が転送速度にかけ算されます.通常は - でいいでしょう.
## ・制限対象ドメインは,このドメインに属するユーザーのみ制限をかけるというものです.
# デフォルトは制限無し
throughput   /usr/ftp   *       *         oo     -     *
# /usr/ftp/pub* 以下全て 3096byte/s でダウンロードするごとに転送速度 x0.5 される
throughput   /usr/ftp   /pub*   *         3096   0.5   *
# ただし /usr/ftp/ 以下の README* ファイルは無制限
throughput   /usr/ftp   *       README*   oo     -     *
# さらに *.griffonworks.or.jp に属するユーザーも無制限
throughput   /usr/ftp   *       *         oo     -     *.griffonworks.or.jp


# ログオン失敗は3回まで.デフォルトは 5回.
loginfails 3


## メッセージファイルの指定.readme はユーザーをうるさがらせないために一度のみ表示
readme  README*  login  # ログイン時
readme  README*  cwd=*  # CWD 時


## メッセージファイル指定.message は条件に見合う場合は何度でも表示
# ログイン時の Welcome メッセージ.この場合は anon クラスに属するユーザーがログインしたときに表示されます.
message  /etc/msgs/welcome_anonymous.msg  login  anon
# 各ディレクトリにこのファイルを置いておくとそのメッセージを表示
message  .message  cwd=*


## ファイル転送時の圧縮
# compress  yes/no  クラス定義名
# tar       yes/no  クラス定義名
compress   yes   all
tar        yes   all


## 使用したコマンドをログに取ります.
# log   commands   タイプリスト(real,guest,anonymous)
log   commands   real,anonymous


## 転送ログを取ります.
# log transfers   タイプリスト(real,guest,anonymous)   転送方向(inbound,outbound)
log   transfers   anonymous,real   inbound,outbound


## アップロード制限
# /usr/ftp に chroot されたユーザーは /incoming に アップロードできる(YES).
# アップロード時の所有者はそのファイルが格納されているディレクトリの所有者と同じにする.
# パーミッションは 664,ディレクトリ作成可能 (dirs) でそのパーミッションは 755.
upload   /usr/ftp   /incoming   yes   ftp   operator   0664   dirs   0755


## 指定したクラスに対して各許可を設定します.
delete    no  anonymous
chmod     no  anonymous
umask     no  anonymous
overwrite no  anonymous
rename    no  anonymous


## サーバーシャットダウン時の警告ファイル
## これはサーバーがシャットダウンを計画されれば,ユーザーに対して注意をうながし,シャットダウン前の一定時間は接続を拒否します.
## このファイルは ftpshut(8) で作成可能のようです.
shutdown /etc/shutmsg


# 管理者メールアドレス
email griffon@os.xaxon.ne.jp


## chroot するグループ
## 指定するグループ名は /etc/group に記述されているグループ名を指定します.
## class 設定で real と一緒に必ず guest も指定しておいて下さい.
# guestgroup GROUP
guestgroup users


# anonymous のパスワードに @ が含まれない場合は接続させない
passwd-check   rfc822   enforce