UPSソリューションズ株式会社
ソリューション事例複数サーバ管理ユーザーコマンド実行/スクリプト解説

関連リンク: ソフトウェア一覧
スクリプト解説

ユーザーコマンド実行機能により送信するスクリプトの
作成例をまとめました。参考資料としてご使用下さい。
リーモトシェルによるシャットダウン
●概要
rsh(remote shell)
は、リモートシステム上で指定したコマンドを実行するためのコマンドです。
telnetrlogin がリモートホストとの対話接続を行うのに対して、
rshはリモートホストへ接続し、指定されたコマンドをバッチ実行します。
rshは自分の標準入力をリモートコマンドにコピーし、リモートコマンドの標準出力を
自分の標準出力にコピーします。
このように、リモートコマンドを実行しても標準入出力が結合されるため、
パイプ機能を利用して、各コマンドを独立したシステムで同時に実行させることができます。
 
●設定例1・WindowsNTから UNIXへのrshの実行
FeliSafe/50 for WindowsNT を利用したネットワーク上(TCP/IP)の
UNIXマシンのリモート制御手順と方法を以下に記述します。

【WindowsNT側での設定】・・・例)コンピュータ名:winnt
1.ドメインユーザマネージャーを起動し任意の新規ユーザを設定します。

    ユーザ名:
設  定:

ups-sol (任意)
ユーザはパスワードを変更できない。
パスワードを無制限にします。


◇パスワードは必ず設定してください。
   
2.コントロールパネルよりサービスを起動し、FeliUPSを選択し、アカウントを与えます。

    アカウント名:

ups-sol (任意)

◇パスワードは必ず設定してください。
   
3.FeliSafe/50 for WindowsNT のモニタ画面を起動します。
    設定→イベント→停電発生またはシャットダウン待機など→

コマンドの実行→設定を選択

コ マ ン ド:c:\winnt\system32\rsh.exe remote-host shutdown-h+3

実行ディレクトリ:c:\winnt\system32


※ コマンドは各OSによって異なりますので、各OSのシャットダウンコマンドを確認してください。
例)#リモートシャットダウンコマンド (サーバのIPアドレスが 192.168.1.198 の場合)

#solaris

C:\
WINNT\system32\Rsh.exe 192.168.1.198 /usr/sbin/shutdown -y -i0 -g0

#redhat linux

C:\
WINNT\system32\rsh.exe 192.168.1.198 /sbin/shutdown -h now

#HP-UX10.x

C:\
WINNT\system32\Rsh.exe 192.168.1.198 /sbin/init 0
 
【UNIX側での設定】
1./etc/passwdにWindowsNTからのrshを実行する為のユーザアカウントを作成します。
Adduserコマンドもしくはadmiintool(solaris)、sam(hp-ux)などを使用してユーザアカウントを追加します。

例)winntのユーザを追加
 
2.追加したユーザアカウントに特権モードを与えるように/etc/passwdの内容を変更します。
ユーザIDを以下のように変更します。

ups-sol:X:0:101:WindowsNT:/home/ups-sol:/bin/csh


ユーザIDは特権モード “0”

グループIDは特に制約なし

ホームディレクトリは任意

実行シェルは任意
 
3.WindowsNTからrshの実行を許可するに設定を変更します。
(1)/etc/hostsの変更

192.168.1.200 winnt

winnt:アクセス許可するホスト名


(2)追加したユーザディレクトリの下の.rhostsの追加・変更を行います。
Winnt → WindowsマシンのTCP/IPでのホスト名
 
4.UNIXマシンでのups-solのパスワードの設定。
   login : ups-sol

# passwd

New password :xxxxx

Retype new password :xxxxx


◇ 特権モードユーザです。
◇ パスワードは必須です。
【注意点】


※ ユーザ名(ups-sol)は任意です。好きなユーザ名が設定できますが、重複に注意。

※ パスワードはWindows側とUNIX側とで必ずしも一致させる必要はありません。

※ WindowsNTユーザドメインマネージャで設定するユーザアカウント名とサービスで
設定するアカウントは、同一である必要があります。

※ UNIX側で設定するユーザアカウントの実行シェルは特に関係ありません。

※ 前述のシャットダウンコマンドはSunOS4.xを参考にしています。

※ 当該システムによりコマンドや引数などは変わります。

※ 上記の設定によるリモート制御はWindowsNT標準のUPS監視プログラムでも有効です。

◇セキュリティを前提として、両システムのアカウントには必ずパスワードが必要です。
これを条件とすると、上記設定以外ではrshは動作しません。
 
●設定例2・UNIXから UNIXへのrshの実行
FeliSafe/50版での設定】
1. FeliSafe/50の/etc/FeliSafe /shutdown.shスクリプトファイルの
最後尾に前述したリモートシャットダウンコマンドを記述します。
 
2. 接続先のコンピュータのルートディレクトリに.rhostsを作成し、
接続を許可するコンピュータのホスト名を記述してください。
 
【FreeLinux版での設定】
1. RedHat LinuxOSの場合/etc/rcスクリプトファイルを以下の位置に
前述したリモートシャットダウンコマンドを記述します。
# Bring the subsystem down.

if egrep -q "(killproc |action )" $i ; then

$i stop

この位置にリモートシャットダウンコマンド追加

else

action "Stopping $subsys: " $i stop

fi
 
2. 接続先のコンピュータのルートディレクトリに.rhostsを作成し、
接続を許可するコンピュータのホスト名を記述してください。

SSHによるシャットダウン・概要
SSH(Secure Shell)は通信路を暗号化することで安全性を高めたリモートシェルです。
UNIX系OSでは、telnetrshなど、シェルの機能をリモートから使うための
コマンドツールが用意されていますが、
これらは通常ログイン時のパスワード認証以外に特別なセキュリティ機能は持ちません。
通信内容はそのままIPパケットに格納されて送られるため、
パケットを盗聴すれば通信内容を容易に知ることができます。
SSHはこれを防ぐために通信経路をすべて暗号化します。
セキュリティ面では、VPNを使った経路上でリモートログインするのと同じような状態になります。

遠隔地に設置したWebサーバのメンテナンスなど、
インターネット経由でシステムにログインする必要がある場合、
通常のtelnetrshではパケットを盗聴するだけでログイン時のパスワードや、
システムにログインした後で入出力するデータすべてを知ることができるため、危険が伴います。
SSHを利用することで、こうした遠隔ログイン時の安全性が大幅に高まります。
関連リンク: ソフトウェア一覧

TOPソリューション事例複数サーバ管理ユーザーコマンド実行/スクリプト解説