TELNETD(8) | FreeBSD System Manager's Manual | TELNETD(8) |
名称
telnetd — DARPA TELNET プロトコルサーバ書式
/usr/libexec/telnetd | [ -46BUhlkn][ -D debugmode][ -S tos][ -X authtype][ -a authmode][ -edebug][ -p loginprog][ -u len][ -debug [ port]] |
解説
telnetd コマンドは、 DARPA 標準 TELNET 仮想端末プロトコルをサポートするサーバです。 telnetd は、通常は、 /etc/services ファイル ( services(5) 参照) に記述されている TELNET ポートへの接続要求を受けて、インターネットサーバ ( inetd(8) 参照) から起動されます。 -debug オプションは、 inetd(8) の代わりに telnetd を手動で起動するために用いられます。このように手動で起動された場合には、代わりの TCP ポート番号で telnetd を動かすために port を指定する事ができます。telnetd コマンドには、以下のオプションがあります:
- -4
- telnetd に IPv4 アドレスだけを使うよう強制します。
- -6
- telnetd に IPv6 アドレスだけを使うよう強制します。
- -a authmode
-
このオプションは、どのモードが認証に使われるかを指定するために用いられます。このオプションは、
telnetd が
AUTHENTICATION オプションをサポートする設定で構築された場合においてのみ役に立つことに注意して下さい。以下に示すようないくつかの
authmode があります:
- debug
- 認証のデバッグコードを有効にします。
- user
- リモートユーザは、自分自身であること示すための有効な認証情報を提供した時にのみ接続が許可されます。この場合、指定されたアカウントに対しては、パスワードの提供なしに接続が許可されます。
- valid
- リモートユーザが自分自身であることを示すための有効な認証情報を提供した時にのみ接続が許可されます。リモートユーザが指定されたアカウントに対する自動的な接続が許可されていなければ login(1) コマンドは、必要となるユーザ認証を実施します。
- other
- ある種の認証情報を提供した場合のみ接続を許可します。現在このオプションは、すべての認証方法でサポートされていないため -a valid オプションを指定した時と同じ動作をします。
- none
- デフォルトでは、この状態です。認証情報は、要求されません。もし認証情報がなかったり不十分であれば、 login(1) プログラムによって必要となるユーザ認証を実施します。
- off
- 認証コードを無効にします。すべてのユーザ証明が login(1) プログラムによって行われます。
- -B
- bftp サーバモードを指定します。このモードでは、 telnetd は、ユーザの通常のシェルの代りに bftp(1) セッションをログインに開始させます。 bftp デーモンモードでは、通常のログインは、サポートされません。これは、通常の TELNET ポート以外のポートで使用される必要があります。
- -D debugmode
-
このモードは、デバッグのために用いられます。これによって
telnetd がデバッグ情報を表示し、ユーザは、
telnetd が何をしているのかを見ることが許されます。以下に示すようないくつかの
debugmode があります:
- options
- TELNET オプションのネゴシエーションについての情報が表示されます。
- report
- options で表示される情報に加えて、どのような操作が行われているのかという、いくつかの付加的な情報が表示されます。
- netdata
- telnetd が受け取ったデータストリームを表示します。
- ptydata
- pty に書かれたデータを表示します。
- exercise
- まだ実装されていません。
- -debug
- telnetd によって作られたソケットについてのデバッグを可能にします ( socket(2) の SO_DEBUG 参照)。
- -edebug
- telnetd がデータの暗号化をサポートする設定で構築されている場合に、 -edebug オプションは、暗号化デバッグコードを有効にするために使われます。
- -h
- ログインが完了するまでホストに特有の情報を表示しないようにします。
- -k
- このオプションは、 telnetd が linemode と kludge linemode をサポートする設定で構築されているときにのみ有効です。 -k オプションが指定されている場合で、もしリモートのクライアントが LINEMODE オプションをサポートしていなければ、 telnetd は、character at a time mode で動きます。この様な状態でも kludge linemode をサポートしますが、リモートのクライアントが要求した場合のみ kludge linemode になります (これは、クライアントが DONT SUPPRESS-GO-AHEAD と DONT ECHO を送信することによって行われます)。 -k オプションは、kludge linemode をサポートしていないリモートクライアントがあるが、(もしクライアントが DO TIMING-MARK に対して WILL TIMING-MARK を応答する事で) 自己発見的に kludge linemode をサポートすると認められる様な場合にとても便利です。
- -l
- line mode を指定します。クライアントを強制的に line-at-a-time mode になるよう試みます。もし LINEMODE オプションがサポートされてなければ、kludge linemode になります。
- -n
- TCP keep-alives を行いません。通常、 telnetd は、 TCP keep-alive を有効にしています。なぜなら、クラッシュしたり、すでに接続出来ないようなマシンからのアイドルコネクションを解消するために、ある期間アイドルだった場合にクライアントとの接続がまだ存在するかどうかを調べる必要があるからです。
- -p loginprog
- ログインを完了する際に実行されるコマンドとして login(1) 以外のコマンドを指定します。指定されたコマンドは、通常の login と同じ引数を解釈できる必要があります。
- -S tos
- telnet の接続用に IP サービス種別 (TOS) オプションを値 tos に設定します。この値には、数値の TOS 値、もしくはシステムがサポートしていれば、 /etc/iptos ファイルにある記号の TOS 名が指定可能です。
- -u len
- このオプションは、リモートホスト名を保持している utmp 構造体のフィールドの大きさを指定するために使われます。もし解決されたホスト名が len よりも長ければ、ホスト名の代わりにドットで区切られたアドレスが使われます。これによりフィールドを超えるようなとても長いホスト名を一意に特定できるようにします。 -u0 を指定することによって、ドットで区切られたアドレスだけが utmp ファイルに書き込まれるようにします。
- -U
- このオプションは、 telnetd が、 gethostbyaddr(3) ルーチンを通してシンボルでの名前にマップされないようなアドレスからのコネクションを拒絶するようにします。
- -X authtype
- このオプションは、 telnetd が認証オプションをサポートする設定で構築されたときにのみ有効です。 authtype 認証を無効にし、 telnetd を再コンパイルすることなしに特定の認証タイプを一時的に無効にするために使用することができます。利用可能な authtype 値は、 KERBEROS_V4, KERBEROS_V5, SPX, MINK と SRA を含んでいます。これらのオプションは、 -a オプションから完全に独立しています。
telnetd は、仮想端末デバイス ( pty(4) 参照) をクライアントに割り当てます。そして、 stdin, stdout, stderr として仮想端末のスレーブ側を使用する login プロセスを生成します。 telnetd は、 TELNET プロトコルを実装し、リモートクライアントと login プロセスとの間のキャラクタを通過させることにより、仮想端末のマスタ側を操作します。
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
- このコマンドは、実際にはサポートされませんが、クライアントが 4.2BSD telnet(1) クライアント ( WILL ECHO に正しく応答しない) であるかを判断するために送信されます。もし、 WILL ECHO が受信された場合は、それに対して DONT ECHO が送信されます。
- DO TERMINAL-TYPE
- 接続のクライアント側に割り当てられた端末タイプの名前を要求できるように指定します。
- DO SGA
- IAC GA すなわち go ahead コマンドを受信する必要がないように指定します。
- DO NAWS
- ウィンドウ (ディスプレイ) のサイズが変わった場合に、クライアントがそれをサーバに知らせる事を要求します。
- DO TERMINAL-SPEED
- クライアントに割り当てられたシリアルラインの速度に関する情報を要求できるように指定します。
- DO XDISPLOC
- telnet クライアントが使用している X Window System のディスプレイの名前を要求できるように指定します。
- 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 がデータの暗号化をサポートする設定で構築された場合のみ送信され、データ列に対して暗号を復号するように指定します。
注
デフォルトでは、 telnetd は、 /etc/gettytab から he, hn, im のケーパビリティを読み込み、 (存在すれば) これらの情報を使用し、 login: プロンプト前に何を表示するかを判定します。 if ケーパビリティを使用して、System V スタイルの /etc/issue ファイルも使用できます。これは、 im に優先します。 im または if に指定された情報は、コンソールとリモートの両方のログインに対して表示されます。関連ファイル
- /etc/services
- /etc/gettytab
- /etc/iptos
- (サポートされている場合)
- /usr/ucb/bftp
- (サポートされている場合)
規格
- 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
歴史
IPv6 サポートは、WIDE/KAME プロジェクトによって追加されました。バグ
いくつかの TELNET コマンドは、部分的にしか実装されていまいません。オリジナルの 4.2BSD の telnet(1) のバグに対処するため、 telnetd は、ある種のあいまいなプロトコル変換を行うことにより、リモートクライアントが実際に 4.2BSD の telnet(1) であるかどうかを判断しようとします。
バイナリモードは、よく似たオペレーティングシステム (この場合 Unix) 間以外では、互換性がありません。
リモートクライアントから受け取った端末タイプの名前は、小文字に変換されます。
telnetd は、 TELNET IAC GA (go ahead) コマンドを絶対に送りません。
August 28, 2008 | FreeBSD |