web-dev-qa-db-ja.com

SSH経由のすべてのコマンドを無効にする

UseがサーバーにSSHで接続し、FTPを実行して他のソースに接続し、ウイルスをダウンロードして実行できるとします。

一部の既知のコマンドのみをユーザーに実行させることはできますか?

2
user24912

man sshd_configから:

ForceCommand

クライアントから提供されたコマンドおよび存在する場合は〜/ .ssh/rcを無視して、ForceCommandで指定されたコマンドの実行を強制します。このコマンドは、ユーザーのログインシェルを-cオプションとともに使用して呼び出されます。これは、シェル、コマンド、またはサブシステムの実行に適用されます。これは、Matchブロック内で最も役立ちます。クライアントによって最初に提供されたコマンドは、SSH_ORIGINAL_COMMAND環境変数で使用できます。 「internal-sftp」のコマンドを指定すると、ChrootDirectoryで使用する場合にサポートファイルを必要としないインプロセスsftpサーバーの使用が強制されます。

これにより、特定のことだけを実行できるシェルラッパーを使用できます。一例は rssh です。

特定のユーザーに対してのみこの制限が必要な場合は、command=cmdファイル(known_hostsに記載)のman sshdオプションを使用してください。

4
Javier

1つの方法は、完全ではありませんが、ユーザーのホームディレクトリ用に、書き込みアクセス権のある場所に個別のパーティションを作成することです。それらのパーティションをマウントするだけですnoexec

ファイルシステムのアクセス許可を適切に設定することは、一般的に、発生する可能性のある損害を制限するのに非常に効果的です。

ユーザーが少なくともある程度信頼されていない場合は、SSHアクセスをまったく許可しないことをお勧めします。おそらく、それらのVMをセットアップし、それぞれを独自の環境に限定する必要があります。

0
Zoredache

たぶん、ユーザーのためにchroot環境をセットアップすることが役立つかもしれません。 ssh接続をchrootするにはどうすればよいですか? を参照してください。

0
Marie Fischer