名前


rlogind - リモートログインサーバ

書式


rlogind [-ahlLn]

説明


rlogindrlogin(1) プログラムのためのサーバである。 このサーバは、信頼できるホストからの特権ポート番号に基づいた認証を用いて、 リモートログイン機能を提供する。

rlogind がサポートするオプションは、以下の通りである:
-a 検証のために、ホスト名を問い合わせる。
-h スーパーユーザーの "
.rhosts
" ファイルの使用を許可する。
-l ユーザーの "
.rhosts
" ファイルによる認証を行わせない。 ユーザーがスーパーユーザーとしてログインしている場合に、 -h オプションが使われると、 "
.rhosts
" による認証処理が行われる。
-L "
.rhosts
" や "
hosts.equiv
" の情報に基づく認証を行わせない。
-n キープアライブメッセージを使わせない。

PAM (Pluggable Authentication Module) サポートが使用中である場合、 -h, -l, -L フラグは使われない。 この場合

 /etc/pam.conf
を編集することで、同様の効果を得ることができる。

-h と -l オプションを、システムにインストールされている 特定のバージョンの libc とともに使う場合は、 期待通りに動作するかを検証せずに信頼すべきではない (また、libc を更新した後にはテストすべきである)。 なぜなら、libc のいくつかのバージョンでは rlogind で使われる内部フラグの通りには動作しない。 -L オプションは libc の関数を完全にバイパスするので、 この問題には影響を受けない。

 .rhosts
システムの設計は、 ファイアーウォールで慎重に保護されたプライベートネットワーク以外では、 「全く安全性がない」ことにも注意すること。 それ以外の環境下では、常に -L オプションを使うこと。 更に、 rlogind は通信を暗号化しないので、一般的に言うと、本当に使うべきではない。 ssh(8) の使用を考慮に入れること。

rlogind は、‘‘login’’ サービスの仕様に基づくポート番号で、 サービス要求を受け付ける。 services(5) を参照すること。 サービスの要求を受け取ると、以下のプロトコルを開始する:

  1. サーバはクライアントの要求元ポート番号を調べる。 このポート番号が 512 〜 1023 の範囲でない場合、 サーバは接続を中止する。
  2. サーバはクライアントの要求元 IP アドレスを調べ、 それに対応するホスト名を求める ( gethostbyaddr(3) , hosts(5,) named(8) を参照すること)。 ホスト名が決定できない場合、 ドット表記法によるホストアドレスが使われる。 (ドメイン名の後ろから 2 つを使って判断した) ホスト名がサーバと同じドメインの場合、 または -a オプションが指定されている場合、 ホスト名に対するアドレスが求められ、 ホスト名とアドレスが一致しているかを検証する。 アドレスの検証に失敗した場合、通常の認証作業を行わない。

要求元のポート番号とアドレスが検証されると、 rlogindrshd(8) で説明されている認証プロセスを開始する。 そして、疑似端末 ( pty(4) を参照) を割り当てるとともに、ファイルディスクリプタを操作する。 これにより、疑似端末のスレーブ側がログインプロセスの stdin, stdout, stderr になる。 認証が成功した場合、 login(1) プログラムに -f オプションを指定して起動し、 ログインプロセスを生成する。 自動認証が失敗した場合、通常の端末回線からのログインと同様に、 ユーザーにログインのプロンプトが出される。

ログインプロセスの親プロセスは、疑似端末のマスタ側を操作する。 これは、ログインプロセスと rlogin プログラムを実体化したものとの間を仲介する役割をする。 通常の操作では、 ‘

^S/^Q
’ のような機能を提供したり、 割り込み信号をリモートプログラムに伝えるために、 pty(4) で説明されているパケットプロトコルを起動する。 ログインプロセスは、 クライアント端末の通信速度や環境変数 ‘
TERM
’ で指定されている端末タイプを伝える。 environ(7) を参照すること。 端末のスクリーンサイズやウインドウサイズがクライアント側から要求される。 そして、クライアントから変更されたウインドウサイズは、 疑似端末へと伝えられる。

トランスポートレベルのキープアライブメッセージは、 -n オプションが指定されていない限り出力される。 キープアライブメッセージを使うと、 クライアントがクラッシュしたり、通信不能になった場合に、 セッションをタイムアウトで終了することが可能になる。

返り値


ネットワーク接続が切断された後、 全ての初期診断メッセージは、先頭に値 1 のバイトを付けて通知される。 login が起動される前にエラーが発生していない場合、 成功したことを通知するために、ヌル文字のバイトが返される。
Try again.
 サーバが fork に失敗した。

関連項目


login(1), ruserok(3), rshd(8)

バグ


ここで使われる認証手続きは、それぞれのクライアントマシンと 接続媒体が完全であることを仮定している。 これは安全ではないが、「オープンな」環境では便利である。

通信する全てのデータを暗号化する機能が提供されるべきである。

もっと発展性のあるプロトコルが用いられるべきである。

履歴


rlogind コマンドは BSD 4.2 で登場した。

翻訳者謝辞


この man ページの翻訳にあたり、 FreeBSD jpman project <http://www.jp.freebsd.org/man-jp/> による翻訳を参考にさせていただいた。

openSUSE Logo

コンテンツ