.\" Copyright (c) 1983, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)telnetd.8 8.4 (Berkeley) 6/1/94 .\" %FreeBSD: src/contrib/telnet/telnetd/telnetd.8,v 1.18 2001/12/14 14:41:07 ru Exp % .\" .\" $FreeBSD$ .\" .Dd January 27, 2000 .Dt TELNETD 8 .Os .Sh 名称 .Nm telnetd .Nd DARPA .Tn TELNET プロトコルサーバ .Sh 書式 .Nm /usr/libexec/telnetd .Op Fl BUhlkn .Op Fl D Ar debugmode .Op Fl S Ar tos .Op Fl X Ar authtype .Op Fl a Ar authmode .Op Fl edebug .Op Fl p Ar loginprog .Op Fl u Ar len .Op Fl debug Op Ar port .Sh 解説 .Nm コマンドは、 .Tn DARPA 標準 .Tn TELNET 仮想端末プロトコルをサポートするサーバです。 .Nm は、通常は .Pa /etc/services ファイル ( .Xr services 5 参照) に記述されている .Tn TELNET ポートへの接続要求を受けて、インターネットサーバ ( .Xr inetd 8 参照) から起動されます。 .Fl debug オプションは、 .Xr inetd 8 の代わりに .Nm を手動で起動するために用いられます。 このように手動で起動された場合には、代わりの .Tn TCP ポート番号で .Nm を動かすために .Ar port を指定する事ができます。 .Pp .Nm コマンドには以下のオプションがあります: .Bl -tag -width indent .It Fl a Ar authmode このオプションは、どのモードが認証に使われるかを指定するために用いられます。 このオプションは、 .Nm が .Dv AUTHENTICATION オプションをサポートする設定で構築された場合においてのみ役に立つことに 注意して下さい。 以下に示すようないくつかの .Ar authmode があります: .Bl -tag -width debug .It Cm debug 認証のデバッグコードを有効にします。 .It Cm user リモートユーザは、自分自身であること示すための有効な認証情報を 提供した時にのみ接続が許可されます。 この場合、指定されたアカウントに対しては、パスワードの提供なしに接続が 許可されます。 .It Cm valid リモートユーザが自分自身であることを示すための有効な認証情報を 提供した時にのみ接続が許可されます。 リモートユーザが指定されたアカウントに対する自動的な接続が許可されて いなければ .Xr login 1 コマンドは、必要となるユーザ認証を実施します。 .It Cm other ある種の認証情報を提供した場合のみ接続を許可します。 現在このオプションはすべての認証方法でサポートされていないため .Fl a .Cm valid オプションを指定した時と同じ動作をします。 .It Cm none デフォルトではこの状態です。 認証情報は要求されません。 もし認証情報がなかったり不十分であれば、 .Xr login 1 プログラムによって必要となるユーザ認証を実施します。 .It Cm off 認証コードを無効にします。 すべてのユーザ証明が .Xr login 1 プログラムによって行われます。 .El .It Fl B bftp サーバモードを指定します。 このモードでは、 .Nm は、ユーザの通常のシェルの代りに .Xr bftp 1 セッションをログインに開始させます。 bftp デーモンモードでは、通常のログインはサポートされません。 これは、通常の .Tn TELNET ポート以外のポートで使用される必要があります。 .It Fl D Ar debugmode このモードはデバックのために用いられます。 これによって .Nm がデバッグ情報を表示し、ユーザは .Nm が何をしているのかを見ることが許されます。 以下に示すようないくつかの .Ar debugmode があります: .Bl -tag -width exercise .It Cm options .Tn TELNET オプションのネゴシエーションについての情報が表示されます。 .It Cm report .Cm options で表示される情報に加えて、 どのような操作が行われているのかという、いくつかの付加的な情報が 表示されます。 .It Cm netdata .Nm が受け取ったデータストリームを表示します。 .It Cm ptydata pty に書かれたデータを表示します。 .It Cm exercise まだ実装されていません。 .El .It Fl debug .Nm によって作られたソケットについてのデバッグを可能にします ( .Xr socket 2 の .Dv SO_DEBUG 参照)。 .It Fl edebug .Nm がデータの暗号化をサポートする設定で構築されている場合に、 .Fl edebug オプションは、暗号化デバッグコードを有効にするために使われます。 .It Fl h ログインが完了するまでホストに特有の情報を表示しないようにします。 .It Fl k このオプションは、 .Nm が linemode と kludge linemode をサポートする設定で構築されている ときにのみ有効です。 .Fl k オプションが指定されている場合で、もしリモートのクライアントが .Dv LINEMODE オプションをサポートしていなければ、 .Nm は、 character at a time mode で動きます。 この様な状態でも kludge linemode をサポートしますが、リモートのクライアントが 要求した場合のみ kludge linemode になります (これは、クライアントが .Dv DONT SUPPRESS-GO-AHEAD と .Dv DONT ECHO を送信することによって行われます)。 .Fl k オプションは kludge linemode をサポートしていないリモートクライアントが あるが、(もしクライアントが .Dv DO TIMING-MARK に対して .Dv WILL TIMING-MARK を応答する事で) 自己発見的に kludge linemode をサポートすると認められる 様な場合にとても便利です。 .It Fl l line mode を指定します。クライアントを強制的に line-at-a-time mode に なるよう試みます。 もし .Dv LINEMODE オプションがサポートされてなければ、kludge linemode になります。 .It Fl n .Dv TCP keep-alives を行いません。通常、 .Nm は .Tn TCP keep-alive を有効にしています。なぜなら、クラッシュしたり、すでに接続 出来ないようなマシンからのアイドルコネクションを解消するために、 ある期間アイドルだった場合にクライアントとの接続がまだ存在するかどうかを 調べる必要があるからです。 .It Fl p Ar loginprog ログインを完了する際に実行されるコマンドとして .Xr login 1 以外のコマンドを指定します。 指定されたコマンドは通常の login と同じ引数を 解釈できる必要があります。 .It Fl S Ar tos .It Fl u Ar len このオプションは、リモートホスト名を保持している .Dv utmp 構造体のフィールドの大きさを指定するために使われます。 もし解決されたホスト名が .Ar len よりも長ければ、ホスト名の代わりにドットで区切られたアドレスが使われます。 これによりフィールドを超えるようなとても長いホスト名を 一意に特定できるようにします。 .Fl u0 を指定することによって、ドットで区切られたアドレスだけが .Pa utmp ファイルに書き込まれるようにします。 .It Fl U このオプションは .Nm が、 .Xr gethostbyaddr 3 ルーチンを通してシンボルでの名前にマップされないようなアドレスからの コネクションを拒絶するようにします。 .It Fl X Ar authtype このオプションは .Nm が認証オプションをサポートする設定で構築されたときにのみ有効です。 .Ar authtype 認証を使用不能にし、 .Nm を再コンパイルすることなしに 特定の認証タイプを一時的に使用不能にする事が出来ます。 .El .Pp .Nm は仮想端末デバイス ( .Xr pty 4 参照) をクライアントに割り当てます。 そして、 .Dv stdin , .Dv stdout , .Dv stderr として仮想端末のスレーブ側を使用する login プロセスを生成します。 .Nm は、 .Tn TELNET プロトコルを実装し、 リモートクライアントと login プロセスとの間の キャラクタを通過させることにより、仮想端末のマスタ側を操作します。 .Pp .Tn TELNET セッションが開始されると .Nm は以下の .Tn TELNET オプションをクライアント側に送信して、これらの .Tn TELNET オプションの使用を希望している事を伝えます。 これらのオプションの詳細については以下に説明されています。 .Bd -literal -offset indent 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 .Ed .Pp クライアントに割り当てられた仮想端末は、 .Dq cooked モードで動作し、 .Dv XTABS と .Dv CRMOD ( .Xr tty 4 参照) が有効な状態で操作するように設定されます。 .Pp .Nm は、ローカル側で有効な以下に示す .Tn TELNET オプションをサポートしています: .Bl -tag -width "DO AUTHENTICATION" .It "WILL ECHO" .Dv LINEMODE オプションが設定されている時に 端末エコーの現在の状態を示すためにクライアントに .Dv WILL ECHO あるいは .Dv WONT ECHO が送信されます。 端末エコーが不要な場合は、 .Tn telnetd がエコーが必要なデータに対する エコーを処理する事を示すために .Dv WILL ECHO が送信され、何もエコーされません。 端末エコーが必要な場合は、 .Tn telnetd がいかなる端末エコーも 行わない事を示すために .Dv WONT ECHO が送信されるので、必要な時は端末エコーをクライアント側が 行わなければなりません。 .It "WILL BINARY" クライアントが、通常のネットワーク仮想端末が用いる 7 ビットのデータ ではなく、8 ビットのデータを送信するように指定します。 .It "WILL SGA" .Dv IAC GA すなわち go ahead コマンドを送信しないように指定します。 .It "WILL STATUS" クライアントから要求があった時に、全ての .Tn TELNET オプションの現在の状況を送信するように指定します。 .It "WILL TIMING-MARK" .Dv DO TIMING-MARK コマンドが受信された場合に、常にそれに対して .Dv WILL TIMING-MARK を返答します。 .It "WILL LOGOUT" .Dv DO LOGOUT が受信されると .Dv WILL LOGOUT を返答し、 .Tn TELNET セッションはシャットダウンされます。 .It "WILL ENCRYPT" .Nm がデータの暗号化をサポートする設定で構築された場合のみ送信され、 データ列に対して暗号を復号するように指定します。 .El .Pp .Nm はリモート側で有効な以下に示す .Tn TELNET オプションをサポートしています: .Bl -tag -width "DO AUTHENTICATION" .It "DO BINARY" .Nm telnetd が 8 ビットのデータ列を受信するように指定します。 .It "DO LFLOW" クライアントがフロー制御文字をリモート側で処理するように指定します。 .It "DO ECHO" このコマンドは実際にはサポートされませんが、クライアントが .Bx 4.2 .Xr telnet 1 クライアント ( .Dv WILL ECHO に正しく応答しない) であるかを判断するために送信されます。 もし、 .Dv WILL ECHO が受信された場合は、それに対して .Dv DONT ECHO が送信されます。 .It "DO TERMINAL-TYPE" 接続のクライアント側に割り当てられた端末タイプの名前を 要求できるように指定します。 .It "DO SGA" .Dv IAC GA すなわち go ahead コマンドを受信する必要がないように指定します。 .It "DO NAWS" ウィンドウ (ディスプレイ) のサイズが変わった場合に、クライアントが それをサーバに知らせる事を要求します。 .It "DO TERMINAL-SPEED" クライアントに割り当てられたシリアルラインの速度に関する情報を 要求できるように指定します。 .It "DO XDISPLOC" telnet クライアントが使用している X ウィンドウのディスプレイの名前を 要求できるように指定します。 .It "DO NEW-ENVIRON" RFC 1572 に示されている環境変数に関する情報を 要求できるように指定します。 .It "DO ENVIRON" RFC 1408 に示されている環境変数に関する情報を 要求できるように指定します。 .It "DO LINEMODE" .Nm が linemode をサポートする設定で構築された場合のみ送信され、 クライアントに行単位の処理を行う事を要求します。 .It "DO TIMING-MARK" .Nm が linemode および kludge linemode の両方をサポートする設定で 構築され、クライアントが .Dv WONT LINEMODE を返信した場合のみ送信されます。 クライアントが .Dv WILL TM を返信した場合は、クライアントが kludge linemode を サポートしていると判断されます。 .Op Fl k オプションによりこの機能を無効にする事ができます。 .It "DO AUTHENTICATION" .Nm が認証機能をサポートする設定で構築された場合のみ送信され、 自動ログインに使用する認証情報を受信するようにします。 .It "DO ENCRYPT" .Nm がデータの暗号化をサポートする設定で構築された場合のみ送信され、 データ列に対して暗号を復号するように指定します。 .El .Sh 注 デフォルトでは、 .Nm は .Pa /etc/gettytab から .Em \&he , .Em \&hn , .Em \&im のケーパビリティを読み、(存在するならば) この情報を使用して login: プロンプトの前に何を表示すべきかを決定します。 .Em \&im ケーパビリティに優先する .Em \&if ケーパビリティを使用して、System V スタイルの .Pa /etc/issue ファイルを使うこともできます。 .Em \&im または .Em \&if に指定される情報は、コンソールとリモートログインの両方で表示されます。 .Sh 注 デフォルトでは、 .Nm は .Pa /etc/gettytab から .Em \&he , .Em \&hn , .Em \&im のケーパビリティを読み取り、 (存在すれば) これらの情報を使用し、 login: プロンプト前に何を表示するかを判定します。 .Em \&if ケーパビリティを使用して、System V style スタイルの .Pa /etc/issue ファイルも使用できます。 これは、 .Em \&im に優先します。 .Em \&im または .Em \&if に指定された情報は、 コンソールとリモートの両方のログインに対して表示されます。 .\" .Sh 環境変数 .Sh 関連ファイル .Bl -tag -width /usr/ucb/bftp -compact .It Pa /etc/services .It Pa /etc/gettytab .It Pa /etc/iptos (サポートされている場合) .It Pa /usr/ucb/bftp (サポートされている場合) .El .Sh "関連項目" .Xr bftp 1 , .Xr login 1 , .Xr gettytab 5 , .Xr telnet 1 (サポートされている場合) .Sh 標準 .Bl -tag -compact -width RFC-1572 .It Cm RFC-854 .Tn TELNET PROTOCOL SPECIFICATION .It Cm RFC-855 TELNET OPTION SPECIFICATIONS .It Cm RFC-856 TELNET BINARY TRANSMISSION .It Cm RFC-857 TELNET ECHO OPTION .It Cm RFC-858 TELNET SUPPRESS GO AHEAD OPTION .It Cm RFC-859 TELNET STATUS OPTION .It Cm RFC-860 TELNET TIMING MARK OPTION .It Cm RFC-861 TELNET EXTENDED OPTIONS - LIST OPTION .It Cm RFC-885 TELNET END OF RECORD OPTION .It Cm RFC-1073 Telnet Window Size Option .It Cm RFC-1079 Telnet Terminal Speed Option .It Cm RFC-1091 Telnet Terminal-Type Option .It Cm RFC-1096 Telnet X Display Location Option .It Cm RFC-1123 Requirements for Internet Hosts -- Application and Support .It Cm RFC-1184 Telnet Linemode Option .It Cm RFC-1372 Telnet Remote Flow Control Option .It Cm RFC-1416 Telnet Authentication Option .It Cm RFC-1411 Telnet Authentication: Kerberos Version 4 .It Cm RFC-1412 Telnet Authentication: SPX .It Cm RFC-1571 Telnet Environment Option Interoperability Issues .It Cm RFC-1572 Telnet Environment Option .El .Sh バグ いくつかの .Tn TELNET コマンドは部分的にしか実装されていまいません。 .Pp オリジナルの .Bx 4.2 の .Xr telnet 1 のバグに対処するため、 .Nm は、ある種のあいまいなプロトコル変換を行うことにより、 リモートクライアントが実際に .Bx 4.2 の .Xr telnet 1 であるかどうかを判断しようとします。 .Pp バイナリモードは よく似たオペレーティングシステム (この場合 Unix) 間以外では 互換性がありません。 .Pp リモートクライアントから受け取った端末タイプの名前は小文字に変換されます。 .Pp .Nm は、 .Tn TELNET .Dv IAC GA (go ahead) コマンドを絶対に送りません。 .Sh 歴史 IPv6 サポートは、WIDE/KAME プロジェクトが追加しました。