αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž›αžΈαž“αž»αž…

αž αŸαžαž»αž•αž›αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž αŸαžαž»αž•αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αž‡αŸ„αž‚αž‡αŸαž™αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž“αŸƒ Linux OS αž“αŸ…αž›αžΎαž§αž”αž€αžšαžŽαŸαž…αž›αŸαž αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αž”αŸ‹ αž‚αžΊαž‡αžΆαž€αž˜αŸ’αžšαž·αžαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžαŸ’αž–αžŸαŸ‹αž“αŸƒαžαžΊαžŽαŸ‚αž› αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎ αž˜αžΎαž›αž±αŸ’αž™αž€αžΆαž“αŸ‹αžαŸ‚αž‡αž·αž αž…αŸ†αž–αŸ„αŸ‡αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αŸƒαžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž… αž“αŸ„αŸ‡αžœαžΆαž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αžΆαžšαŸ‰αŸαžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžŠαžΌαž…αž“αŸ„αŸ‡αŸ” αžαžΎβ€‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’β€‹αžšαž„β€‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–β€‹αž›αžΈαž“αž»αž…β€‹αž›αžΆαž€αŸ‹β€‹αž“αŸ…β€‹αž―αžŽαžΆ αž αžΎαž™β€‹αžαžΎβ€‹αžœαžΆβ€‹αž˜αžΆαž“β€‹αž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡?

αž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™αž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŒαž»αž›αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž›αžΈαž“αž»αž… αž“αž·αž„ SELinux

Security Enhanced Linux αž‚αžΊαž‡αžΆαžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž…αŸ’αž”αžΆαž”αŸ‹ αž“αž·αž„αž™αž“αŸ’αžαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎ αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž‚αŸ†αžšαžΌαž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž…αžΆαŸ†αž”αžΆαž…αŸ‹ αž“αž·αž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαžαž½αž“αžΆαž‘αžΈ αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’ Linux αž–αžΈαž€αžΆαžšαž‚αŸ†αžšαžΆαž˜αž€αŸ†αž αŸ‚αž„αžŠαŸ‚αž›αž’αžΆαž…αž€αžΎαžαž˜αžΆαž“ αž“αž·αž„αž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžαŸ’αžœαŸ‡αžαžΆαžαž“αŸƒ Discretionary Access Control (DAC) αžŠαŸ‚αž›αž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– Unix αž”αŸ’αžšαž–αŸƒαžŽαžΈαŸ” αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αž˜αžΆαž“αž”αŸ’αžšαž—αž–αž…αŸαž‰αž–αžΈαž–αŸ„αŸ‡αžœαŸ€αž“αžšαž”αžŸαŸ‹αž‘αžΈαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαžŸαž“αŸ’αžαž·αžŸαž»αžαž‡αžΆαžαž·αžŸαž αžšαžŠαŸ’αž‹αž’αžΆαž˜αŸαžšαž·αž€ αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αžŠαŸ„αž™αž’αŸ’αž“αž€αž˜αŸ‰αŸ…αž€αžΆαžš Secure Computing Corporation αž“αž·αž„ MITER αž€αŸαžŠαžΌαž…αž‡αžΆαž˜αž“αŸ’αž‘αžΈαžšαž–αž·αžŸαŸ„αž’αž“αŸαžŸαŸ’αžšαžΆαžœαž‡αŸ’αžšαžΆαžœαž˜αž½αž™αž…αŸ†αž“αž½αž“αž•αž„αžŠαŸ‚αžšαŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž›αžΈαž“αž»αž…
αž˜αŸ‰αžΌαžŒαž»αž›αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž›αžΈαž“αž»αž…

Linus Torvalds αž”αžΆαž“αž’αŸ’αžœαžΎαž’αžαŸ’αžαžΆαž’αž·αž”αŸ’αž”αžΆαž™αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αž–αžΈαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ NSA αžαŸ’αž˜αžΈαžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž–αž½αž€αž‚αŸαž’αžΆαž…αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αŸ” αž‚αžΆαžαŸ‹αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž”αžšαž·αžŸαŸ’αžαžΆαž“αž‘αžΌαž‘αŸ… αžŠαŸ„αž™αž˜αžΆαž“αžŸαŸ†αžŽαž»αŸ†αž§αž”αž€αžšαžŽαŸαžŸαŸ’αž‘αžΆαž€αŸ‹αž…αžΆαž”αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‡αžΆαž˜αž½αž™αžœαžαŸ’αžαž» αž“αž·αž„αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαžœαžΆαž›αž€αžΆαžšαž–αžΆαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαžΊαžŽαŸ‚αž› αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αžšαž·αžŸαŸ’αžαžΆαž“αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαŸ„αž™αž˜αŸ‰αžΌαžŒαž»αž›αžαžΊαžŽαŸ‚αž›αžŠαŸ‚αž›αž’αžΆαž…αž•αŸ’αž‘αž»αž€αž”αžΆαž“ αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαž‚αŸ†αžšαžΌαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ” LSM αž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž… v2.6 αž™αŸ‰αžΆαž„αž–αŸαž‰αž›αŸαž‰αž€αŸ’αž“αž»αž„αž†αŸ’αž“αžΆαŸ† 2003αŸ”

αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ LSM αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžœαžΆαž›αž™αžΆαž˜αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αž€αžΆαžšαž αŸ…αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αž»αžαž„αžΆαžšαžŸαŸ’αž‘αžΆαž€αŸ‹αž…αžΆαž”αŸ‹αž“αŸ…αž…αŸ†αžŽαž»αž…αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΌαžŠαžαžΊαžŽαŸ‚αž› αžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ€αž”αž…αŸ†αž–αž½αž€αžœαžΆ αž“αž·αž„αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ” αžœαžΆαž€αŸαž”αž“αŸ’αžαŸ‚αž˜αž˜αž»αžαž„αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž˜αŸ‰αžΌαžŒαž»αž›αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž•αž„αžŠαŸ‚αžšαŸ” αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹ /sys/kernel/security/lsm αž˜αžΆαž“αž”αž‰αŸ’αž‡αžΈαž“αŸƒαž˜αŸ‰αžΌαžŒαž»αž›αžŸαž€αž˜αŸ’αž˜αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αž‘αŸ†αž–αž€αŸ‹ LSM αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ…αžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ CONFIG_LSM αŸ” αž―αž€αžŸαžΆαžšαž›αž˜αŸ’αž’αž·αžαž“αŸ…αž›αžΎαž‘αŸ†αž–αž€αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž”αž‹αž˜αž€αžαžΆ include/linux/lsm_hooks.h αŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„ LSM αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž”αž‰αŸ’αž…αž”αŸ‹αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž–αŸαž‰αž›αŸαž‰αž“αŸƒ SELinux αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αŸ†αžŽαŸ‚αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸƒαžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž– v2.6 αŸ” αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž—αŸ’αž›αžΆαž˜αŸ—αž“αŸ„αŸ‡ SELinux αž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‡αžΆαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αžšαž·αžŸαŸ’αžαžΆαž“αž›αžΈαž“αž»αž…αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αžŠαŸαž–αŸαž‰αž“αž·αž™αž˜αž”αŸ†αž•αž»αžαŸ– RedHat Enterprise Linux, Fedora, Debian, Ubuntu αŸ”

αžŸαž‘αŸ’αž‘αžΆαž“αž»αž€αŸ’αžšαž˜ SELinux

  • αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽ - αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ SELinux αž˜αž·αž“αžŠαžΌαž…αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Unix/Linux αž’αž˜αŸ’αž˜αžαžΆαž‘αŸ αž–αž½αž€αž‚αŸαž’αžΆαž…αžšαž½αž˜αžšαžŸαŸ‹αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ‚αž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαžαž»αžŸαž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ” αž‚αžŽαž“αžΈαž›αžΈαž“αž»αž…αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž“αžΈαž˜αž½αž™αŸ—αž’αžΆαž…αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αž˜αž½αž™ αž¬αž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„ SELinux αŸ” αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽ SELinux αž‚αžΊαž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒαž”αžšαž·αž”αž‘αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž‘αžΆαŸ†αž„αž˜αžΌαž› αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αžŠαŸ‚αž“αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž… αž“αž·αž„αž˜αž·αž“αž’αžΆαž…αž…αžΌαž›αžšαž½αž˜αž”αžΆαž“αŸ”
  • αžŠαŸ‚αž“ - αž“αŸ…αž€αŸ’αž“αž»αž„ SELinux αžŠαŸ‚αž“αž‚αžΊαž‡αžΆαž”αžšαž·αž”αž‘αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸƒαž”αŸ’αžšαž’αžΆαž“αž”αž‘ αž–αŸ„αž›αž‚αžΊαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™αŸ” αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αžΆαž“αŸ” αžŠαŸ‚αž“αž‚αžΊαž‡αžΆαž”αž‰αŸ’αž‡αžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“ αž¬αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αžΆαž…αž’αŸ’αžœαžΎαž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž—αŸαž‘αž•αŸ’αžŸαŸαž„αŸ—αŸ” αž§αž‘αžΆαž αžšαžŽαŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸƒαžŠαŸ‚αž“αž‚αžΊ sysadm_t αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž“αž·αž„ user_t αžŠαŸ‚αž›αž‡αžΆαžŠαŸ‚αž“αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž˜αŸ’αž˜αžαžΆαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αŸ” αž”αŸ’αžšαž–αŸαž“αŸ’αž’ init αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αžŠαŸ‚αž“ init_t αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αžŠαŸ‚αž“ name_t αŸ”
  • αžαž½αž“αžΆαž‘αžΈ - αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αž˜αŸ’αžšαžΎαž‡αžΆαž’αž“αŸ’αžαžšαž€αžΆαžšαžΈαžšαžœαžΆαž„αžŠαŸ‚αž“ αž“αž·αž„αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ SELinux αŸ” αžαž½αž“αžΆαž‘αžΈαž€αŸ†αžŽαžαŸ‹αžŠαŸ‚αž“αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αžΆαž…αž‡αžΆαž€αž˜αŸ’αž˜αžŸαž·αž‘αŸ’αž’αž· αž“αž·αž„αž”αŸ’αžšαž—αŸαž‘αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαž”αžΆαž“αŸ” αž™αž“αŸ’αžαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž“αŸαŸ‡αž€αžΆαžšαž–αžΆαžšαž€αžΆαžšαž‚αŸ†αžšαžΆαž˜αž€αŸ†αž αŸ‚αž„αž“αŸƒαž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž”αž„αŸ’αž€αžΎαž“αžŸαž·αž‘αŸ’αž’αž·αŸ” αžαž½αž“αžΆαž‘αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ†αžšαžΌαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– Role Based Access Control (RBAC) αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„ SELinux αŸ”
  • αž”αŸ’αžšαž—αŸαž‘ - αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαž”αž‰αŸ’αž‡αžΈαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαž—αŸαž‘αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αžαžΆαŸ†αž„αž‘αŸ…αžœαžαŸ’αžαž»αž˜αž½αž™ αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αžαžΆαž’αŸ’αž“αž€αžŽαžΆαž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαžœαžΆαž”αžΆαž“αŸ” αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž“αž·αž™αž˜αž“αŸαž™αžŠαŸ‚αž“ αž›αžΎαž€αž›αŸ‚αž„αžαŸ‚αžŠαŸ‚αž“αž“αŸ„αŸ‡αž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™ αž αžΎαž™αž”αŸ’αžšαž—αŸαž‘αž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αžœαžαŸ’αžαž»αžŠαžΌαž…αž‡αžΆ αžαžαž―αž€αžŸαžΆαžš αžšαž“αŸ’αž’αž‡αžΆαžŠαžΎαž˜αŸ”
  • αžœαžαŸ’αžαž»αž“αž·αž„αžœαžαŸ’αžαž» - αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαžαŸ’αžαž» αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž”αžšαž·αž”αž‘αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž¬αžŠαŸ‚αž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ” αž’αž“αž’αžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ– αž―αž€αžŸαžΆαžš αžαžαž―αž€αžŸαžΆαžš αžšαž“αŸ’αž’αž‡αžΆαžŠαžΎαž˜ αž‚αžΊαž‡αžΆαžœαžαŸ’αžαž»αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αžαžΆαŸ†αž„αž”αŸ’αžšαž—αŸαž‘αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž˜αŸ’αž™αŸ‰αžΆαž„αžœαž·αž‰αž‘αŸ€αž αž€αž˜αŸ’αžšαž·αžαž―αž€αž‡αž“αž—αžΆαž–αŸ”
  • αž‚αŸ„αž›αž€αžΆαžšαžŽαŸ SELinux - SELinux αž”αŸ’αžšαžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αž‚αŸ„αž›αž€αžΆαžšαžŽαŸ SELinux αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž…αŸ†αž–αŸ„αŸ‡αžαž½αž“αžΆαž‘αžΈ αžαž½αž“αžΆαž‘αžΈαž‘αŸ…αž€αžΆαž“αŸ‹αžŠαŸ‚αž“ αž“αž·αž„αžŠαŸ‚αž“αž‘αŸ…αž”αŸ’αžšαž—αŸαž‘αŸ” αžŠαŸ†αž”αžΌαž„ αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž‘αž‘αž½αž›αž”αžΆαž“αžαž½αž“αžΆαž‘αžΈ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžαž½αž“αžΆαž‘αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž…αžΌαž›αž”αŸ’αžšαžΎαžŠαŸ‚αž“αŸ” αž‡αžΆαž…αž»αž„αž€αŸ’αžšαŸ„αž™ αžŠαŸ‚αž“αž˜αž½αž™αž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαž”αžΆαž“αžαŸ‚αž”αŸ’αžšαž—αŸαž‘αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸƒαžœαžαŸ’αžαž»αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

LSM αž“αž·αž„αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ SELinux

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸαžŠαŸ„αž™ LSMs αž‡αžΆαž‘αžΌαž‘αŸ…αž˜αž·αž“αž’αžΆαž…αž•αŸ’αž‘αž»αž€αž˜αŸ‰αžΌαžŒαž»αž›αž›αžΈαž“αž»αž…αž”αžΆαž“αž‘αŸαŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžŠαžΌαž…αž‡αžΆ SELinux αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‘αŸ…αž€αŸ’αž“αž»αž„αžαžΊαžŽαŸ‚αž›αŸ” αžšαžΆαž›αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ…αž€αžΌαžŠαž”αŸ’αžšαž—αž– LSM αž‘αžΆαž˜αž‘αžΆαžšαž€αžΆαžšαž…αž„αž€αŸ’αžšαž„αžαžΊαžŽαŸ‚αž›αžαŸ’αž˜αžΈαŸ” αž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαžαŸ‚αž”αžΎαž€αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžαžΊαžŽαŸ‚αž› αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‘αŸαž›αŸαžαž€αžΌαžŠ LSM αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαž€αž˜αŸ’αž˜αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžŠαŸ„αž™αž‡αž˜αŸ’αžšαžΎαžŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž›αžΈαž“αž»αž…
αž‡αž„αŸ‹αž–αž·αž“αž·αžαŸ’αž™ LSM

LSM αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž–αžΆαž€αŸ‹αžŠαŸ„αž™αž‘αŸ†αž–αž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž»αžαž„αžΆαžšαžαžΊαžŽαŸ‚αž›αžŸαŸ’αž“αžΌαž› αžŠαŸ‚αž›αž’αžΆαž…αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ” αž›αž€αŸ’αžαžŽαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž˜αž½αž™αž“αŸƒ LSMs αž‚αžΊαžαžΆαž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž‡αž„αŸ‹αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž“αŸ…αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž αž αžΎαž™αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž“αžΈαž˜αž½αž™αŸ—αž“αŸƒ LSM αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž“αž·αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž“αŸαŸ‡β€‹αž˜αžΆαž“β€‹αž“αŸαž™β€‹αžαžΆ αž€αžΆαžšβ€‹αž αžΆαž˜αž”αŸ’αžšαžΆαž˜β€‹αž˜αž·αž“β€‹αž’αžΆαž…β€‹αžŠαž€β€‹αžαž™β€‹αžœαž·αž‰β€‹αž”αžΆαž“β€‹αž‘αŸαŸ” αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž– αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ DAC αž‡αžΆαž”αŸ’αžšαž…αžΆαŸ†αž‚αžΊαž‡αžΆαž€αžΆαžšαž”αžšαžΆαž‡αŸαž™ αž“αŸ„αŸ‡αž”αž‰αŸ’αž αžΆαž“αžΉαž„αž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžŠαž›αŸ‹αž‘αŸ†αž–αž€αŸ‹ LSM αž”αžΆαž“αž‘αŸαŸ”

SELinux αž‘αž‘αž½αž›αž™αž€αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– Flask αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαŸ’αžšαžΆαžœαž‡αŸ’αžšαžΆαžœ Fluke αž‡αžΆαž–αž·αžŸαŸαžŸαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸƒαžŸαž·αž‘αŸ’αž’αž·αžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αžαŸ” αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž“αŸƒαž‚αŸ†αž“αž·αžαž“αŸαŸ‡ αžŠαžΌαž…αžŠαŸ‚αž›αžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αžœαžΆαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰ αž‚αžΊαž•αŸ’αžαž›αŸ‹αžŸαž·αž‘αŸ’αž’αž·αžŠαž›αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž¬αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ‚αžŸαž·αž‘αŸ’αž’αž·αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡ αžŠαŸ‚αž›αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž‚αŸ’αžšαŸ„αž„αž‘αž»αž€αŸ” αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαžœαžΆαž™αž”αž‰αŸ’αž…αžΌαž›αžŠαŸ„αž™αž”αž„αŸ’αžαŸ† αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„ SELinux αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎ domain => type modelαŸ”

αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαžœαžΆαž™αž”αž‰αŸ’αž…αžΌαž›αžŠαŸ„αž™αž”αž„αŸ’αžαŸ† SELinux αž˜αžΆαž“αžŸαž˜αžαŸ’αžαž—αžΆαž–αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž”αžΆαž“αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž‚αŸ†αžšαžΌ DAC αž”αŸ’αžšαž–αŸƒαžŽαžΈαžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš Unix/Linux αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž›αŸαžαž…αŸ’αžšαž€αž”αžŽαŸ’αžαžΆαž‰αžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ ftp αž“αžΉαž„αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžŸαžšαžŸαŸαžš αž“αž·αž„αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž―αž€αžŸαžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžαžαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž›αž»αž”αž–αž½αž€αžœαžΆαž‘αŸαŸ”

αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αžšαž”αžŸαŸ‹ SELinux αž‚αžΊαŸ–

  • αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž’αž“αž»αžœαžαŸ’αžαž‚αŸ„αž›αž€αžΆαžšαžŽαŸ - αž™αž“αŸ’αžαž€αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”
  • αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αŸ„αž›αž“αž™αŸ„αž”αžΆαž™αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”
  • αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž§αž”αž€αžšαžŽαŸαžŸαŸ’αž‘αžΆαž€αŸ‹αž…αžΆαž”αŸ‹αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ LSM αŸ”
  • Selinuxfs - Pseudo-FS αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„ /proc αž“αž·αž„αž”αžΆαž“αž˜αŸ‰αŸ„αž“αž“αŸ…αž€αŸ’αž“αž»αž„ /sys/fs/selinux αŸ” αž”αž‰αŸ’αž…αžΌαž›αžαžΆαž˜αžœαž“αŸ’αžαžŠαŸ„αž™αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž˜αžΆαž“αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž– SELinux αŸ”
  • αž…αžΌαž›αž”αŸ’αžšαžΎαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžœαŸ‰αž·αž…αž‘αŸαžš - αž™αž“αŸ’αžαž€αžΆαžšαž‡αŸ†αž“αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž•αž›αž·αžαž—αžΆαž–αŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž›αžΈαž“αž»αž…
αžšαž”αŸ€αž”αžŠαŸ‚αž› SELinux αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

αžœαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž“αŸαŸ‡αŸ”

  1. αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžαžŽαŸ’αžŒ SELinux αž’αž“αž»αžœαžαŸ’αžαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž›αžΎαžœαžαŸ’αžαž»αž˜αž½αž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ DAC αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–αžαžΆαž„αž›αžΎαŸ” αžŸαŸ†αžŽαžΎαž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αž½αž™αž‘αŸ…αž€αžΆαž“αŸ‹αž§αž”αž€αžšαžŽαŸαžŸαŸ’αž‘αžΆαž€αŸ‹αž…αžΆαž”αŸ‹αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ LSM αŸ”
  2. αž–αžΈαž‘αžΈαž“αŸ„αŸ‡ αžŸαŸ†αžŽαžΎαžšαž½αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸ’αžšαž’αžΆαž“αž”αž‘ αž“αž·αž„αž”αžšαž·αž”αž‘αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžœαžαŸ’αžαž»αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ…αž˜αŸ‰αžΌαžŒαž»αž› SELinux Abstraction αž“αž·αž„ Hook Logic αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™ LSM αŸ”
  3. αž’αžΆαž‡αŸ’αž‰αžΆαž’αžšαž’αŸ’αžœαžΎαž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž›αžΎαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαžšαž”αžŸαŸ‹αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‘αŸ…αž€αžΆαž“αŸ‹αžœαžαŸ’αžαž»αž˜αž½αž™αž‚αžΊ Server Enforcement Server αž αžΎαž™αžœαžΆαž‘αž‘αž½αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈ SELinux AnHLαŸ”
  4. αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαžŸαŸ†αžšαŸαž…αž…αž·αžαŸ’αžαž’αŸ†αž–αžΈαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎ αž¬αž€αžΆαžšαž”αžŠαž·αžŸαŸαž’αž“αŸ„αŸ‡ Server Enforcement Server αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹ Access Vector Cache (AVC) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸ’αž”αžΆαž”αŸ‹αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž…αŸ’αžšαžΎαž“αž”αŸ†αž•αž»αžαŸ”
  5. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸ’αž”αžΆαž”αŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹ αž“αŸ„αŸ‡αžŸαŸ†αžŽαžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ…αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αŸ„αž›αž“αž™αŸ„αž”αžΆαž™αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ”
  6. αž›αž‘αŸ’αž’αž•αž›αžŸαŸ’αžœαŸ‚αž„αžšαž€αž–αžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„ AVC αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž’αž“αž»αžœαžαŸ’αžαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαŸ”
  7. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αžšαž€αžƒαžΎαž‰αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ† αž“αŸ„αŸ‡αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαŸ” αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž‘αŸαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž αžΆαž˜αžƒαžΆαžαŸ‹αŸ”

αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ SELinux

SELinux αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž”αžΈαŸ–

  • αž€αžΆαžšαž–αž„αŸ’αžšαžΉαž„ - αž€αžΆαžšαž”αŸ’αžšαž€αžΆαž“αŸ‹αžαŸ’αž‡αžΆαž”αŸ‹αž™αŸ‰αžΆαž„αžαžΉαž„αžšαŸ‰αžΉαž„αž…αŸ†αž–αŸ„αŸ‡αž‚αŸ„αž›αž“αž™αŸ„αž”αžΆαž™αžŸαž“αŸ’αžαž·αžŸαž»αžαŸ”
  • αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαž - αž€αžΆαžšαž”αŸ†αž–αžΆαž“αž›αžΎαž€αžΆαžšαžšαžΉαžαž”αž“αŸ’αžαžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαž αž…αŸ†αžŽαžΆαŸ†αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αž·αž“αžΆαž“αž»αž”αŸ’αž”αžœαžαŸ’αžαž·αŸ”
  • αž”αž·αž‘ - αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž˜αž·αž“αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‘αŸαŸ”

αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžαžΆαžαžΎ SELinux αžŸαŸ’αžαž·αžαž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αžŽαžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ”

[admin@server ~]$ getenforce
Permissive

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžšαž”αŸ€αž”αž˜αž»αž“αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰ αž§αž‘αžΆαž αžšαžŽαŸ αž€αŸ†αžŽαžαŸ‹αžœαžΆαž‘αŸ…αž‡αžΆαž€αžΆαžšαž”αž„αŸ’αžαŸ† ឬ 1. αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž›αŸαžαž€αžΌαžŠαž›αŸαž 0 αŸ”

[admin@server ~]$ setenfoce enforcing
[admin@server ~]$ setenfoce 1 #Ρ‚ΠΎ ΠΆΠ΅ самоС

αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžšαž”αŸ€αž”αžŠαŸ„αž™αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž―αž€αžŸαžΆαžšαŸ–

[admin@server ~]$ cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.

SELINUXTYPE=αž‚αŸ„αž›αžŠαŸ…

αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™ setenfoce αž‚αžΊαžαžΆαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜ αž˜αž»αžαž„αžΆαžš SELinux αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŸαŸ’αžšαž”αžαžΆαž˜αžαž˜αŸ’αž›αŸƒαž“αŸƒαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš SELINUX αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αŸ…αž€αžΆαžšαž”αž„αŸ’αžαŸ† <=> αž”αž·αž‘αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αžαŸ‚αžŠαŸ„αž™αž€αžΆαžšαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž―αž€αžŸαžΆαžš /etc/selinux/config αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αŸ”

αž˜αžΎαž›αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαž„αŸ’αžαŸαž”αŸ–

[admin@server ~]$ sestatus

SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31

αžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆ SELinux αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αž”αŸ’αžšαžΎαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš -Z αŸ”

[admin@server ~]$ ls -lZ /var/log/httpd/
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200920
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200927
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201004
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201011
[admin@server ~]$ ps -u apache -Z
LABEL                             PID TTY          TIME CMD
system_u:system_r:httpd_t:s0     2914 ?        00:00:04 httpd
system_u:system_r:httpd_t:s0     2915 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     2916 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     2917 ?        00:00:00 httpd
...
system_u:system_r:httpd_t:s0     2918 ?        00:00:00 httpd

αž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„αž›αž‘αŸ’αž’αž•αž›αž’αž˜αŸ’αž˜αžαžΆαž“αŸƒ ls -l αž˜αžΆαž“αžœαžΆαž›αž”αž“αŸ’αžαŸ‚αž˜αž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

<user>:<role>:<type>:<level>

αžœαžΆαž›αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž…αžΆαžαŸ‹αžαŸ’αž“αžΆαž€αŸ‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž αžΎαž™αž˜αžΆαž“αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αŸƒαž’αžΆαžαž»αž–αžΈαžšαŸ–

  • s0 - αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αžŸαžšαžŸαŸαžšαž•αž„αžŠαŸ‚αžšαž‡αžΆαž…αž“αŸ’αž›αŸ„αŸ‡αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”-αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹
  • c0, c1… c1023 - αž”αŸ’αžšαž—αŸαž‘αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎ

αž”αŸ’αžšαžΎ semodule αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αž»αž€ αž”αž“αŸ’αžαŸ‚αž˜ αž“αž·αž„αž™αž€αž˜αŸ‰αžΌαžŒαž»αž› SELinux αž…αŸαž‰αŸ”

[admin@server ~]$ semodule -l |wc -l #список всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ
408
[admin@server ~]$ semodule -e abrt #enable - Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ
[admin@server ~]$ semodule -d accountsd #disable - ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ
[admin@server ~]$ semodule -r avahi #remove - ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

αž€αŸ’αžšαž»αž˜αž‘αžΈαž˜αž½αž™ αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž…αžΌαž› αž—αŸ’αž‡αžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ SELinux αž‘αŸ…αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš αž‘αžΈαž–αžΈαžšαž”αž„αŸ’αž αžΆαž‰αž”αž‰αŸ’αž‡αžΈαŸ” αž‡αžΆαž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž…αž»αž„αž€αŸ’αžšαŸ„αž™αžŠαŸ‚αž›αž˜αžΆαž“αž€αž»αž„αžαžΆαž€αŸ‹ -r αžŠαž€αž€αžΆαžšαž‚αžΌαžŸαž•αŸ‚αž“αž‘αžΈαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ SELinux αž‘αŸ…αž€αžΆαž“αŸ‹αž‚αžŽαž“αžΈ OS αŸ” αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž’αŸ†αž–αžΈαžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαž˜αŸ’αž›αŸƒαž‡αž½αžš MLS/MCS αž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž˜αž»αž“αŸ”

[admin@server ~]$ semanage login -a -s user_u karol
[admin@server ~]$ semanage login -l

Login Name SELinux User MLS/MCS Range Service
__default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
system_u system_u s0-s0:c0.c1023 *
[admin@server ~]$ semanage login -d karol

αž€αŸ’αžšαž»αž˜αž€αžΆαžšαž„αžΆαžš αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž‚αžΌαžŸαž•αŸ‚αž“αž‘αžΈαžšαžœαžΆαž„αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ SELinux αž“αž·αž„αžαž½αž“αžΆαž‘αžΈαŸ”

[admin@server ~]$ semanage user -l
                Labeling   MLS/       MLS/                          
SELinux User    Prefix     MCS Level  MCS Range             SELinux Roles
guest_u         user       s0         s0                    guest_r
staff_u         staff      s0         s0-s0:c0.c1023        staff_r sysadm_r
...
user_u          user       s0         s0                    user_r
xguest_u        user       s0         s0                    xguest_r
[admin@server ~]$ semanage user -a -R 'staff_r user_r'
[admin@server ~]$ semanage user -d test_u

αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ–

  • - αž”αž“αŸ’αžαŸ‚αž˜αž’αžΆαžαž»αž•αŸ‚αž“αž‘αžΈαžαž½αž“αžΆαž‘αžΈαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“;
  • -l αž”αž‰αŸ’αž‡αžΈαž“αŸƒαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆ αž“αž·αž„αžαž½αž“αžΆαž‘αžΈ;
  • -d αž›αž»αž”αž’αžΆαžαž»αž•αŸ‚αž“αž‘αžΈαžαž½αž“αžΆαž‘αžΈαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹;
  • -R αž”αž‰αŸ’αž‡αžΈαžαž½αž“αžΆαž‘αžΈαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹;

αž―αž€αžŸαžΆαžš αž…αŸ’αžšαž€ αž“αž·αž„αžαž˜αŸ’αž›αŸƒαž”αŸŠαžΌαž›αžΈαž“

αž˜αŸ‰αžΌαžŒαž»αž› SELinux αž“αžΈαž˜αž½αž™αŸ—αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž…αŸ’αž”αžΆαž”αŸ‹αžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αž―αž€αžŸαžΆαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž”αž“αŸ’αžαŸ‚αž˜αž…αŸ’αž”αžΆαž”αŸ‹αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž™αžΎαž„αž…αž„αŸ‹αž±αŸ’αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αŸαž αž‘αŸ†αž–αŸαžšαž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαžαž /srv/www αŸ”

[admin@server ~]$ semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?
[admin@server ~]$ restorecon -R /srv/www/

αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αžΈαž˜αž½αž™αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž…αŸ’αž”αžΆαž”αŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαŸ’αž˜αžΈ αž αžΎαž™αž‘αžΈαž–αžΈαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰ αž¬αž€αŸ†αžŽαžαŸ‹αž”αŸ’αžšαž—αŸαž‘αž―αž€αžŸαžΆαžšαžŸαŸ’αžšαž”αžαžΆαž˜αž…αŸ’αž”αžΆαž”αŸ‹αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ”

αžŠαžΌαž…αž‚αŸ’αž“αžΆαžŠαŸ‚αžš αž…αŸ’αžšαž€ TCP/UDP αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαž˜αžšαž”αŸ€αž”αžŠαŸ‚αž›αž˜αžΆαž“αžαŸ‚αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŸαž˜αžŸαŸ’αžšαž”αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αžŸαŸ’αžαžΆαž”αŸ‹αž”αžΆαž“αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž”αžŽαŸ’αžαžΆαž‰αžŸαŸ’αžαžΆαž”αŸ‹αž“αŸ…αž›αžΎαž…αŸ’αžšαž€ 8080 αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ”

[admin@server ~]$ semanage port -m -t http_port_t -p tcp 8080

αž…αŸ†αž“αž½αž“αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž˜αŸ‰αžΌαžŒαž»αž› SELinux αž˜αžΆαž“αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž’αžΆαž…αž™αž€αžαž˜αŸ’αž›αŸƒαž”αŸŠαžΌαž›αžΈαž“αŸ” αž”αž‰αŸ’αž‡αžΈαž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸƒαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž”αŸ‚αž”αž“αŸαŸ‡αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžŠαŸ„αž™αž”αŸ’αžšαžΎ getsebool -a αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαž˜αŸ’αž›αŸƒαž”αŸŠαžΌαž›αžΈαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎ setsebool αŸ”

[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_cgi --> on
[admin@server ~]$ setsebool -P httpd_enable_cgi off
[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_homedirs --> off

αžŸαž·αž€αŸ’αžαžΆαžŸαžΆαž›αžΆ αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰ Pgadmin

αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž§αž‘αžΆαž αžšαžŽαŸαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ– αž™αžΎαž„αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„ pgadmin7.6-web αž“αŸ…αž›αžΎ RHEL 4 αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ PostgreSQL αŸ” αž™αžΎαž„αžŠαžΎαžšαž”αž“αŸ’αžαž·αž… αžŠαŸ†αžŽαžΎαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž”αžŸαŸ‹ pg_hba.conf, postgresql.conf αž“αž·αž„ config_local.py αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαžαž αžŠαŸ†αž‘αžΎαž„αž˜αŸ‰αžΌαžŒαž»αž› Python αžŠαŸ‚αž›αž”αžΆαžαŸ‹αž–αžΈ pip αŸ” αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαžšαž½αž…αžšαžΆαž›αŸ‹ αž™αžΎαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž“αž·αž„αž‘αž‘αž½αž› 500 αž€αŸ†αž αž»αžŸαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαžΆαž„αž€αŸ’αž“αž»αž„.

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž›αžΈαž“αž»αž…

αž™αžΎαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž‡αž“αžŸαž„αŸ’αžŸαŸαž™αž’αž˜αŸ’αž˜αžαžΆ αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž› /var/log/httpd/error_log αŸ” αž˜αžΆαž“αž’αžΆαžαž»αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ”

[timestamp] [core:notice] [pid 23689] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
...
[timestamp] [wsgi:error] [pid 23690] [Errno 13] Permission denied: '/var/lib/pgadmin'
[timestamp] [wsgi:error] [pid 23690] [timestamp] [wsgi:error] [pid 23690] HINT : You may need to manually set the permissions on
[timestamp] [wsgi:error] [pid 23690] /var/lib/pgadmin to allow apache to write to it.

αž“αŸ…αž…αŸ†αžŽαž»αž…αž“αŸαŸ‡ αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž›αžΈαž“αž»αž…αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αŸ’αž”αž½αž„αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš setencorce 0 αž αžΎαž™αž“αŸ„αŸ‡αž“αžΉαž„αž‡αžΆαž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž“αž·αž™αžΆαž™αž±αŸ’αž™αžαŸ’αžšαž„αŸ‹αž‘αŸ… αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž’αŸ’αžœαžΎαžœαžΆαž‡αžΆαž›αžΎαž€αžŠαŸ†αž”αžΌαž„αŸ” αž“αŸαŸ‡αž€αŸαž‡αžΆαž•αŸ’αž›αžΌαžœαž…αŸαž‰αžŠαŸ‚αžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž†αŸ’αž„αžΆαž™αž–αžΈαž›αŸ’αž’αž”αŸ†αž•αž»αžαŸ”

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαžšαž…αž“αžΆαžŠαŸαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž€αŸαžŠαŸ„αž™ SELinux αž’αžΆαž…αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎαŸ” αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžŠαŸ†αž‘αžΎαž„αž€αž‰αŸ’αž…αž”αŸ‹ setroubleshoot αž αžΎαž™αž˜αžΎαž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”

[admin@server ~]$ yum install setroubleshoot
[admin@server ~]$ journalctl -b -0
[admin@server ~]$ service restart auditd

αžŸαžΌαž˜αž…αŸ†αžŽαžΆαŸ†αžαžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŸαžœαž“αž€αž˜αŸ’αž˜αžαŸ’αžšαžΌαžœαžαŸ‚αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αžαžΆαž˜αžœαž·αž’αžΈαž“αŸαŸ‡ αž“αž·αž„αž˜αž·αž“αž”αŸ’αžšαžΎ systemctl αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αžΆαž“αžœαžαŸ’αžαž˜αžΆαž“ systemd αž“αŸ…αž€αŸ’αž“αž»αž„ OS αž€αŸαžŠαŸ„αž™αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰ αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž€αžΆαžšαž–αž·αžαž“αŸƒαž€αžΆαžšαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸαž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαž‡αžΆαž αŸαžαž»αž•αž›αž“αž·αž„ αžœαž·αž’αžΈαžŠαžΎαž˜αŸ’αž”αžΈαž™αž€αžˆαŸ’αž“αŸ‡αž€αžΆαžšαž αžΆαž˜αžƒαžΆαžαŸ‹.

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž›αžΈαž“αž»αž…

αž™αžΎαž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ–

[admin@server ~]$ setsebool -P httpd_can_network_connect 1
[admin@server ~]$ setsebool -P httpd_can_network_connect_db 1

αž™αžΎαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž€αžΆαžšαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžš pgadmin4-web page αž’αŸ’αžœαžΈαŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž›αžΈαž“αž»αž…

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž›αžΈαž“αž»αž…

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹