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 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

関連項目
telnet(1), login(1), issue.net(5)

準拠
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/> による翻訳を参考にさせていただいた。