1. ホーム
  2. linux

[解決済み] ログイン後のSSHユーザーをあらかじめ定義されたコマンド群に制限するには?

2023-02-08 17:17:25

質問

これは、セキュリティのためのアイデアです。私たちの従業員は、Linuxサーバー上のいくつかのコマンドにアクセスすることができますが、すべてではありません。彼らは例えば、ログファイルにアクセスする可能性を持っている必要があります ( less logfile ) や、異なるコマンドを起動する ( shutdown.sh / run.sh ).

背景情報です。

すべての従業員が同じユーザー名でサーバーにアクセスする:私たちの製品は "通常の" ユーザー権限で動作し、"インストール" は必要ありません。ユーザーディレクトリに解凍して実行するだけです。私たちは、私たちのアプリケーションがインストールされている複数のサーバーを管理しています。どのマシンにも、ユーザー johndoe . 私たちの従業員は、ログファイルにアクセスしたり、チェックしたり、アプリケーションを手動で再起動するために、コマンドラインでアプリケーションにアクセスする必要があることがあります。一部の人だけが、完全なコマンド ライン アクセスを持つことができます。

私たちは、サーバー上で ppk 認証を使用しています。

社員1はログファイルのみアクセスでき、社員2はXなどもできるといいのですが...。

解決策 解決方法として、私は command オプションに記載されているように を受け入れた の答えになります。のために実行できる唯一のファイルとなる小さなシェルスクリプトを自作します。 いくつか の従業員に対して実行できる唯一のファイルになります。このスクリプトは、実行可能ないくつかのコマンドを提供するが、それ以外のものは提供しない。以下のパラメータを authorized_keys から、記載されているように ここで :

command="/bin/myscript.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= user@host

これでセキュリティは十分です。コミュニティの皆さん、ありがとうございます。

どのように解決するのですか?

キーを許可されたコマンドに制限することもできます (authorized_keys ファイル内)。

つまり、ユーザーは ssh 経由でログインし、制限されたコマンドのセットを持つのではなく、ssh 経由でのみこれらのコマンドの実行が許可されます (例: "ssh somehost bin/showlogfile") 。