EN JA
TELNETD(8)
TELNETD(8) FreeBSD System Manager's Manual TELNETD(8)

名前

telnetdDARPA telnet プロトコルサーバ

書式

/usr/sbin/in.telnetd [ -hns][ -a authmode][ -D debugmode][ -L loginprg][ -S tos][ -X authtype][ -edebug][ -debug port]

説明

telnetd プログラムは、 DARPA telnet 対話的通信プロトコルをサポートするサーバである。 telnetd は、通常は /etc/services ファイル ( services(5) を参照) に記述されている telnet ポートへの接続要求を受けて、インターネットサーバ ( inetd(8) を参照) から起動される。 -debug オプションは、 telnetdinetd(8) ではなく、手動で起動するために使われる。この方法で起動した場合、別の TCP ポート番号で telnetd を実行するために、 port を指定することができる。

telnetd プログラムは以下のオプションを受け付ける:

-a authmode
このオプションは、どのモードが認証に使われるかを指定するために用いられる。このオプションは、 telnetd が認証をサポートする設定でコンパイルされている場合にのみ、有効である点に注意すること。これは現在のバージョンでは使用できない。 authmode のとしては、以下の値を受け付ける:
debug
認証のデバッグコードを有効にする。
user
リモートユーザは、自分自身であること示すための有効な認証情報を提供した時にのみ接続が許可される。この場合、指定されたアカウントに対しては、パスワードの提供なしに接続が許可される。
valid
リモートユーザは、自分自身であること示すための有効な認証情報を提供した時にのみ接続が許可される。リモートユーザに指定されたアカウントに対する自動的な接続が許可されていなければ、 login(1) コマンドは、必要となる別のユーザ認証を行う。
other
ある種の認証情報を提供した場合のみ接続を許可する。このオプションは、現在のところ、既存のいずれの認証方法でもサポートされていないため、 valid オプションを指定するのと同じである。
none
デフォルトではこの状態である。認証情報は要求されない。もし認証情報がなかったり不十分であれば、 login(1) プログラムによって必要となるユーザ認証を行う。
off
認証コードを無効にする。すべてのユーザ証明が login(1) プログラムによって行われる。
-D debugmode
このオプションはデバックのために使われる。これによって telnetd にデバッグ情報を表示させ、 telnetd の動作をユーザが見ることができる。以下に示すような、いくつかの debugmode がある:
options
telnet オプションのネゴシエーションについての情報が表示される。
report
options で表示される情報に加えて、どのような操作が行われているのかという、いくつかの付加的な情報が表示される。
netdata
telnetd が受け取ったデータストリームを表示する。
ptydata
pty に書かれたデータを表示する。
exercise
まだ実装されていない。
-edebug
このオプションは、 telnetd が暗号化をサポートする設定でコンパイルされている場合にのみ、有効である点に注意すること。 -edebug オプションは、暗号化デバッグコードを有効にするために使われる。
-h
ログインが完了するまでホストに特有の情報を表示しないようにする。
-L loginprg
このオプションは、別の login プログラムを指定するために使われる。デフォルトでは、 /bin/login が使われる。
-n
TCP keep-alives を無効にする。通常 telnetd は、クライアントがまだ存在するかを決定するために、ある一定期間アイドルになっている接続を調べる TCP keep-alive 機構を有効にしている。これにより、クラッシュしたり、すでに接続出来ないようなマシンからのアイドルコネクションを解消できる。
-s
このオプションは、 telnetd が SecurID カードをサポートする設定でコンパイルされている場合にのみ、有効である。このオプションは、 -s オプションを login(1) にそのまま渡すようにするので、 login(1) が、 SecurID によって認証されたログインのみを許可していることを表す、 -s フラグをサポートしている場合にのみ役立つ。これは通常、ファイアウォールの外側からのリモートログインを制御する場合に役立つ。
-S tos
telnet 接続の IP サービスタイプ (type-of-service, TOS) オプションの値を tos に設定する。
-X authtype
このオプションは、 telnetd が認証オプションをサポートする設定でコンパイルされている場合にのみ、有効である。このオプションは authtype 認証の使用を不可にし、 telnetd を再コンパイルすることなく、特定の認証タイプを一時的に使用不可にすることができる。

ファイル /etc/issue.net が存在する場合、 telnetd は、telnet セッションのログインプロンプトより前に、そのファイルの内容を表示する ( issue.net(5) を参照すること)。

telnetd は、疑似端末デバイス ( pty(4) を参照) をクライアントに割り当て、login プロセスを生成する。この login プロセスは、 stdin, stdout, stderr として疑似端末のスレーブ側を使用する。 telnetd は、 telnet プロトコルを実装し、リモートクライアントとログインプロセスの間に文字を受け渡すことにより、疑似端末のマスター側を操作する。

telnet セッションが開始されると、 telnetd は、以下の telnet オプションを希望していることを示すために、クライアント側にこれらの telnet オプションを送信する。これらのオプションの詳細については、以下で説明されている:

DO AUTHENTICATION 
WILL ENCRYPT 
DO TERMINAL TYPE 
DO TSPEED 
DO XDISPLOC 
DO NEW-ENVIRON 
DO ENVIRON 
WILL SUPPRESS GO AHEAD 
DO ECHO 
DO LINEMODE 
DO NAWS 
WILL STATUS 
DO LFLOW 
DO TIMING-MARK

クライアントに割り当てられた疑似端末は、“cooked”モードで動作し、 XTABS CRMOD が有効になるように設定される ( tty(4) を参照すること)。

telnetd は、ローカル側で有効な、以下の telnet オプションをサポートしている:

WILL ECHO
LINEMODE オプションが有効な場合、端末の現在のエコー状態を示すために、 WILL ECHO または WONT ECHO がクライアントに送信される。端末エコーが必要ない場合、端末にエコーする必要があるデータを telnetd がエコー処理することを示すために、 WILL ECHO が送信され、何もエコーされない。端末エコーが必要な場合、 telnetd が端末エコーも行わないことを示すために、 WONT ECHO が送信されるので、端末エコーが必要な場合はクライアントが行わなければならない。
WILL BINARY
クライアントが、通常のネットワーク仮想端末が用いる 7 ビットのデータではなく、 8 ビットのデータを送信するように指定する。
WILL SGA
IAC GA すなわち go ahead コマンドを送信しないように指定する。
WILL STATUS
クライアントから要求があった場合に、全ての TELNET オプションの現在の状況を送信するように指定する。
WILL TIMING-MARK
DO TIMING-MARK コマンドを受信した場合、常にそれに対して WILL TIMING-MARK を返信する。
WILL LOGOUT
DO LOGOUT を受信した場合、 WILL LOGOUT を返信し、 TELNET セッションをシャットダウンする。
WILL ENCRYPT
telnetd がデータの暗号化をサポートする設定でコンパイルされている場合にのみ送信され、データ列を復号化するように指定する。

telnetd は、リモート側で有効な、以下の TELNET オプションをサポートしている:

DO BINARY
このオプションは、 telnetd が 8 ビットのデータ列を受信するように指定するために送られる。
DO LFLOW
クライアントがフロー制御文字をリモート側で処理するように指定する。
DO ECHO
このオプションは実際にはサポートされていないが、 WILL ECHO に対して正しく応答しない、 4.2BSD の telnet(1) クライアントを識別するために送られる。 WILL ECHO を受信すると、 DONT ECHO が返答として送信される。
DO TERMINAL-TYPE
接続のクライアント側に割り当てられた端末のタイプ名を要求できるように指定する。
DO SGA
IAC GA すなわち go ahead コマンドを受信する必要がないように指定する。
DO NAWS
ウィンドウ (ディスプレイ) のサイズが変わった場合に、クライアントがサーバに知らせることを要求する。
DO TERMINAL-SPEED
クライアントに割り当てられたシリアルラインの速度に関する情報を要求できるように指定する。
DO XDISPLOC
telnet クライアントが使用している X ウィンドウのディスプレイの名前を要求できるように指定する。
DO NEW-ENVIRON
RFC 1572 に示されている環境変数に関する情報を要求できるように指定する。
DO ENVIRON
RFC 1408 に示されている環境変数に関する情報を要求できるように指定する。
DO LINEMODE
telnetd が linemode をサポートする設定でコンパイルされている場合にのみ送信され、クライアントに行単位の処理を行うことを要求する。
DO TIMING-MARK
telnetd が linemode と kludge linemode の両方をサポートする設定でコンパイルされ、クライアントが WONT LINEMODE を返信した場合にのみ、送信される。クライアントが WILL TM を返信した場合、クライアントが kludge linemode をサポートしていると見なす。[ -k]オプションは、この機能を無効にするために使用される点に注意すること。
DO AUTHENTICATION
telnetd が認証機能をサポートする設定でコンパイルされている場合にのみ送信され、自動ログインに使用する認証情報を受信するようにする。
DO ENCRYPT
telnetd がデータの暗号化をサポートする設定でコンパイルされている場合にのみ送信され、データ列を復号化するように指定する。

ファイル

/etc/services, /etc/issue.net

準拠

RFC-854
TELNET PROTOCOL SPECIFICATION
RFC-855
TELNET OPTION SPECIFICATIONS
RFC-856
TELNET BINARY TRANSMISSION
RFC-857
TELNET ECHO OPTION
RFC-858
TELNET SUPPRESS GO AHEAD OPTION
RFC-859
TELNET STATUS OPTION
RFC-860
TELNET TIMING MARK OPTION
RFC-861
TELNET EXTENDED OPTIONS - LIST OPTION
RFC-885
TELNET END OF RECORD OPTION
RFC-1073
Telnet Window Size Option
RFC-1079
Telnet Terminal Speed Option
RFC-1091
Telnet Terminal-Type Option
RFC-1096
Telnet X Display Location Option
RFC-1123
Requirements for Internet Hosts -- Application and Support
RFC-1184
Telnet Linemode Option
RFC-1372
Telnet Remote Flow Control Option
RFC-1416
Telnet Authentication Option
RFC-1411
Telnet Authentication: Kerberos Version 4
RFC-1412
Telnet Authentication: SPX
RFC-1571
Telnet Environment Option Interoperability Issues
RFC-1572
Telnet Environment Option

バグ

いくつかの TELNET コマンドは、部分的にしか実装されていない。

オリジナルの 4.2 BSD の telnet(1) のバグに対処するため、 telnetd は、ある種のうさんくさいプロトコル通信を行うことにより、リモートクライアントが実際に 4.2 BSD の telnet(1) であるかを判断しようとする。

バイナリモードは、よく似たオペレーティングシステム (この場合 Unix) 間以外では、一般的な互換性がない。

リモートクライアントから受け取った端末タイプ名は、小文字に変換される。

telnetd は、 TELNET IAC GA (go ahead) コマンドを絶対に送らない。

ソースコードが分かりやすくない。

翻訳者謝辞

この man ページの翻訳にあたり、 FreeBSD jpman project <http://www.jp.freebsd.org/man-jp/>による翻訳を参考にさせていただいた。
December 29, 1996 Linux NetKit (0.17)