- - PR -
ssh経由でのリモートコマンドを拒否したいのですが
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-05-17 14:50
初めて投稿します。よろしくお願いします。
内部ネットワークのファイヤーウォールに使っている マシンのsshの設定に関して質問があります。 クライアントがssh経由で外部から送ってきた リモートコマンドを拒否する方法がどうしても わかりません。 サーバーのOSは OS - RHEL 4 (sshd: OepnSSH 3.9p1) です。 よろしくお願いします。 |
|
投稿日時: 2008-05-17 15:25
こんにちは
何をしたいのでしょうか? ssh接続したら、普通にシェルコマンドが使えますが... シェルコマンドを使わせたくないなら chrootとか scponlyでググってみては? |
|
投稿日時: 2008-05-17 16:05
コメントありがとうございます。
言葉足らずで申し訳ありません。 目的は、ファイヤーウォール(HOST_A)にしているマシン に対して、クライアントが"手動"でログインして いるかどうかを確認するためです。具体的には、 クライアントがcron等を使って外部マシンから 定期的にHOST_Aへログインし、シェルコマンドを 実行させないようにするためです。 私が調べた範囲(といっても限られていますが)では 最も簡単そうなのがクライアントが外部マシンから ssh接続する際、 ]$ ssh USER@HOST_A Command で指定されたCommandを無効にすることだと思ったのですが どこをいじれば無効になるのかがわかりませんでした。 お教えいただいたchrootの方で対処できないかもう少し 調べてみます。 |
|
投稿日時: 2008-05-18 22:07
こんばんは。
手動でログインして、シェル経由でコマンド実行するのはO.K.だけど、自動ログイン+コマンド実行がN.G.と。 正直あまり意味があるとは思えません。いえ、制限を加えることで、ユーザが諦めるかも、という意味はあるかもしれませんけど。 何しろ、 remotehost$ ssh user@host_a command ※遠隔からのコマンド実行 と、 remotehost$ echo command | ssh user@host_a ※遠隔からのログインに一工夫 って似たような結果になりますからね。 人手でコマンドが入力されたか、機械が自動でコマンドを発行しているかどうか、なんて見分けるのは無理があります。 ※端末デバイスを通して行う、対話型のコマンド入力をシミュレートできる expect なんてのもあるのですから。 「$ ssh USER@HOST_A Command で指定されたCommandを無効にする」ということだけであれば、サーバ設定の ForceCommand というので似たようなことができそうです。 詳しくは、sshd_conig(5)を参考に。 とはいえ、OpenSSH4.4から追加された機能なので、3.9p1ではダメでしょうけど。 |
|
投稿日時: 2008-05-19 12:05
ご教授ありがとうございました。
opensshを5.0p1にバージョンアップし sshd_configの設定でForce_commandオプションで を利用すると $ssh USER@HOST_A Command で指定されたコマンドを無視させることができました。 とりあえず機械か人手かの区別はつけられませんがCommandは 無視されるようになりました。これでしばらく様子を見てみます。 みなさま、ありがとうございました。 |
1