Linuxでファイルパスを別のファイルパスに偽装する方法

Linuxでファイルパスを別のファイルパスに偽装する方法

ユーザーtest123の/var/testファイルパスを/ rootとしてマークしたいと思います。私は彼らが実際にはルートディレクトリにいることを望んでいませんが、彼らが少しうるさいことを知らないように/ rootにあるように見えることを望みます。私はそれを彼らのホームディレクトリに設定し、その下に完全なディレクトリ構造を作成します。一般的なアイデアは、chroot刑務所に似たものを持つことです。

ログインしたユーザーに基づいてディレクトリ名を偽装することに関する情報が見つかりません。他の人が提案できますか?

答え1

SSH chroot Jailとバインドマウントを組み合わせたいと思います。 chrootルートディレクトリが/home/test123であるとします。

  • chroot 環境を作成します。私はJailkitを使いたいです(https://olivier.sessink.nl/jailkit/)

  • chroot内にバインドマウントを作成する mount -o bind /var/test /home/test123/root

  • chrootにsshdを設定します。これにはいくつかの方法がありますが、デフォルトではtest123をsshchrootユーザーグループに追加してから、/etc/ssh/sshd_configに追加しようとしています。 Match group sshchroot ChrootDirectory /home/%u
  • SSHを再起動

答え2

真のchroot刑務所を望まない場合は、ユーザーセッションを別のセッションに分離する必要があります。マウントネームスペース、それで。/var/test バンドルのインストール/rootこの名前空間内でのみ可能です。これを達成するには、カスタムユーザーセッションの作成が必要です。カスタムPAMライブラリはこれを実行できますか?

(実装は読者に練習として残しています。私は実際にこの目的に適した既製のツールを知らないので、おそらくカスタムPAMライブラリを作成する必要があります。しかし、コンテナ化技術のためにLinuxネームスペースの迅速な開発がたくさん行われています実際にはすでに利用可能なものがありますが、それについてはよくわかりません。

しかし:test123ルート以外のユーザーなどのユーザーがホームディレクトリだけでなく、への書き込みアクセス権を持っているシステムを見つけたら、/rootすぐに一種のなりすましがあるとします。そして安全でない構成。この事実を発見し、root アクセス権がない場合は、できるだけ早く実際のシステム管理者に通知します。私がシステム管理者であり、他の説明がない場合は、このシステムをネットワークから切断し(可能であれば最初にフォレンジックメモリダンプを実行し)、システムをシャットダウンしてから分析のためにディスクを別のコンピュータにインポートすることを強くお勧めします。副作用としてあなたのトリックを倒しなさい。

したがって、診断と法医学に加えて、この設定で何が得られるのかわかりません。

関連情報