rlogin
rlogin(アールログイン)は、UNIXでネットワーク経由で遠隔のサーバにログインするソフトウェア・ユーティリティであり、TCPポート番号 513 を使う。4.2BSDで最初に実装された。rlogin はそのソフトウェアで使われているアプリケーション層の通信プロトコル名でもあり、TCP/IPプロトコルスタックの一部である。認証されたユーザーは、あたかもそのコンピュータに物理的に存在しているかのように振舞うことができる。RFC 1258 における定義によれば、「rlogin 機能は、遠隔でエコー制御され、ローカルにフロー制御された仮想端末を提供し、出力は適正にフラッシュされる」とある。rlogin は遠隔ホスト上のデーモン rlogind と通信する。rlogin は telnet コマンドとよく似ているが、カスタマイズが不可能であり、UNIX 以外のホストに接続できない。
rlogin は企業や大学のネットワーク内で主に使われる。そのような環境では、ネットワーク上の各UNIXマシンのユーザーアカウント情報が(NISを使って)共有されている。これは、ネットワーク基盤や各マシンが信頼できるからこそ可能なことであり、rlogin プロトコルはそのような信頼の上に成り立っている。遠隔ホストが /etc/hosts.equiv ファイルに登録されていれば、あるいはユーザーがホームディレクトリに .rhosts ファイルを持っていれば、rlogin はパスワード入力なしでログインできる(ホームディレクトリは NFS で共有することが多い)。
rlogin にはいくつか非常に重大なセキュリティ問題がある。
- パスワードも含めた全ての情報が暗号化されずに転送される(容易に覗き見できる)。
- .rlogin(または .rhosts)ファイルの使用法を間違いやすい(誰でもパスワードなしでログインできるように設定してしまいやすい)。このため、企業のアドミニストレータは .rlogin ファイルの使用を禁止することが多い。
- このプロトコルは、発信元がホスト名やポート番号を偽らないことに一部依存している。したがって、悪意あるクライアントがサーバを騙してアクセスを得ることができる。すなわち、rlogin プロトコルには相手のマシンの識別を認証する手段がなく、それが信頼されたマシン上の真の rlogin クライアントであることを保証する手段がない。
- NFS によるホームディレクトリのマウントは普通に行われるが、それによって偽の .rhosts ファイルを使った攻撃が可能となる。
このような問題があるため、rlogin は(インターネットのような)信頼できないネットワークでは使われない。さらに、UNIXやLinuxもデフォルトでは rlogin が使えないようにしているものが多く、限定的な利用も減ってきている。かつては rlogin や telnet を使っていたネットワークは、SSH と rlogin 相当の slogin を使うようになっている。
BSDのオリジナルのパッケージには、rlogin と共に rcp(リモートコピー、ネットワーク経由のファイルコピー機能)と rsh(リモートシェル、ログインせずに遠隔マシン上でコマンドを実行する機能)が含まれていた。これらは hosts.equiv と .rhosts によるアクセス制御を共有しており(接続に使われるデーモンは rshd であり、rlogind とは異なる)、同様のセキュリティ問題を抱えている。SSH にはこれらを置換する機能も含まれている(rcp の代替としては scp、rsh と rlogin は SSH 自体が代替する)。
この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。
外部リンク
- rlogin(1): The Untold Story (PDF)
- RFC 1282 - BSD Rlogin
- Manpage of RLOGIN JMプロジェクト
- rlogin(1) man page(SunOS リファレンスマニュアル)
- rlogin(1) man page(HP-UX リファレンス)