2015年8月15日土曜日

[CentOS5] rshを使えるようにする


rshのサービスをセットアップして、rsh を使用できるようにします。
ファイヤーウォールは無効であることとします。(ファイヤーウォールに rsh の穴を開ける設定は、ここでは扱いません)

「ホストA(192.168.1.12)」で以下のようにrshコマンドを実行して、「ホストB(192.168.1.13)」の uptime を取得してみます。
# rsh -l canopus 192.168.1.13 "uptime"
connect to address 192.168.1.13 port 544: Connection refused
Trying krb4 rsh...
connect to address 192.168.1.13 port 544: Connection refused
trying normal rsh (/usr/bin/rsh)
上記のようなエラーがでて止まる場合は、ホストBで rshサービスが動いてません。上記コマンドはCtl+C で強制終了させます。

CentOS5 を最小構成でインストールした場合、rshサービスはインストールされません。まず、ホストBに rshサービスをインストールします。
# yum install rsh-server
次に、rshサービスの自動起動設定をして、xinetd を再起動します。
# chkconfig rsh on
# service xinetd restart
ホストBの rshサービスの設定が完了したので、上記のrshコマンドをホストAで実行してみます
# rsh -l canopus 192.168.1.13 "uptime"
connect to address 192.168.1.13 port 544: Connection refused
Trying krb4 rsh...
connect to address 192.168.1.13 port 544: Connection refused
trying normal rsh (/usr/bin/rsh)
Permission denied.
権限なし(Permission denied) とエラーがでます。
この例では rsh コマンドの引数に "-l canopus" と指定して ホストBのcanopus ユーザーで uptime を実行しようとしています。
なので、ホストBのcanopusユーザーのホームディレクトリに ".rhosts" ファイルを作成して、rshでの実行許可を与えます。
".rhosts" は以下のように、実行許可を与えるホストとユーザーのペアを記述します。
192.168.1.12 root
192.168.1.12 taro
この例では、ホストA(192.168.1.12)の root と taro が、ホストBのcanopusユーザーでコマンドを実行できるようになります。なお、".rhosts"のパーミションは、"600" にします。
# chmod 600 .rhosts
これでもう一度、ホストAの root ユーザーで rsh を実行してみます
# rsh -l canopus 192.168.1.13 "uptime"
connect to address 192.168.1.13 port 544: Connection refused
Trying krb4 rsh...
connect to address 192.168.1.13 port 544: Connection refused
trying normal rsh (/usr/bin/rsh)
 12:09:10 up 11 days, 14:04,  2 users,  load average: 0.16, 0.03, 0.01
これで、ホストBの canopus ユーザーで rsh を実行できるようになりました。
ちなみに、実行時に"544: Connection refused"とメッセージがでるのは、ホストAで、ケルベロス設定が必要な"/usr/kerberos/bin/rsh"を実行しているからで す。(これはCentOS5のデフォルトです)
# which rsh
/usr/kerberos/bin/rsh
"544: Connection refused" というメッセージを出したくなければ、以下のように "/usr/bin/rsh" を使用します。
# /usr/bin/rsh -l canopus 192.168.1.13 "uptime"
 12:08:49 up 11 days, 14:03,  2 users,  load average: 0.00, 0.00, 0.00