web-dev-qa-db-ja.com

/ etc / shadow権限セキュリティのベストプラクティス(000対600対640)

/etc/shadowの権限が000に設定されていない場合にアラートを生成する自動ベースラインチェックがあります。

これらのアラートを受け取ったスタッフは、000の正気に疑問を抱き始めました。なぜなら、rootは好きな場所で読み書きできるからです(すべてのファイルは自動的にrootに対して少なくとも600です)が、実行権限が設定されていないとファイルを実行できません(いいえルートの自動700ファイル権限)。

/etc/shadow権限を000に設定することは、いくつかのベースラインにあります。公式のRed Hat GitHubリポジトリにあるAnsibleプレイブック(PCI DSS、CJIS、NIST、CCE用)。

/etc/shadowが000であるべき理由の背後にあるOriginのストーリーはありますか。一見機能的に同じ600ですか?それとも、rootユーザーに対するLinuxの制限/許容度についての私の想定は間違っていますか?

18
tsundoku

/etc/shadowパーミッションを000に設定する背後にある考え方は、rootとして実行されている場合でも、DAC_OVERRIDEcapability 。 Fedora 12およびRHEL 6以降、FedoraベースのシステムはDAC_OVERRIDEなしでデーモンを実行しますが、DAC_OVERRIDEを管理者ログインセッションに付与します(変更が管理者から見えないようにします)。

詳細は 低プロセス機能 を参照してください。

これは、600と000の権限が機能的に同一ではないという事実に依存しています。600はファイル所有者に読み取り/書き込みを許可しますが、000はDAC_OVERRIDE機能を持つプロセスへのアクセスのみを許可します。従来、rootとして実行すると常にDAC_OVERRIDEが付与されていましたが、そうである必要はありません。

(SELinuxを使用してルートの機能を制限することもできますが、これはここでは関係ありません。/etc/shadowには独自のSELinuxコンテキストがあり、追加のアクセス制御を提供します。)

35
Stephen Kitt