aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man8/ftpd.8
blob: e4ec3d057ebc10ad6299ddf8971d68bbca52e76a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
.\" Copyright (c) 1985, 1988, 1991, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)ftpd.8	8.2 (Berkeley) 4/19/94
.\" %FreeBSD: src/libexec/ftpd/ftpd.8,v 1.66 2003/09/14 16:42:46 ume Exp %
.\"
.\" $FreeBSD$
.Dd January 27, 2000
.Dt FTPD 8
.Os
.Sh 名称
.Nm ftpd
.Nd インターネットファイル転送プロトコルサーバ
.Sh 書式
.Nm
.Op Fl 46ADdEhMmOoRrSUvW
.Op Fl l Op Fl l
.Op Fl a Ar address
.Op Fl P Ar port
.Op Fl p Ar file
.Op Fl T Ar maxtimeout
.Op Fl t Ar timeout
.Op Fl u Ar umask
.Sh 解説
.Nm
ユーティリティは、インターネットファイル転送プロトコルサーバプロセスです。
このサーバは
.Tn TCP
プロトコルを用いて、
.Fl P
オプションで指定されたポートもしくは
.Dq ftp
サービスに割り当てられたポートを listen() します。
.Dq ftp
サービスについては、
.Xr services 5
を参照して下さい。
.Pp
利用可能なオプションは以下の通りです:
.Bl -tag -width indent
.It Fl 4
.Fl D
が指定されている場合、IPv4 接続を
.Dv AF_INET4
ソケット経由で受け付けます。
.It Fl 6
.Fl D
が指定されている場合、AF_INET6 ソケット経由の接続を受け付けます。
.It Fl A
匿名 ftp アクセスのみ許可します。
.It Fl a
.Fl D
オプションが指定されている場合、
.Ar address
で指定されたアドレスに対する接続のみを許可します。
.It Fl D
このオプションがセットされると、
.Nm
は制御端末を切り離してデーモンとなり、
FTP ポートへの接続要求を待ち、
子プロセスを生成して接続要求に対応します。
この方式は
.Nm
を
.Xr inetd 8
から起動するよりオーバヘッドが少ないため、
処理量の多いサーバで負荷を低減するのに役立ちます。
.It Fl d
syslog の
.Dv LOG_FTP
のファシリティ (facility) を用いてデバッグ情報を出力します。
.It Fl E
EPSV コマンドを無効化します。
古いファイアウォールの後ろにサーバがある場合に有用です。
.It Fl h
サーバソフトウェアバージョンやホスト名といったホスト固有情報を
サーバメッセージ中に表示しないようにします。
.It Fl l
.Xr ftp 1
セッションそれぞれの結果を、成功も失敗もともども
syslog の
.Dv LOG_FTP
のファシリティを用いて
ログに残します。
このオプションが 2 回指定されると、
retrieve (get), store (put), append, delete,
make directory, remove directory, rename の各操作およびそれらの引数で指定された
ファイル名も記録されます。
デフォルトでは、
.Xr syslogd 8
はこれらを
.Pa /var/log/xferlog
に記録します。
.It Fl M
匿名ユーザによるディレクトリ作成を禁止します。
.It Fl m
ファイルシステムのパーミッションが許す限りにおいて、
匿名ユーザによる既存のファイルの上書きや修正を許します。
デフォルトでは、匿名ユーザは既存のファイルを修正できず、
特に、アップロードされるファイルは一意な名前で作成されます。
.It Fl O
匿名ユーザのみに対し、サーバを書き込み専用モードにします。
匿名ユーザに対しては、RETR が無効化され、
匿名ダウンロードを禁止します。
本オプションは、
.Fl o
も設定されている場合には、効果がありません。
.It Fl o
サーバを書き込み専用モードにします。
RETR が無効化され、
ダウンロードを禁止します。
.It Fl P
.Fl D
指定時には、デフォルトの
.Dq ftp
ポートの代りに、数値またはサービス名で指定される
.Ar port
での接続を受け付けます。
.It Fl p
.Fl D
オプションが指定されている場合、
デーモンのプロセス ID を
.Ar file
に書き出します。
.It Fl R
このオプションがセットされると、
.Nm
は、ユーザ操作のセキュリティチェックや PORT 要求の制限に関して
古き良き時代の振る舞いに戻ります。
現在では、
.Nm
はリモートユーザのホストの非特権ポートに向けられた PORT コマンド
だけを用います (これは FTP プロトコルの仕様に違反していますが、
いくつかのセキュリティホールを閉じることができます)。
.It Fl r
サーバを、読み取り専用モードにします。
ローカルファイルを修正し得る全コマンドは、無効化されます。
.It Fl S
このオプションがセットされると、
.Nm
は匿名 (anonymous) によるファイルダウンロードの全てについてのログを、ファイル
.Pa /var/log/ftpd
が存在する場合に限り、このファイルに残します。
.It Fl T
クライアントは異なったタイムアウト秒数を要求することもできます。
.Fl T
オプションにより、
.Ar タイムアウト
までの最大待ち時間を設定できます。
デフォルトは 2 時間です。
.It Fl t
何も操作しないで放置した場合のタイムアウト時間を
.Ar timeout
秒に設定します (デフォルトは 15 分)。
.It Fl U
.Dv IP_PORTRANGE_HIGH
の範囲の代りに
.Dv IP_PORTRANGE_DEFAULT
の範囲のデータポートを使用するよう、ftpd に指示します。
更なる情報については
.Xr ip 4
を参照してください。
.Pp
.Fx 5.0
以上では、実際はなにもしないことに注意してください。
なぜなら、どちらのポート範囲もデフォルトで等価だからです。
.It Fl u
デフォルトのファイル生成マスクを
.Ar umask
にします。
この数値は 8 進数値であることを期待されます。
詳細は
.Xr umask 2
を参照してください。
このオプションに対し、
.Xr login.conf 5
の設定が優先します。
.It Fl v
.Fl d
と同じ意味です。
.It Fl W
FTP セッションを
.Pa /var/log/wtmp
に記録しません。
.El
.Pp
ファイル
.Pa /var/run/nologin
は、ftp アクセスを拒否するのに使うことができます。
このファイルが存在する場合、
.Nm
はそのファイルの内容を表示して終了します。
.Pa /etc/ftpwelcome
ファイルが存在する場合、
.Nm
は
.Dq ready
メッセージを表示する前にその内容を表示します。
もし
.Pa /etc/ftpmotd
ファイルが存在する場合、
ログイン成功後に
.Nm
はその内容を出力します。
使用される motd ファイルはログイン環境に対して相対であることに
注意してください。
つまり、匿名ユーザの場合には、
.Pa ~ftp/etc
に存在することを意味じます。
.Pp
この ftp サーバは、現在、以下の ftp リクエストをサポートしています。
リクエストの文字の大文字小文字の区別は無視されます。
印 [RW] が付いているリクエストは、
.Fl r
が指定されると無効化されます。
.Bl -column "Request" -offset indent
.It Sy リクエスト Ta Sy "説明"
.It ABOR Ta "abort previous command"
.It ACCT Ta "specify account (ignored)"
.It ALLO Ta "allocate storage (vacuously)"
.It APPE Ta "append to a file [RW]"
.It CDUP Ta "change to parent of current working directory"
.It CWD Ta "change working directory"
.It DELE Ta "delete a file [RW]"
.It EPRT Ta "specify data connection port, multiprotocol"
.It EPSV Ta "prepare for server-to-server transfer, multiprotocol"
.It HELP Ta "give help information"
.It LIST Ta "give list files in a directory" Pq Dq Li "ls -lgA"
.It LPRT Ta "specify data connection port, multiprotocol"
.It LPSV Ta "prepare for server-to-server transfer, multiprotocol"
.It MDTM Ta "show last modification time of file"
.It MKD Ta "make a directory"
.It MODE Ta "specify data transfer" Em mode
.It NLST Ta "give name list of files in directory"
.It NOOP Ta "do nothing"
.It PASS Ta "specify password"
.It PASV Ta "prepare for server-to-server transfer"
.It PORT Ta "specify data connection port"
.It PWD Ta "print the current working directory"
.It QUIT Ta "terminate session"
.It REST Ta "restart incomplete transfer"
.It RETR Ta "retrieve a file"
.It RMD Ta "remove a directory [RW]"
.It RNFR Ta "specify rename-from file name [RW]"
.It RNTO Ta "specify rename-to file name [RW]"
.It SITE Ta "non-standard commands (see next section)"
.It SIZE Ta "return size of file"
.It STAT Ta "return status of server"
.It STOR Ta "store a file [RW]"
.It STOU Ta "store a file with a unique name [RW]"
.It STRU Ta "specify data transfer" Em structure
.It SYST Ta "show operating system type of server system"
.It TYPE Ta "specify data transfer" Em type
.It USER Ta "specify user name"
.It XCUP Ta "change to parent of current working directory (deprecated)"
.It XCWD Ta "change working directory (deprecated)"
.It XMKD Ta "make a directory (deprecated) [RW]"
.It XPWD Ta "print the current working directory (deprecated)"
.It XRMD Ta "remove a directory (deprecated) [RW]"
.El
.Pp
以下に示した非標準コマンドあるいは
.Ux
に特有のコマンドが、SITE リクエストでサポートされています。
.Pp
.Bl -column Request -offset indent
.It Sy リクエスト Ta Sy 説明
.It UMASK Ta change umask, e.g. ``SITE UMASK 002''
.It IDLE Ta set idle-timer, e.g. ``SITE IDLE 60''
.It CHMOD Ta "change mode of a file [RW], e.g. ``SITE CHMOD 755 filename''"
.It MD5 Ta "report the files MD5 checksum, e.g. ``SITE MD5 filename''"
.It HELP Ta give help information.
.El
.Pp
注: 匿名ログインの場合、SITE リクエストは無効化されています。
.Pp
Internet RFC 959 で規定されている ftp リクエストのうちの、これ以外のものは
解釈はされますがインプリメントされていません。
MDTM および SIZE は RFC 959 では規定されていませんが、次に改訂される
FTP RFC には登場するでしょう。
サービス拒否攻撃の可能性を除去するために、
現在の転送タイプが ASCII の場合には、
10240 バイトより大きなファイルに対する SIZE リクエストは拒否されます。
.Pp
ftp サーバがアクティブなファイル転送を中断するのは、ABOR コマンドの前に、
Telnet "Interrupt Process" (IP) シグナルと
Telnet "Synch" シグナルが Telnet ストリーム内にある場合だけです。
これは Internet RFC 959 に記述されています。
もし、データの転送中に
STAT
コマンドを受けとり、その前に Telnet IP と Synch
があった場合、転送ステータスが返されます。
.Pp
.Nm
ユーティリティは、
.Xr csh 1
で使われているファイル名展開を解釈します。これにより、
ユーザはメタキャラクタ
.Dq Li \&*?[]{}~
を利用できます。
.Pp
.Nm
ユーティリティは、6 つのルールに従ってユーザの認証を行います。
.Pp
.Bl -enum -offset indent
.It
ログイン名はパスワードデータベース
になければならず、空のパスワードであってはいけません。
この場合、あらゆるファイルの操作に先だって、クライアント側からパスワードが
提供されていなければなりません。ユーザが S/Key のキーを持っている場合は、
USER コマンドが成功した際の応答には S/Key チャレンジを含めて送られます。
クライアントは、それに対して PASS コマンドを使って応答する際に、
通常のパスワードか S/Key のワンタイムパスワードのどちらをつけて応答
するかを選択できます。サーバはどちらのパスワードを受け取ったかを自動的に
判定し、それに応じて認証を試みます。S/Key の認証に関する詳細は
.Xr key 1
を参照して下さい。S/Key は Bellcore 社の商標です。
.It
ログイン名はファイル
.Pa /etc/ftpusers
に載っていてはいけません。
.It
ログイン名はファイル
.Pa /etc/ftpusers
で指定されているグループのメンバであってはいけません。
このファイルでグループ名として解釈されるエントリの先頭には
アットマーク
.Ql \&@
が付きます。
.It
ユーザは
.Xr getusershell 3
が返す標準のシェルを持っていなければなりません。
.It
ユーザ名がファイル
.Pa /etc/ftpchroot
に載っているか、そのファイルにあるグループエントリ (つまり
.Ql \&@
で始まるエントリ) のメンバである場合、アカウント
.Dq anonymous
や
.Dq ftp
と同様、
.Xr chroot 2
によって、
そのセッションのルートディレクトリが
このファイルによって指定されるディレクトリか
ユーザのログインディレクトリに変ります (次の項目を参照して下さい)。
このファイルの書式の詳細は
.Xr ftpchroot 5
を参照してください。
この機能は、
.Xr login.conf 5
でブール型フラグ "ftp-chroot" をオンにしても有効になります。
しかし、ユーザは依然、パスワードを与える必要があります。
この特徴は、完全に匿名 (anonymous) なアカウントと
完全な特権のあるアカウントの間での妥協的な利用のためのものです。
このアカウントは匿名アカウントで設定するのと同様に設定されていなければ
なりません。
.It
もしユーザ名が
.Dq anonymous
または
.Dq ftp
の場合は、匿名の ftp アカウントがパスワードファイル (ユーザ
.Dq ftp
) で提供されていなければなりません。
この場合、ユーザはどのようなパスワードでもログインを許可されます (慣習としては
ユーザの email アドレスをパスワードとして用いることになっています)。
.Fl S
オプションがセットされていると、全ての転送操作も記録されます。
.El
.Pp
最後のケースの場合、
.Nm
は特別な手段でクライアントのアクセス権を制限します。
サーバは
.Dq ftp
ユーザのホームディレクトリへ
.Xr chroot 2
します。
.Dq ftp
ユーザのホームディレクトリパスに
.Pa /./
セパレータが含まれる特殊な場合、
左側を
.Xr chroot 2
先のディレクトリ名、右側を以降のカレントディレクトリとして
.Nm
は使用します。
典型的な使用例は
.Pa /usr/local/ftp/./pub
です。
システムのセキュリティが侵害されないために、
.Dq ftp
サブツリーは、以下の規則に従って慎重に構築することを推奨します。
.Bl -tag -width "~ftp/pub" -offset indent
.It Pa ~ftp
ホームディレクトリは
.Dq root
の所有とし、誰も書き込みできないようにします。
.It Pa ~ftp/etc
このディレクトリは
.Dq root
の所有とし、誰も書き込みできないようにします (モード 555)。
.Xr ls 1
が所有者を数字でなく名前で表示できるようにするために、
ファイル pwd.db
.Xr ( passwd 5
参照) 及び
.Xr group 5
が必要です。
ファイル
.Xr passwd 5
中のパスワードは使用されませんので、本当のパスワードを入れてはいけません。
ファイル
.Pa ftpmotd
が存在すると、ログイン成功後、その内容が表示されます。
このファイルのモードは 444 とすべきです。
.It Pa ~ftp/pub
本ディレクトリおよびそれ以下のサブディレクトリは、
ここにファイルを置くことに対して責任のあるユーザおよびグループにより
所有されるべきであり、彼等によってのみ書き込み可能であるべきです
(モード 755 または 775)。
.Dq ftp
またはそのグループが所有したり書き込み可能であるべきではありません。
そのようにしてしまうと、
ゲストユーザが、望まないファイルでディスクを一杯にできてしまいます。
.El
.Pp
システムに複数の IP アドレスがある場合、
.Nm
は仮想ホストの概念をサポートします。
仮想ホストは、複数の匿名 ftp 領域それぞれを別々のインターネットアドレス
に割り当てる機能を提供します。
ファイル
.Pa /etc/ftphosts
は各仮想ホストに関連した情報を保持します。
各ホストはそれぞれの行で定義され、
各行は空白で区切ったいくつかのフィールドからなります:
.Bl -tag -offset indent -width hostname
.It hostname
仮想ホストのホスト名あるいは IP アドレス。
.It user
システムのパスワードファイル中のユーザレコードを含みます。
普通の匿名 ftp と同様に、このユーザのアクセス UID, GID および
グループによって匿名 ftp 領域のファイルアクセス権が決まります。
匿名 ftp 領域 (ログイン時にユーザが chroot するディレクトリ) は、
そのアカウントに対するホームディレクトリとして決定されます。
他の ftp アカウントのユーザ ID およびグループも、
標準 ftp ユーザと同じであって構いません。
.It statfile
全てのファイル転送のログが記録されるファイル。デフォルトでは
.Pa /var/log/ftpd
です。
.It welcome
サーバがプロンプトを出す前に表示される welcome メッセージ。デフォルトでは
.Pa /etc/ftpwelcome
です。
.It motd
このファイル内容はユーザがログインした後に表示されます。デフォルトでは
.Pa /etc/ftpmotd
です。
.El
.Pp
文字 '#' で開始する行は無視されますので、コメントを含むことが可能です。
.Pp
プライマリ IP アドレスあるいはホスト名に対する仮想ホストを定義すると、
そのアドレスへの ftp ログインのデフォルト値が変更されます。
\&'user', 'statfile', 'welcome', 'motd' の各フィールドは
デフォルト値を用いる場合、ブランクのままもしくはハイフン一つ
\&'-' と
しても構いません。
.Pp
いかなる匿名ログインの設定についても言えることですが、
設定と保守には十分に注意を払い、セキュリティ上の問題をきたさないよう
防御しなければなりません。
.Pp
.Nm
ユーティリティは、
リモートからのファイル一覧表示要求に対応するための内部サポートを持ち、
chroot された環境でもそれ以外でも
.Pa /bin/ls
を実行しなくなります。
.Pa ~/bin/ls
の実行形式ファイルは chroot されたディレクトリになくてよく、
.Pa ~/bin
ディレクトリも存在する必要はありません。
.Sh 関連ファイル
.Bl -tag -width ".Pa /var/log/xferlog" -compact
.It Pa /etc/ftpusers
歓迎されない/制限を受けるユーザのリスト。
.It Pa /etc/ftpchroot
chroot される一般ユーザのリスト。
.It Pa /etc/ftphosts
仮想ホストのための設定ファイル
.It Pa /etc/ftpwelcome
welcome メッセージ。
.It Pa /etc/ftpmotd
login 後の welcome メッセージ。
.It Pa /var/run/nologin
内容を表示し、アクセスを拒否します。
.It Pa /var/log/ftpd
匿名による転送のログファイル。
.It Pa /var/log/xferlog
セッションログのデフォルトの置場。
.El
.Sh 関連項目
.Xr ftp 1 ,
.Xr key 1 ,
.Xr umask 2 ,
.Xr getusershell 3 ,
.Xr ftpchroot 5 ,
.Xr login.conf 5 ,
.Xr inetd 8 ,
.Xr syslogd 8
.Sh バグ
特権ポート番号を用いてソケットを作成するために、
ftpd はスーパユーザの権限で実行させて下さい。
サーバはログインユーザの実効ユーザ ID を保持しておき、
アドレスをソケットにバインドする場合にのみスーパユーザの権限を使います。
考えられるセキュリティホールについてはかなり詳細にわたって調べ込みをおこないましたが、
それでも不完全かもしれません。
.Sh 歴史
.Nm
ユーティリティは
.Bx 4.2
から登場しました。
IPv6 サポートは WIDE Hydrangea IPv6 スタックキットで追加されました。