LAN上のLinux NFSファイルサーバー(srv)と3つのLinuxクライアント(A、B、C)シナリオを想像してみてください。 srvのファイル/ディレクトリにはroot所有権があり、root以外のユーザーにはアクセス権がありません。これは質問に関連するファイルです。私はこれを「ルート制限ファイル」と呼びます。
ㅏローカルシステム管理者である必要があります。彼または彼女はsrvのルート制限ファイルへの無料アクセスを必要とします。
第二自分のコンピュータにsudo権限を持つローカル開発者です。しかしBはしなければならない。いいえサーバーがルート制限ファイル/ディレクトリを読み書きする、または移動する機能。実際、Bがsudo権限を持っていても、Bは自分が属するグループに属していないsrvのファイルにアクセスできないはずです。
氏sudo権限を持たないローカルユーザー。 Cはsrvの通常のファイルにアクセスできるはずですが、ローカルまたはサーバーのルートによって制限されたファイルにはアクセスできません。
一方:
srv は 192.168.1.1 にあります。
Aは192.168.1.2にあります。
Bは192.168.1.3にあります。
Cは192.168.1.4にあります。
/etc/exportsが目標を達成していますか?
/srv/nfs 192.168.1.2(rw,no_root_squash)
/srv/nfs 192.168.1.3(rw,root_squash)
/srv/nfs 192.168.1.4(rw,root_squash)
他のどのNFSオプションが推奨されますか?しかし、最も重要なのは、IPアドレスが偽装できないと仮定すると、root_squashはこのソリューションを実装できますか?
次に、自分のコンピュータにsudo権限を持つ開発者がno_root_squahなしでIPアドレスを192.168.1.2のようになりすましたとしましょう。どのソリューションが必要ですか? LDAP+Kerberos?他にはありませんか?
NFSで私たちの目標を達成できますか? SSHFSやSamba 4などのソリューションがより良いソリューションですか?
(「ルート制限ファイル」が最も適切な用語ではない場合は、編集提案を歓迎します。)
答え1
NFSは、クライアントによって提供されたUID / GIDのみを使用します。squash_root
オプションの使用exports
共有の場合、rootユーザーを匿名ユーザー(nobody/nogroup
)にマップします。これにより、悪意のあるまたは破損したクライアントが他のファイルへのアクセスを許可する可能性がある他のUID / GIDを提供することを防ぎません。
NFSサーバーをなりすましユーザーから保護するには、Kerberosを使用してNFSユーザーを認証する必要があります。 Kerberosを使用するNFSは、オプションのデータ整合性と暗号化も提供します。関連情報をすばやく理解するには、次の簡単な方法をご覧ください。Ubuntu Wiki。
答え2
NFSはUIDとGIDを介して権限を設定するため、サーバーとクライアントの権限が同じであれば問題ありません。root_squash
B は不要で sudo 権限を持たないファイルやディレクトリを読み書きするのを防ぎますが、C には sudo 権限はありません。
IP なりすましが気になる場合は、他のツールや方法を使用できます。あなたはそれらをすべて見て、調査によってどちらが最善かを判断できます。
答え3
NFS を使用して共有文書を保護する最善の方法は、誰もが同じ共有ルートを提供しないことです。この例では、次のようなローカルディレクトリ構造を作成します。
/srv/nfs admin-machine(rw,no_root_squash)
/srv/nfs/developer dev-machine(rw,no_root_squash)
/srv/nfs/shared 192.168.1.0/24(rw,root_squash)
/srv/nfs/protected acct-machine(rw,root_squash)
NFSクライアントの不正アクセスからフォルダを保護する際の問題は、rootアクセス権を持つ人は誰でもユーザーを作成できることです。今起こったこと
答え4
目標が「ローカルsudo権限を持つユーザーがNFSファイルサーバーでsudo権限を持つのを防ぐ」ことである場合、ルートスカッシュを無効にすることはできません。
絶対にしないでください。
これ/etc/exports
/srv/nfs 192.168.1.2(rw,no_root_squash)
/srv/nfs 192.168.1.3(rw,root_squash)
/srv/nfs 192.168.1.4(rw,root_squash)
/srv/nfs
192.168.1.2へのrootアクセス権を持つ人は、誰でもNFSサーバー自体にアクセスするために使用できるSUID実行可能ファイルを生成できます。root
これはNFSサーバーにあり、これは指定された目標と直接矛盾します。192.168.1.3および192.168.1.4のすべてのユーザーがsudo
アクセスできますか?もしそうならsudo
、192.168.1.2へのアクセス権を持つ人は誰でもそのサーバーへのアクセス権を利用し、ほぼ全体のネットワークへのルートアクセス権を得ることができます。
ルートカボチャは何でも無効にします。危険ネットワーク全体のセキュリティのため。
これは、@ErikFが答えで述べたIPアドレスのなりすましの問題も解決しません。
少なくともあなたと一緒ではありませんanon=0
。はい、見たことがあります。