OpenSSH sftp Jail / chrootはどのように機能しますか?

OpenSSH sftp Jail / chrootはどのように機能しますか?

実際、この質問はとても広いです...

私が本当に知りたいのは、それが本当にchrootであるかどうか、そしてもしchrootに必須のバイナリ/libが明らかに不足しているにもかかわらず、その刑務所でSSHユーザーdaamon [1]を起動する方法です。

驚いたことに、Googleはこの問題に対して沈黙を守りました。しかし、これを説明する良い参考資料があれば十分です(しかし、私は彼らのCを読んで理解するのに十分な教育を受けていません)。

[1]:メインルートOpenSSHデーモンが接続されたときに起動されるユーザー権限を持つ実際の一時デーモンについて話しています。

ベストアンサー1

他の答えは(質問のように)やや曖昧なので、その現象をより詳しく説明します。このトピックはすべての人のためではありませんが、興味のある人には知っておくと良いことです。

持つ二つこの作業はさまざまな場所で行われており、あなたchrootも作業しているので、あなたのアイデアを調整しようとしています。

  1. 持つ特権の分離、これはセキュリティメカニズムであり、部分的にはchrootネットワークサブ制限としても機能します。これは一般的に/var/empty

    理由は簡単です。抜け穴があればおそらくこのプロセスはファイルシステムを見ることができず、特に制限されているため、悪用することはできません(詳細についてはSandbox、SECCOMPキーワードを参照)。

  2. 後でchrootファイルシステム全体へのアクセスを防ぐために、SFTPだけでなくユーザーセッションも特定のディレクトリに配置できます。タイトルを見ると、この部分があなたが興味を持っているかもしれません。

    これ魔法chrootのsftpの点はSubsystem sftp internal-sftp(フルパスの代わりにSubsystem sftp /usr/lib/openssh/sftp-server)指定できることです。これはバイナリではなく完全にコンパイルされたsshdことを意味します。sftp-serverexec着信電話サーバーの動作を定義する関数です。これは、ユーザーのサポートファイルを必要としませんchroot(シェルと依存共有オブジェクトを必要とする通常のセッションとは異なり)。この種の情報に興味がある場合は、ロギングソケットが必要な場合があります。

おすすめ記事