sshfs:すべての非ルートユーザーを特定のディレクトリにchroot


8

サーバーでは、rootには無制限のsshアクセスが必要で、他のすべてのユーザーには制限されています。

root以外のすべてのユーザーを以下に制限したいと思います。

  • SSHログインなし
  • のみマウントできるように/mnt/data/使用してsshfs

私はsshd_config使用を許可することを見るMatch User、すなわち:

Match User john
  ChrootDirectory /mnt/data/
  ForceCommand internal-sftp
  AllowTCPForwarding no
  X11Forwarding no

しかし、どうすればroot以外のすべてのユーザーを一致させることができますか?


回答を投稿しましたが、「信頼できるソースまたは公式のソース」の部分がソリューションの一般的な実現可能性/セキュリティを指しているのか、特定の「ルートのみを一致させる方法」の質問を指しているのかは完全には明確ではありません。
fra-san

@ fra-san-どういう意味かわかりません。このソリューションは技術的には機能するものの、安全ではないことを示唆していますか?
Martin Vegter

いいえ、私はあなたがオリジナルの作者や他の権威ある人々による特定の構成の何らかの承認を探しているのかと思っていました。実際、あなたがしていることは多くの知識のある情報源でアドバイスされています(Arch Wikiはその一例です)。
fra-san

回答:


12

sshの設定ファイルのMatchディレクティブは否定をサポートしています。しかし、条件の否定sshd_configは少しトリッキーなようです:あなたは書く必要があります

Match User="!root,*"

rootを除くすべてのユーザーに後続のディレクティブを適用する。

関連ドキュメントは次のとおりですman sshd_config

一致条件付きブロックを導入します。
...
一致パターンは、単一のエントリまたはカンマ区切りのリストで構成され、ssh_config(5)のパターンセクションで説明されているワイルドカードおよび否定演算子を使用できます。

そしてからman ssh_config

パターン
Aパターンは、ゼロまたはそれ以上の非空白文字で、「*」(ワイルドカードマッチがゼロ文字以上あること)、または構成されて「?」(正確に1文字と一致するワイルドカード)。
...
否定された一致がそれ自体で肯定的な結果を生成することはありません。
たとえば、「host3」を次のパターンリストと照合しようとすると失敗します。

from="!host1,!host2"

ここでの解決策は、ワイルドカードのように、正の一致をもたらす用語を含めることです。

from="!host1,!host2,*"

Red Hatカスタマーポータルのこの記事にあるヒント。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.