| 開発者 | カリフォルニア大学バークレー校コンピュータシステム研究グループ |
|---|---|
| 初回リリース | 1981年6月 |
| オペレーティング·システム | UnixおよびUnixライク |
| タイプ | コマンド スイート |
| ライセンス | BSDA の |
バークレーrコマンドは、あるUnixシステムのユーザーがTCP/IPコンピュータネットワークを介して別のUnixコンピュータにログインしたりコマンドを発行したりできるように設計されたコンピュータプログラムスイートです。[1] rコマンドは、 TCP/IP(インターネットのプロトコルスタック)の初期の実装に基づいて、カリフォルニア大学バークレー校のコンピュータシステム研究グループによって1982年に開発されました。[2]
CSRGはrコマンドをUnix オペレーティングシステムであるBerkeley Software Distribution (BSD)に組み込みました。rコマンドはBSD v4.1で初めて導入されました。[2]このスイートに含まれるプログラムには、rcp(リモートコピー)、rexec(リモート実行)、rlogin(リモートログイン)、rsh(リモートシェル) rstat、、、(リモートwhoruptime )などがあります。[2] [3]rwho
rコマンドは重要な革新であり、Unixオペレーティングシステムの事実上の標準となりました。 [4] [5]インターネットが広く普及するにつれて、それらの固有のセキュリティ上の脆弱性が問題となり、[6] 1995年にSecure Shellプロトコルとアプリケーションが開発されて以来、ネットワークシステムでのrコマンド(およびTelnet )の導入と使用はSecure Shellの採用によって完全に置き換えられました。[7]
プロトコル
オリジナルの Berkeley パッケージには、(リモート コピー、ネットワーク経由でファイルをコピーできる)rlogin機能とrsh (リモート シェル、ユーザーがログインしなくてもリモート マシンでコマンドを実行できる) 機能も用意されています。
rcp
一例として、プロトコルは以下のとおりです。[11]
クライアント:
<null>クライアント上の
ユーザー 名<null> サーバー上の
ユーザー 名<null>
端末 タイプ/端末 ボーレート <null>
サーバ:
サーバーは、ユーザーがアクセスできるかどうかを確認します。アクセスできる場合は、何も含まれていないメッセージ (ヌル文字も含まれていない) を返します。これは、接続が確立されたことを意味します。例:
クライアント:
<null>
ボスティック<null>
kbostic<null>
vt100/9600<ヌル>
サーバ:
と はrlogin、異なるデーモンに接続しますが、 (サーバー上のすべてのユーザーに適用) と(ファイルをホーム フォルダーに置いたユーザーのみに適用) のアクセス制御スキームを rsh共有します。 は に接続しますが、はに接続します。
と は同じ形式を使用します。 次に、形式のいくつかの側面を示します。[12] [13]/etc/hosts.equiv$HOME/.rhostsrloginrlogindrshrshdhosts.equiv.rhosts
ホスト1
ホスト2 ユーザー_a
-ホスト3
+@グループ1 -ユーザー_b
-@グループ2
これにより、host1 のすべてのユーザー、host2 の user_a のログインが許可されますが、host3 のユーザーはログインできず、group1 の user_b を除くすべてのユーザーはログインでき、group2 のユーザーはログインできません。
コマンド
rログイン
rloginユーザーは、 TCPネットワーク ポート513を使用して、コンピュータ ネットワーク経由で別のサーバーにログインできます。
rloginは、ソフトウェアが使用するアプリケーション層 プロトコルの名前でもあり、 TCP/IPプロトコル スイートの一部です。認証されたユーザーは、物理的にコンピュータの前にいるかのように行動できます。これが定義されている RFC 1282 には、「この機能は、出力を適切にフラッシュする、リモート エコー、ローカル フロー制御の仮想端末を提供します。」と記載されてrloginいます。リモート ホスト上のデーモンrloginと通信します。はTelnetコマンドに似ていますが、カスタマイズ性が低く、Unix 系ホストにしか接続できません。
rlogindrlogin
rsh
rshログイン手順なしでリモートコンピュータ上でシェルを開きます。接続されると、ユーザーはシェルのコマンドラインインターフェイスを介してリモートコンピュータ上でコマンドを実行できます。入力と出力を標準ストリームに渡し、標準出力をユーザーのコンソールに送信します。ネットワーク上では、標準入力と標準出力はTCPポート514を介して流れ、標準エラーはデーモン( )によって開かれる別のTCPポートを介して流れます。[14]rshrsh rshd
レックス
と同様にrsh、rexecはユーザーがリモートコンピュータ上でシェルコマンドを実行できるようにします。ただし、rshサーバーとは異なり、rexecサーバー( )はログインを必要とします。サーバーは、ネットワークソケットrexecdからユーザー名とパスワード(暗号化されていない)を読み取ることによってユーザーを認証します。[15]はTCPポート512を使用します。
rexec
rcp
rcpは、ローカルシステムからリモートシステムへ、リモートシステムからローカルシステムへ、またはリモートシステムから別のリモートシステムへファイルまたはディレクトリをコピーすることができます。[16]と のコマンドライン引数cpは似ていますがrcp、リモートファイルでは、rcpリモートシステムの名前がプレフィックスとして付きます。
rcp ファイル.txt サブドメイン.ドメイン:~/home/foo/file.txt
Unixのコピーコマンドcpと同様に、rcpはターゲット内の同じ名前の既存のファイルを上書きします。とは異なりcp、ターゲットファイルを上書きする前にユーザーに警告するメカニズムは提供されていません。[16]と同様にrsh、rcpTCPポート514を使用します。 [17]
誰
whoコマンドがローカルUnixシステムにログインしているユーザーをリストするのと同様に、はローカルネットワーク上のすべてのマルチユーザーrwhoUnixシステムにログインしているユーザーをリストします。 [18]のデーモンは、ローカルネットワーク上のUnixシステムのステータスのデータベースを管理します。デーモンとそのデータベースはプログラムによっても使用されます。[19] rwhorwhodruptime
rstat
rstatカーネルからパフォーマンス統計を返します。
破裂
uptimeコマンドがUnixシステムが前回の再起動からどのくらい稼働しているかを表示するのと同様に、ruptimeはローカルネットワーク上のすべてのコンピュータからステータスレポートを要求します。その後、稼働時間レポートを返します。コンピュータが時間制限内に応答しなかった場合、はruptimeシステムがダウンしていると報告します。[20]この情報はデーモンによって追跡および保存されrwhod、rwhoコマンドでも使用されます。[19]
安全
ユーザー認証を伴う r コマンド ( rcp、、、およびrexec)には、いくつかの重大なセキュリティ上の脆弱性が存在します。
rloginrsh
- パスワードを含むすべての情報は暗号化されずに送信されます(傍受される危険性があります)。
.rlogin(または)ファイルは悪用されやすいです。パスワード.rhostsなしでログインできるように設計されていますが、リモート ユーザー名、ホスト名、および IP アドレスに依存しているため、悪用される可能性があります。このため、多くの企業のシステム管理者はファイルを禁止し、違反者がいないかネットワークを精査しています。.rhosts- このプロトコルは、ソース ポートやソース ホスト名などの情報をリモート パーティの
rloginクライアントが正直に提供することを部分的に前提としています。プロトコルにはクライアントが信頼できるマシン上で実行されていることを認証するrlogin手段がないため、悪意のあるクライアントがこれを偽造してアクセスを取得する可能性があります。また、信頼できるマシン上の要求元クライアントが実際のクライアントであるかどうかを確認することもできません。つまり、悪意のあるプログラムが同じプロトコルを使用して標準準拠のクライアントを装う可能性があります。rloginrlogin - ネットワーク ファイル システムを介してユーザーのホーム ディレクトリをマウントするという一般的な方法により、rlogin は偽のファイルによる攻撃にさらされることになります。
.rhostsつまり、セキュリティ上の欠陥があれば、自動的に に影響を及ぼすことになりますrlogin。
これらの問題により、rコマンドは比較的使われなくなってしまった(多くのUnixおよびLinuxディストリビューションではデフォルトでrコマンドが含まれていない)。以前はrコマンドに依存していた多くのネットワークはrlogin、 rコマンドをSSHやそれと同等のtelnetものに置き換えた。[21] [22]rloginslogin
参照
注記
- ^ Horwitz, Jeff (2003) [2002]. 「パスワードなしで Berkeley r コマンドを使用する」. Unix システム管理: 入門書 プラス. Sams Publishing. p. 339. ISBN 978-0-672-32372-02018年3月4日閲覧– Google ブックス経由。
- ^ abc McKusick、Marshall Kirk (1999)。「Berkeley Unix の 20 年: AT&T 所有から自由に再配布可能へ」。Open Sources: オープンソース革命の声。O'Reilly & Associates。セクション:「4.2BSD」。ISBN 978-1-56592-582-3. 2018年3月3日閲覧。
- ^ Pyles, James; Carrell, Jeffrey L.; Tittel, Ed (2017)。「どの IP サービスが最も脆弱か?」TCP/IP ガイド: IPv6 と IPv4 (第 5 版)。Cengage Learning。p. 659。ISBN 978-1-305-94695-8– Google ブックス経由。
- ^ カサド(2008)、346ページ
- ^ Negus, Christopher (2004-07-02). 「"r" コマンドについて」. Red Hat Fedora Linux 2 バイブル. Wiley. ISBN 0-7645-5745-9. OCLC 441918216 . 2018年3月4日閲覧。
- ^ 「セキュアネットワーク層プロトコルの使用に関するケーススタディ」CiteSeerX 10.1.1.178.8497。
- ^ Nicholas Rosasco、David Larochelle。「より安全なテクノロジーがレガシー市場で 成功する理由と方法:SSHの成功からの教訓」 (カンファレンスペーパー)。ハーバード大学。doi :10.1007/1-4020-8090-5_18。S2CID 19035681。2023年4月13日閲覧。
- ^ 「REXEC コマンド - リモート ホストでコマンドを実行し、ローカル ホストで結果を受信する」。z/OS Communications Server: IP ユーザーズ ガイドとコマンド。2013 [1990] 。2018 年 3 月 4 日閲覧。
- ^ ab 「ポートの詳細」。FreeBSDネットワーク管理者ガイド。2018年 3 月 4 日閲覧。
- ^ ab Casad (2008)、350–51 ページ
- ^ Kantor, Brian (1991 年 12 月). BSD Rlogin (レポート). Internet Engineering Task Force.
- ^ 「TCP/IP の .rhosts ファイル形式」。www.ibm.com。2023年 11 月 29 日閲覧。
- ^ 「TCP/IP の hosts.equiv ファイル形式」。www.ibm.com。2023年 11 月 29 日閲覧。
- ^ Edwards, Wade; Lancaster, Tom; Quinn, Eric; Rohm, Jason; Tow, Bryant (2004). CCSP: セキュア PIX およびセキュア VPN 学習ガイド. Sybex . p. 154. ISBN 0-7821-4287-72018年3月7日閲覧– Google ブックス経由。
- ^ "rexecd(8)". manpagez.com . 2018年3月3日閲覧。
- ^ ab Farrell, Phillip (2004年8月3日). "rcp". earthsci.stanford.edu . スタンフォード大学地球・エネルギー・環境科学部。2021年2月7日時点のオリジナルよりアーカイブ。2018年3月6日閲覧。
- ^ 「Rlogin、RSH、および RCP」。SourceDaddy。2018年 2 月 18 日閲覧。
- ^ 「rwho (1) - Linux Man Pages」。2018年3月7日閲覧。
- ^ ab "rwhod (8) - Linux Man Pages" . 2018年3月7日閲覧。
- ^ "ruptime (1) - Linux Man Pages". SysTutorials . 2018年3月7日閲覧。
- ^ Sobell, Mark (2010). Linux コマンド、エディター、シェルプログラミングの実践ガイド。Pearson Education、Inc. ISBN 978-0-13-136736-4。
- ^ 「Unixジョブ制御コマンドリスト」インディアナ大学。 2014年12月20日閲覧。
参考文献
- Casad, Joe (2008)。「Berkeley Remote Utilities」。Sams著『24 時間で TCP/IP を独学する』。Pearson Education。ISBN 978-0-13-271513-3– Google ブックス経由。
さらに読む
- Noordergraaf, Alex (2003) [2002]. 「リモート アクセス サービス (rsh、rlogin、および rcp)」。エンタープライズセキュリティ: Solaris オペレーティング環境、Security Journal、Solaris OE v2.51、2.6、7、および 8。Prentice Hall。ISBN 978-0-13-100092-6。
- Poniatowski, Marty (2000) UNIX ユーザーズ ハンドブック(第 1 版) Prentice Hall。pp. 475–77。ISBN 978-0-13-027019-1. OCLC 43561861.
- Rogers, Lawrence R. (1998 年 11 月)。「rlogin(1): 語られざる物語」(PDF) 。2001 年 12 月 17 日のオリジナル(PDF)からアーカイブ。
- 「Unix ユーザー列挙」。侵入テスト ラボ。2012 年 4 月 10 日。
