NFSには他の必須アクセス制御またはMACラベルがあり、httpdには他の必須アクセス制御またはMACラベルがあり、SaMBaには他の必須アクセス制御またはMACラベルがあります。最近では、Restoreconを介して適切にラベルを付け直し、サーバー側の3つのサービスすべてに正常にアクセスでき、システムの更新後も維持されるように、サーバー上の単一の共有ファイルシステム層を表示する正しい方法は何ですか?
つまり、サーバー側のfs階層がNFSを介して共有されているとマークされていると、同じサーバー上のhttpdおよびsmbデーモンへのアクセスが中断されます。 httpd とマークすると、ファイルは httpd としてのみ表示され、読み書きが拒否されるため、NFS および SMB サービスは共有を停止します。最後に、SMBタグはNFSおよびhttpdサービスを中断します。
この問題を解決するためにAnsibleプレイリストなどの最新のDevOpsメソッドを採用していますか?以前はカスタムラベルを作成しましたが、システムの更新後に再構築する必要があるため、摩擦が多すぎました。カスタムタグの場合はまだ該当しますが、今はオートメーションを使用していると思いますか?
ベストアンサー1
NFSサーバーがNFSv4.2で「security_label」をサポートしている場合は、SELinuxラベルの拡張属性をサポートするエクスポートを作成できます。私は動作するsmbの実装について知りません(おそらくSMB3のPosix拡張は将来これを得るでしょうか?)。
それ以外の場合は、特定のラベルを持つためにNFSを介してマウントされた特定のディレクトリが必要な場合は、context = "mylabel_t"マウントオプションを使用してください。その共有によって提供されるすべてのファイルとディレクトリのコンテキストがあります。
SELinux ポリシーにはさまざまなサービスのブール値もあるため、nfs および smb 共有から読み取ることができます。
編集する:nfs、smb、およびhttpを介してディレクトリ(/ dataと呼ばれる)をエクスポートするには、public_content_tを使用してみてください。
# semanage fcontext -a -t public_content_t "/data(/.*)?"
# restorecon -F -R -v /data