UseがサーバーにSSHで接続し、FTPを実行して他のソースに接続し、ウイルスをダウンロードして実行できるとします。
一部の既知のコマンドのみをユーザーに実行させることはできますか?
man sshd_config
から:
ForceCommand
クライアントから提供されたコマンドおよび存在する場合は〜/ .ssh/rcを無視して、ForceCommandで指定されたコマンドの実行を強制します。このコマンドは、ユーザーのログインシェルを-cオプションとともに使用して呼び出されます。これは、シェル、コマンド、またはサブシステムの実行に適用されます。これは、Matchブロック内で最も役立ちます。クライアントによって最初に提供されたコマンドは、SSH_ORIGINAL_COMMAND環境変数で使用できます。 「internal-sftp」のコマンドを指定すると、ChrootDirectoryで使用する場合にサポートファイルを必要としないインプロセスsftpサーバーの使用が強制されます。
これにより、特定のことだけを実行できるシェルラッパーを使用できます。一例は rssh です。
特定のユーザーに対してのみこの制限が必要な場合は、command=cmd
ファイル(known_hosts
に記載)のman sshd
オプションを使用してください。
1つの方法は、完全ではありませんが、ユーザーのホームディレクトリ用に、書き込みアクセス権のある場所に個別のパーティションを作成することです。それらのパーティションをマウントするだけですnoexec。
ファイルシステムのアクセス許可を適切に設定することは、一般的に、発生する可能性のある損害を制限するのに非常に効果的です。
ユーザーが少なくともある程度信頼されていない場合は、SSHアクセスをまったく許可しないことをお勧めします。おそらく、それらのVMをセットアップし、それぞれを独自の環境に限定する必要があります。
たぶん、ユーザーのためにchroot環境をセットアップすることが役立つかもしれません。 ssh接続をchrootするにはどうすればよいですか? を参照してください。