アクセラと+αな生活
アクセラとα350と共に過ごす気まぐれ日記です。
Firefox ブラウザ無料ダウンロード
2017年11月
≪10月  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30    12月≫
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
普段は ssh を使ってますが、rsh は非常に軽く便利という利点があります。


rsh は「リモートシェル」といい、他の Unux/Linux マシン上で動くコマンドを送信できるコマンドです。
分かりやすくいうと、「telnet でログインして、対象ユーザにスイッチして、コマンドを実行するという一連の流れを一度に行ってくれる」便利なツールww

rsh コマンドを受け取る側は rsh サーバにする必要があるので、rsh サーバを構築してみます。


※ rsh は便利ですが、その便利さゆえに非常に危険な諸刃の剣です。
 特にセキュリティに関しては、非常にもろいので、外部公開サーバなんかにセットアップするとえらいことになります。。。

 ここでは rsh の仕組みなどは紹介しませんが、rsh の仕組みを理解した上で導入の有無を決定することを推奨します。
(うちの Vine ちゃんはローカルネットワークしか利用しない仮想マシンなので、導入しました)


今回はパスワード入力なしで、root ユーザ(一般ユーザも可能)でコマンドを実行させるように設定します。
(ログイン認証なしで、root でコマンド実行。。。リモートシェルを実行できるクライアントの制限はかけますが、セキュリティ上はかなりヤバイでしょうね。。。><;)

【rsh サーバのインストール】
rsh サーバ(rsh サーバに rlogin サーバも含まれる)を VineLinux 5へセットアップします。
インストール
# apt-get update

~ 略 ~

# apt-get install rsh-server
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
rsh-server
アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 0 個
37.6kB のアーカイブを取得する必要があります。
展開後に 53.4kB のディスク容量が追加消費されます。
取得:1 http://updates.vinelinux.org 5.0/i386/main rsh-server 0.17-35vl5 [37.6kB]
37.6kB を 0s 秒で取得しました (59.6kB/s)
変更を適用しています...
準備中 ############################## [100%]
更新/インストール中
rsh-server-0.17-35vl5.i386 ############################## [100%]
完了

自動起動の設定、サービスの起動(rsh、rlogin:xinetd)
# chkconfig --list |grep rsh
rsh: off
# chkconfig --list rlogin
rlogin off
# chkconfig rsh on
# chkconfig rlogin on
# chkconfig --list rsh
rsh on
# chkconfig --list rlogin
rlogin on
# /etc/rc.d/init.d/xinetd restart
xinetdを停止中: [ OK ]
xinetdを起動中: [ OK ]


これで、インストールは完了。
しかし、このままでは、外部から接続できませんので、アクセスする設定をする必要があります。

【ポートの開放(rsh サーバ側)】
サーバ側で使用するポートを開放します。
デフォルトの場合、rlogin は513番、rsh は514番ポートを使用するので、513、514のポートを開放します。

【rlogin、rsh のアクセス制限】
rlogin の設定は「/etc/xinetd.d/rlogin」rshの設定は「/etc/xinetd.d/rsh」になります。
rlogin、rsh で個別のアクセス制限を設定する場合(rlogin はホストA、ホストBでアクセス可能、rsh はホストAのみアクセス可能にするなど)は、それぞれの設定ファイルでアクセス可能なホストを指定します。

アクセス可能なホストの指定は
 書式:only_from = <ホスト1> <ホスト2> ...
のように「only_from」でホストをスペースで区切って記述します。
(書式は rlogin、rsh で共通)

例:192.168.1.1、192.168.1.2で rlogin にアクセス可能とする場合(vi で編集)
# vi /etc/xinetd.d/rlogin
「only_from」でアクセス可能なホストを指定

# default: on
# description: rlogind is the server for the rlogin(1) program. The server \
# provides a remote login facility with authentication based on \
# privileged port numbers from trusted hosts.
service login
{
disable = no
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rlogind
only_from = 192.168.1.1 192.168.1.2
}


【接続ホストの指定】
rsh サーバは「/etc/hosts.equiv」と「~/.rhosts」(~(チルダ)は対象のユーザのホームディレクトリ)を参照し、記述されているホストのみ、接続を許可します。
ですので、「/etc/hosts.equiv」と「/root/.rhosts」(今回は root での接続を許可する設定)に接続を許可するホストを記載します。

「~/.rhosts」はユーザ単位の設定となるので、このユーザはホストA、ホストBから接続可能、このユーザはホストAのみ接続可能というように設定します。

また、rsh サーバは「~/.rhosts」に所有者以外に読取り、書込み権限がある場合、セキュリティホールとみなし、「permission denied」をクライアントに返す仕様(資料が英語だったので、この仕様はちょっと微妙かも。。。)です。
ですので、「~/.rhosts」のパーミッションを変更する必要があります。

今回は rsh クライアントの root ユーザから、rsh サーバの root ユーザ(クライアントとサーバが同一ユーザ)で接続する設定とします。
(クライアント、サーバで違うユーザの接続許可設定にする場合は「~/.rhosts」に <ホスト名> <ユーザ名>というように記載する)

例:192.168.1.1を接続許可する場合
※ vi で編集しても可能です


# echo 192.168.1.1>> /etc/hosts.equiv
# echo 192.168.1.1>> /root/.rhosts
# chmod 600 /root/.rhosts



【securetty での root ログイン設定】
「/etc/securetty」は root のログインが許可されている端末のデバイス名が記載されています。
root ログインを許可するため、「rlogin」、「rsh」を「/etc/securetty」に追記します。

#echo rsh >> /etc/securetty
#echo rlogin >> /etc/securetty


※ vi で編集しても可能です

【xinetdの再起動】
設定をいろいろ変更しましたので、設定を反映させるため、再起動します。

# /etc/rc.d/init.d/xinetd restart
xinetdを停止中: [ OK ]
xinetdを起動中: [ OK ]



さて、これで、rsh サーバ側の設定は完了ww

クライアントから接続すれば、使用できるはずですww
(私は、クライアントからの接続できなくて、ちょっと梃子摺りました。。。><)

クライアントからの接続設定は、次回ということで。


コメント
この記事へのコメント
URL :
コメント :
パスワード :
管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
Template designed by アクセラと+αな生活

Powered by .
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。