| TELNETD(8) | System Manager's Manual | TELNETD(8) |
telnetd — DARPA
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
オプションは、
telnetd を inetd(8)
ではなく、手動で起動するために使われる。
この方法で起動した場合、
別の TCP ポート番号で
telnetd
を実行するために、
port
を指定することができる。
telnetd
プログラムは以下のオプションを受け付ける:
-a
authmodetelnetd
が認証をサポートする設定でコンパイルされている場合にのみ、
有効である点に注意すること。
これは現在のバージョンでは使用できない。
authmode
のとしては、以下の値を受け付ける:
valid
オプションを指定するのと同じである。-D
debugmodetelnetd
にデバッグ情報を表示させ、
telnetd
の動作をユーザが見ることができる。
以下に示すような、いくつかの
debugmode がある:
-edebugtelnetd
が暗号化をサポートする設定でコンパイルされている場合にのみ、
有効である点に注意すること。
-edebug
オプションは、暗号化デバッグコードを有効にするために使われる。-h-L
loginprg-nTCP
keep-alives を無効にする。
通常 telnetd は、
クライアントがまだ存在するかを決定するために、
ある一定期間アイドルになっている接続を調べる
TCP keep-alive
機構を有効にしている。
これにより、クラッシュしたり、
すでに接続出来ないようなマシンからの
アイドルコネクションを解消できる。-stelnetd が SecurID
カードをサポートする設定でコンパイルされている場合にのみ、有効である。
このオプションは、
-s
オプションを
login(1)
にそのまま渡すようにするので、
login(1) が、 SecurID
によって認証されたログインのみを許可していることを表す、
-s
フラグをサポートしている場合にのみ役立つ。
これは通常、ファイアウォールの外側からの
リモートログインを制御する場合に役立つ。-S
tos-X
authtypetelnetd
が認証オプションをサポートする設定でコンパイルされている場合にのみ、
有効である。
このオプションは
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
オプションをサポートしている:
LINEMODE
オプションが有効な場合、
端末の現在のエコー状態を示すために、
WILL ECHO または
WONT ECHO
がクライアントに送信される。
端末エコーが必要ない場合、
端末にエコーする必要があるデータを
telnetd
がエコー処理することを示すために、
WILL ECHO
が送信され、何もエコーされない。
端末エコーが必要な場合、
telnetd
が端末エコーも行わないことを示すために、
WONT ECHO
が送信されるので、
端末エコーが必要な場合はクライアントが行わなければならない。IAC GA
すなわち go ahead
コマンドを送信しないように指定する。DO TIMING-MARK
コマンドを受信した場合、常にそれに対して
WILL TIMING-MARK
を返信する。DO LOGOUT
を受信した場合、
WILL LOGOUT
を返信し、 TELNET
セッションをシャットダウンする。telnetd
がデータの暗号化をサポートする設定で
コンパイルされている場合にのみ送信され、
データ列を復号化するように指定する。telnetd
は、リモート側で有効な、以下の
TELNET
オプションをサポートしている:
WILL ECHO
に対して正しく応答しない、
4.2BSD の telnet(1)
クライアントを識別するために送られる。
WILL ECHO
を受信すると、
DONT ECHO
が返答として送信される。IAC GA
すなわち go ahead
コマンドを受信する必要がないように指定する。telnetd が linemode
をサポートする設定でコンパイルされている場合にのみ送信され、
クライアントに行単位の処理を行うことを要求する。telnetd が linemode と kludge linemode
の
両方をサポートする設定でコンパイルされ、
クライアントが
WONT LINEMODE
を返信した場合にのみ、送信される。
クライアントが
WILL TM
を返信した場合、
クライアントが kludge linemode
をサポートしていると見なす。
[-k]
オプションは、この機能を無効にするために使用される点に注意すること。telnetd
が認証機能をサポートする設定でコンパイルされている場合にのみ送信され、
自動ログインに使用する認証情報を受信するようにする。telnetd
がデータの暗号化をサポートする設定で
コンパイルされている場合にのみ送信され、
データ列を復号化するように指定する。/etc/services, /etc/issue.net
RFC-854RFC-855RFC-856RFC-857RFC-858RFC-859RFC-860RFC-861RFC-885RFC-1073RFC-1079RFC-1091RFC-1096RFC-1123RFC-1184RFC-1372RFC-1416RFC-1411RFC-1412RFC-1571RFC-1572いくつかの 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) |