tftpd —
DARPA
簡易ファイル転送プロトコル
(TFTP) サーバ
tftpd
[
directory ...]
tftpd は、 DARPA Trivial File Transfer
Protocol
(簡易ファイル転送プロトコル)
を
サポートするサーバである。
TFTP サーバは、
‘
tftp
’
サービス定義で指示されたポートを操作する。
services(5)
を参照すること。
このサーバは、通常
inetd(8)
によって起動される。
tftp(1)
の利用には、リモートシステムのアカウントやパスワードを必要としない。
認証情報がないので、
tftpd
はパブリックに読み込み可能なファイルだけしかアクセスを許可しない。
ファイルが既に存在して、かつパブリックに書き込み可能な場合にだけ、
ファイルを書き込むことができる。
“パブリック”
という概念は、ネットワークを通して到達可能な全てのホスト上の全てのユーザーを
含むように拡張されている点に注意すること。
これは全てのシステムにおいて適切ではないかもしれない。
また、tftp
サービスを有効にする前に、これが意味していることを考慮すべきである。
サーバは、可能な限り最低の権限しかないユーザー
ID
を持たなければならない。
ファイルへのアクセス制限は、
パス名が書かれたディレクトリのリストを
/etc/inetd.conf
でサーバプログラムの引き数として指定して、
tftpd
を起動することで制御できる。
この場合、アクセスできるのは、ファイルのフルパス名の先頭に、
ここで指定されたディレクトリ名のどれかが付くファイルに制限される。
ディレクトリが指定されていない場合、デフォルトは
/tftpboot である。
何かの理由があって、
ファイルシステム全体にアクセス権を与えたいと望むなら、
引き数として
/
を指定すること。
残念なことに、アドレスが複数あるようなシステムでは、
tftpd
はどちらのアドレスでパケットが受信されたかを決定できない。
そのため、
tftpd
は、返答に使う最も良い送信元アドレスを決定するために、
異なる 2
つの機構を使う。
inetd(8) が
tftpd
に渡したソケットが、
特定のアドレスにバインドされている場合、
tftpd
はそのアドレスを返答に使う。
特定のアドレスにバインドされていない場合、
tftpd は ``UDP 接続''
を使う。
これは、返答の送信先とルーティングテーブルに基づいた
返信アドレスを選択したことをカーネルに知らせるためである。
これは、大部分の設定は透過的に機能するが、
返信アドレスを固定しなければならない場合には、
正しいアドレスから返答が行くことを保証するために
inetd(8)
のバーチャルホスト機能が使われることを意味する。
これらの考察は重要である。
なぜなら、大部分の tftp
クライアントは、
予想していないアドレスから送信されていることが分かったパケットを
拒否するためである。
tftp(1),
inetd(8)
tftpd コマンドは
4.2BSD
で登場した。
この man
ページの翻訳にあたり、
FreeBSD jpman project <
http://www.jp.freebsd.org/man-jp/>
による翻訳を参考にさせていただいた。