- ベストアンサー
Windows7からUNIXへのrsh方法
- Windows7からUNIXへのrsh方法について調査しています。
- 現在Windows7からSUAを使用してUNIXサーバへリモートシェルを実行したいですが、rshが「permission denied」エラーとなります。
- rhostsやhostsの設定は行い、rloginも正常に動作していますが、設定に何か問題があるかわかりません。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
No6です。 No6:> unixサーバってなんでしょうか。 No6:> どのunixサーバでも同じではない部分に見えますが。 No6補足:> /etc/pam.d/の設定見直しました。 No6補足:> 設定できていなかったので設定してみたのですが No6補足:> 結果は同じでした。。。 pamの設定を行なって変わらなかったとしたら、pamを使ってないか新たに行なったpamの設定が正しくないか。 No6お礼:> unix(B)はLinux version 2.4.17MontaVistaなのですが、 Linuxだという事はわかりましたが、ディストリビューションの名前やバージョンが書かれてません。 今回の件についていえば、カーネルバージョンはあまり依存性がないかと思います。 No6お礼:> ps aux | grep inetdで確認するとxinetdの方が開始されているのですが、 No6お礼:> 「/etc/xinetd.d/rlogin」が存在しません。。。 No6お礼:> (本来なら上記のファイルの設定が必要だと思うのですが、、、) rlogindじゃなくてrshdではないのかな。 No6お礼:> それで質問なのですが、winXPのコマンドプロンプトのrshは成功するのですが、win7のsuaのrshでは失敗します。 No6お礼:> 同じrshでも何か違うのでしょうか? お書きになている情報のみから何がとはいえませんが。 例えば、winXPではパケットフィルタでrshコマンドで使うポートを遮断してないけどwin7 sua環境では遮断しているという可能性もありますし。 ただ、winXPのコマンドプロンプトからだとrshが使えるなら、winXPとwin7 suaでの違いを見るのも調査方法の一つですね。 パケットモニタでrsh時のパケットを確認すれば解決への情報が得られるかも知れません。 winXPから使えるなら、問題はunix側の設定でなくwin7という可能性が高そうにも感じました。 パケットフィルタの設定で遮断したパケットはログ出力するよう設定していれば、パケットフィルタのログ見ればわかるかも知れませんね。
その他の回答 (6)
- saijyo_739
- ベストアンサー率53% (119/222)
> 現在windows7(A)からSUAを使用してunixサーバ(B)へリモートシェルを > 実行したく調査しております。 unixサーバってなんでしょうか。 どのunixサーバでも同じではない部分に見えますが。 例えば、 /etc/pam.d/rsh とかpamの設定は確認されてますか? >system-auth(pam_unix)[2450]: session closed for user Buser >rshd[2514]: rsh denied to bin/sh@A as Buser: Permission denied
お礼
■追加の質問です。 すみません。お礼欄を使わせて頂きます。 unix(B)はLinux version 2.4.17MontaVistaなのですが、 ps aux | grep inetdで確認するとxinetdの方が開始されているのですが、 「/etc/xinetd.d/rlogin」が存在しません。。。 (本来なら上記のファイルの設定が必要だと思うのですが、、、) それで質問なのですが、winXPのコマンドプロンプトのrshは成功するのですが、win7のsuaのrshでは失敗します。 同じrshでも何か違うのでしょうか? ちなみに/etc/rc.d/init.d/xinetd stopして 実行するとどちらもConnection refusedのエラーになります。
補足
。。。お返事遅くなって申し訳ございません。 /etc/pam.d/の設定見直しました。 設定できていなかったので設定してみたのですが 結果は同じでした。。。 ところで、上記設定を調べていて少し疑問に思ったのですが、 windows7(A)からunix(B)へrloginでパスワードを聞かれて しまうのですが、そのことと本件とは関連ありますでしょうか?
- gtx456gtx
- ベストアンサー率18% (194/1035)
>system-auth(pam_unix)[2450]: session closed for user Buser 単純に機械翻訳させると「ユーザBuserのために終えられたセッション」 ------------------ >rshd[2514]: rsh denied to bin/sh@A as Buser: Permission denied 単純に機械翻訳させると「Buserとして bin/sh@A に対して否定されたrsh」 「 bin/sh@A」メールの記述方式と同じで「ホストAの/bin/sh」と解釈できると思います。 纏めると 「ユーザBuserのrshセッション、ホストAの/bin/shが権限不足で実行できません」という解釈で良いと思います。
お礼
★★★★★★★★★★★★ 解決致しました!! ★★★★★★★★★★★★ ここにしか書き込むところがなく失礼いたします。 結論から申しますとSUAの障害みたいです。 以下のサイトに報告されておりました。 http://technet.microsoft.com/ja-jp/library/gg486885.aspx 回避策としまして、rsh には必ず -D オプションを指定するとのことです。 saijyo_739様・gtx456gtx様本当にありがとうございました。
補足
。。。お返事遅くなって申し訳ございません。 そういうことですね。。。 てっきりwindows側の設定の問題で unix側からユーザ情報が見えていないのかと思いました。 おかげで方向転換できます。 ありがとうございました。
- gtx456gtx
- ベストアンサー率18% (194/1035)
>で結果は状況は変わらずなのですが、、、 >unix側の/var/log/messageに以下のログが出ていました。。。 >何か意味がありますか?? unix側の/var/log/messageに出力があるので、rshコマンドとしては正常に実行している? 「windows7(A)からunix(B)」への rsh は正常に実行されているが、UNIX上の権限不足でユーザの期待する結果が得られない状態と思います。 ただし、rootと一般ユーザで、権限不足なので下記のエラーが表示されているので、個別の対応が必要となります。 >rootで実行した場合は >rshd[2512]: rsh command was 'ls' >rshd[2513]:rsh denied to @A as root: Permission denied 「ls」を実行する権限が root にないと読めます。 >一般ユーザで実行した場合 >system-auth(pam_unix)[2450]: session closed for user Buser >rshd[2514]: rsh denied to bin/sh@A as Buser: Permission denied 「ls」を実行すために起動する「bin/sh」が実行する権限がないと読めます。 どちらも権限不足なので・・・これ以上は UNIX に詳しい方に相談しないと解決は無理なような気がします。 最近のシステムは、実行権限が厳しくなっているのでエキスパートでないと解決は無理かな? m(_ _)m 急いでいるなら telnet が成功しているようなので telnet のバッチで処理するという逃げ手もあります ^ ^;
補足
>起動する「bin/sh」が実行する権限がないと読めます。 これって通常Auser@Aの形式で表示されるものなのでしょうか??
- gtx456gtx
- ベストアンサー率18% (194/1035)
>>telnetで接続できますか? >>1.rootユーザでtelnet > OKです >>2.一般ユーザでtelnet > OKです。 下記の資料を参照して、「/etc/hosts.equiv」、「/root/.rhosts」および/etc/securettyも修正が必要そうです。 http://www.proton.jp/main/unix/rsh.html rootは「/root/.rhosts」 一般ユーザは「/etc/hosts.equiv」がポイントかな? >1つ気になったのですが、A(win7)→B(unix)はどちらもOKなのですが >B(unix)→A(win7)は以下のエラーになります。 >何か関係ありますか?? >telnet: Unable to connect to remote host: Connection refused rsh と telnetで、共有するファイルもあるけど違うファイルもあるので、その違う部分で拒否していると思います。 「>B(unix)→A(win7」なので、確認が必要なのはwindows側ですが・・・イマイチなのでコメントなしで ^ ^;
補足
度々ありがとうございます。。。 /root/.rhosts→設定してなかったので設定しました。 /etc/hosts.equiv→設定していました。 /etc/securetty→設定に追加しました。 で結果は状況は変わらずなのですが、、、 unix側の/var/log/messageに以下のログが出ていました。。。 何か意味がありますか?? rootで実行した場合は rshd[2512]: rsh command was 'ls' rshd[2513]:rsh denied to @A as root: Permission denied 一般ユーザで実行した場合 system-auth(pam_unix)[2450]: session closed for user Buser rshd[2514]: rsh denied to bin/sh@A as Buser: Permission denied
- gtx456gtx
- ベストアンサー率18% (194/1035)
>一般ユーザで試してみました。 >結果は同じでした。。。(T_T) ちょっと視点を変えて、telnetで接続できますか? 1.rootユーザでtelnet 2.一般ユーザでtelnet 上記でtelnetに成功したら、同じrootと一般ユーザで rsh してみては如何ですか? 「permission denied 」なので、権限不足は明らかですが不足している権限が何かは探すの難しい
補足
ありがとうございます!! >telnetで接続できますか? >1.rootユーザでtelnet OKです >2.一般ユーザでtelnet OKです。 1つ気になったのですが、A(win7)→B(unix)はどちらもOKなのですが B(unix)→A(win7)は以下のエラーになります。 何か関係ありますか?? telnet: Unable to connect to remote host: Connection refused
- gtx456gtx
- ベストアンサー率18% (194/1035)
>(1)windows7(A)からunix(B)へ > rsh B -l Buser ls ← 失敗 ------------ >「.rhosts」や「hosts」の設定等は行い、rloginができることは タイトルを見て、「.rhosts」や「hosts」と思って見たのですが・・・確認済みなのですね ^ ^; あと考えられることは「ユーザの権限」で、UNIXのrootに相当するユーザで実行していませんか? rootで実行すると間違いない! と思っていたら、逆にrootなので拒否することがあるので一般ユーザで実行して確認することをお勧めします
補足
早速のご回答ありがとうございます。。。 一般ユーザで試してみました。 結果は同じでした。。。(T_T) ちなみに他のwindowsXPのコマンドプロンプトで rsh B -l Buser ls すると以下のエラーになりました。。 Permission denied. rsh: can't establish connection
お礼
度々すみません。 上記の補足です。。。 上記はTCP PSH ACK(windows側→unix)のみを時系列に 並べて比較した内容です。
補足
ご回答ありがとうございます。。。 パケットを見たところ大きな違いは以下の(2)の部分の ように思われました。 (win7だとログインユーザ名が渡らない?) ■win7の場合 (1)ポート番号(1022) ⇒サイズ:5 (2)空? ⇒サイズ:1 (3)rshコマンドの引数に与えたユーザ名 ⇒サイズ:ユーザ文字数+1 (4)rshコマンドの引数に与えたコマンド(pwd) ⇒サイズ:4 ■winXPの場合 (1)ポート番号(1022) ⇒サイズ:5 (2)windowsにログインしているユーザ名 ⇒サイズ:ユーザ文字数+1 (3)rshコマンドの引数に与えたユーザ名+コマンド(pwd)⇒サイズ:ユーザ文字数+1+コマンド 何かお気づきの点がございましたらご教示頂けましたら幸いです。