Linuxのサーバーとクライアント間でファイル共有を有効にしたい。クライアントユーザーにはroot権限があるため、NFSv4のようにマシンの信頼に依存したくありません。 SMB(SAMBA)以外のオプションは何ですか?OpenAFSはユーザーレベルの認証とアクセスをサポートしていますか?マウントされたWebDAV/ftp/sshfsを使用することはLANにとってばかげているようです。
私は完全に理解しているかどうかわかりません:
「クライアントユーザーにはroot権限があるため、NFSv4のようにマシンの信頼に依存したくありません。」
クライアントユーザーがクライアントに対するroot権限を持ち、ホストに対するroot権限を持たせたくない場合は、「no_root_squash」オプションを使用しないでください。 setuidを無効にするなどして、サーバーからクライアントへのリスクを軽減することもできます。
NFSv4でKerberosを使用するオプションもあります。 このリンク を参照してください。
つまり、NFSv4は、もう少し...(スケーラブル?)..どこでもsshfsを使用しながら、必要なセキュリティを提供する可能性があります。それでもあなたが望むものではないかもしれませんが、私はすぐにそれをあきらめません。
Kerberosでは、kdcサーバーのみが認証トークンを付与します。クライアントマシン自体はホストとしてのみ認証でき(つまり、一致するnfs/client-hostname @ REALMプリンシパルにキータブを指定した場合)、それはnfsサーバーと通信する権利のみを与えます。認証する能力を持っているのはユーザーであり、nfsサーバーはユーザーに自分のファイルへのアクセスのみを許可します。 sec = krb5pを使用すると、サーバーはスヌーピングや変更も防止します。
ルートであることは、ユーザーに不適切な特権を与えることはありません。彼らがより多くのファイルにアクセスする唯一の方法は、お互いのマシンをハッキングするか、nfsサーバーまたはkdcをハッキングすることです。 Kerberosを備えたNFSv4は、セキュリティ要件によく適合します。
セキュリティモデルの詳細は次のとおりです。
デプロイメントを検討している場合は、ここにいくつかのdebian/ubuntu中心のチュートリアルがあります。 LDAPなしの簡単なセットアップを選びました。これらのディストリビューションにはdebconfベースの構成があり、そこにいくらかアクセスできます。
私の追加:des-cbc-crc enctypeを指定する必要はありませんが、通信プロトコルがストリーム暗号化にdes-cbc-crcを使用できるように、krb5.confでallow_weak_cryptoを指定する必要があります。これは2.6.35カーネルでは不要になります。
アプライアンスのようなものを見ている場合は、 FreeIPA があります。
sshfsは行く方法です。クライアントの場合:
sshfs -o idmap=user,workaround=rename user@server:/home/user/share /home/user/share
Sshと同じ権限... sshを使用しているため! sshdがインストールされ、正しく実行されていれば、サーバー上の何にも触れる必要がないのは良いことです。他の提案のようなパフォーマンスはないかもしれませんが、それは非常に簡単です。
sambaは実際にはあなたの最善の策のように聞こえます。 sambaにはunix拡張機能があるため、Linuxでcifsとして使用してマウントすると、適切なunixパーミッションなどが表示されます。それがあなたの制約にとって最良の選択肢になると思います。それがうまくいかない場合は、sshfsをピンチで使用できますが、sambaほど優れたパフォーマンスやOSへの統合はできません。
OpenAFSはユーザーレベルの認証とアクセスをサポートしていますか?
はい、OpenAFSはここでの要件を満たしているようですが、KerberizedNFSv4も同様です。これらの環境の両方で、クライアントを「信頼」する必要はありません。アクセス制御はサーバーによって実施されます。以前のバージョンのNFSでは、クライアントを効果的に「信頼」する必要がありましたが、KerberizedNFSv4では必要ありません。 OpenAFSは、「信頼できる」クライアントを必要としたことはなく、認証とセキュリティをKerberosに依存しています。