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