ื–ื™ื›ืขืจื”ื™ื™ื˜ ืกื™ืกื˜ืขืžืขืŸ Linux

ืื™ื™ื ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืกื™ื‘ื•ืช ืคืืจืŸ ื’ืจื•ื™ืกืŸ ืขืจืคืืœื’ Linux ื“ื™ ืึธืคึผืขืจื™ืจืŸ ืกื™ืกื˜ืขื ืื•ื™ืฃ ืขืžื‘ืขื“ืขื“, ืžืึธื‘ื™ืœ ื“ืขื•ื•ื™ืกืขืก ืื•ืŸ ืกืขืจื•ื•ืขืจืก ื”ืื˜ ืึท ื’ืึทื ืฅ ื”ื•ื™ืš ืžื“ืจื’ื” ืคื•ืŸ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคึฟืึทืจ ื“ื™ ืงืขืจื ืขืœ, ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ื‘ืึทื“ื™ื ื•ื ื’ืขืŸ ืื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืึธื‘ืขืจ ืื•ื™ื‘ ื ืขืžืขืŸ ืึท ื ืขืขื ื˜ืขืจ ืงื•ืง ืฆื• ื“ืขืจ ืงืขืจื ืขืœ ืืจื›ื™ื˜ืขืงื˜ื•ืจ Linux, ื“ืขืžืึธืœื˜ ืงืขื ื˜ ืื™ืจ ื ื™ืฉื˜ ื’ืขืคึฟื™ื ืขืŸ ืงื™ื™ืŸ ืงื•ื•ืึทื“ืจืึทื˜ ืื™ืŸ ืื™ื ื•ื•ืึธืก ืื™ื– ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื–ื™ื›ืขืจื”ื™ื™ื˜ ื•ื•ื™ ืึทื–ืึท. ื•ื•ืื• ื‘ืึทื”ืึทืœื˜ ื–ื™ืš ื“ื™ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืกื•ื‘ืกื™ืกื˜ืขื? Linux ืื•ืŸ ื•ื•ืึธืก ื‘ืึทืฉื˜ื™ื™ื˜ ืขืก ืคึฟื•ืŸ?

ืคึผืจืขื”ื™ืกื˜ืึธืจื™ Linux ื–ื™ื›ืขืจื”ื™ื™ื˜ ืžืึธื“ื•ืœืŸ ืื•ืŸ SELinux

ืคึฟืึทืจื‘ืขืกืขืจื˜ืข ื–ื™ื›ืขืจื”ื™ื™ื˜ Linux ืื™ื– ืึท ืกื›ื•ื ืคื•ืŸ ื›ึผืœืœื™ื ืื•ืŸ ืฆื•ื˜ืจื™ื˜ ืžืขื›ืึทื ื™ื–ืžืขืŸ ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ืžืึทื ื“ืึทื˜ืึธืจื™ืฉืข ืื•ืŸ ืจืึธืœืข-ื‘ืึทื–ื™ืจื˜ืข ืฆื•ื˜ืจื™ื˜ ืžืึธื“ืขืœืŸ ืฆื• ื‘ืึทืฉื™ืฆืŸ ืกื™ืกื˜ืขืžืขืŸ Linux ืงืขื’ืŸ ืžืขื’ืœืขื›ืข ืกื›ื ื•ืช ืื•ืŸ ืคืืจืจืขื›ื˜ื•ื ื’ืขืŸ ืคืืจ ื“ื™ ื—ืกืจื•ื ื•ืช ืคื•ืŸ ื“ื™ืกืงืจืขืฉืึทื ืขืจื™ ืึทืงืกืขืก ืงืึธื ื˜ืจืึธืœ (DAC), ื ื˜ืจืื“ื™ืฆื™ืื ืขืœ ื™ื•ื ื™ืงืก ื–ื™ื›ืขืจื”ื™ื™ื˜ ืกื™ืกื˜ืขื. ื“ืขืจ ืคึผืจืึธื™ืขืงื˜ ื”ืึธื˜ ื–ื™ืš ืึธื ื’ืขื”ื•ื™ื‘ืŸ ืื™ืŸ ื“ืขืจ ื™ื•. ืขืก. ื ืึทืฆื™ืึธื ืึทืœืขืจ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืึทื’ืขื ื˜ื•ืจ, ืžื™ื˜ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื‘ืคึฟืจื˜ ื“ื•ืจื›ื’ืขืคึฟื™ืจื˜ ื“ื•ืจืš ืงืึธื ื˜ืจืึทืงื˜ืึธืจืŸ ืกืขืงื™ื•ืจ ืงืึธืžืคึผื™ื•ื˜ื™ื ื’ ืงืึธืจืคึผืึธืจืึทืฆื™ืข ืื•ืŸ MITRE, ื•ื•ื™ ืื•ื™ืš ืึท ืฆืึธืœ ืคึฟืึธืจืฉื•ื ื’ ืœืึทื‘ืึธืจืึทื˜ืึธืจื™ืขืก.

ื–ื™ื›ืขืจื”ื™ื™ื˜ ืกื™ืกื˜ืขืžืขืŸ Linux
Linux ื–ื™ื›ืขืจื”ื™ื™ึทื˜ ืžืึธื“ื•ืœืขืก

ืœื™ื ื•ืก ื˜ืึธืจื•ื•ืึทืœื“ืก ื”ืึธื˜ ื’ืขืžืึทื›ื˜ ืึท ืฆืึธืœ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ื•ื•ืขื’ืŸ ื ืฒึทืข NSA ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ืขืŸ ื›ึผื“ื™ ื–ื™ื™ ื–ืึธืœืŸ ืงืขื ืขืŸ ืึทืจืฒึทื ื’ืขื ื•ืžืขืŸ ื•ื•ืขืจืŸ ืื™ืŸ ื“ืขื ื”ื•ื™ืคึผื˜ึพืœื™ื ื™ืข ืงืขืจื ืขืœ. Linuxืขืจ ื”ืึธื˜ ื‘ืึทืฉืจื™ื‘ืŸ ืึท ื’ืขืžื™ื™ื ื–ืึทืžืข ืกื‘ื™ื‘ื”, ืžื™ื˜ ืึท ืกื›ื•ื ืื™ื ื˜ืขืจืกืขืคึผื˜ืึธืจืก ืคึฟืึทืจ ืคืึทืจื•ื•ืึทืœื˜ืŸ ืึธื‘ื™ืขืงื˜ ืึธืคึผืขืจืึทืฆื™ืขืก ืื•ืŸ ืึท ืกื›ื•ื ืคึผืจืึทื˜ืขืงื˜ื™ื•ื• ืคืขืœื“ืขืจ ืื™ืŸ ืงืขืจื ืขืœ ื“ืึทื˜ืŸ ืกื˜ืจื•ืงื˜ื•ืจืŸ ืคึฟืึทืจ ืกื˜ืึธืจื™ื ื’ ื“ื™ ืงืึธืจืขืกืคึผืึธื ื“ื™ื ื’ ืึทื˜ืจื™ื‘ื™ื•ื˜ืŸ. ื“ื™ ืกื‘ื™ื‘ื” ืงืขืŸ ื“ืขืžืึธืœื˜ ื•ื•ืขืจืŸ ื’ืขื ื•ืฆื˜ ื“ื•ืจืš ืœืึธื•ื“ืึทื‘ืึทืœ ืงืขืจื ืขืœ ืžืึธื“ื•ืœืŸ ืฆื• ื™ืžืคึผืœืึทืžืขื ื˜ื™ืจืŸ ืงื™ื™ืŸ ื’ืขื•ื•ืื•ื ื˜ืฉืข ื–ื™ื›ืขืจื”ื™ื™ื˜ ืžืึธื“ืขืœ. LSM ืื™ื– ื’ืขื•ื•ืึธืจืŸ ื’ืึธืจ ืื™ื ื˜ืขื’ืจื™ืจื˜ ืื™ืŸ ื“ื™ ืงืขืจื ืขืœ. Linux ื•ื•ืขืจืกื™ืข 2.6 ืื™ืŸ 2003.

ื“ื™ LSM ืคืจื™ื™ืžื•ื•ืขืจืง ื›ื•ืœืœ ื”ื™ื˜ืŸ ืคืขืœื“ืขืจ ืื™ืŸ ื“ืึทื˜ืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื– ืื•ืŸ ืจื•ืคื˜ ืฆื• ื™ื ื˜ืขืจืกืขืคึผืฉืึทืŸ ืคืึทื ื’ืงืฉืึทื ื– ืื™ืŸ ืงืจื™ื˜ื™ืฉ ืคื•ื ืงื˜ืŸ ืื™ืŸ ื“ื™ ืงืขืจืŸ ืงืึธื“ ืฆื• ืžืึทื ื™ืคึผื•ืœื™ืจืŸ ื–ื™ื™ ืื•ืŸ ื“ื•ืจื›ืคื™ืจืŸ ืึทืงืกืขืก ืงืึธื ื˜ืจืึธืœ. ืขืก ืื•ื™ืš ืžื•ืกื™ืฃ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืคึฟืึทืจ ืจืขื“ื–ืฉื™ืกื˜ืขืจื™ื ื’ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืžืึทื“ื–ืฉื•ืœื–. ื“ื™ /sys/kernel/security/lsm ืฆื•ื‘ื™ื ื“ ื›ึผื•ืœืœ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืึทืงื˜ื™ื•ื• ืžืึทื“ื–ืฉื•ืœื– ืื•ื™ืฃ ื“ื™ ืกื™ืกื˜ืขื. LSM ื›ื•ืงืก ื–ืขื ืขืŸ ืกื˜ืึธืจื“ ืื™ืŸ ืจืฉื™ืžื•ืช ื•ื•ืึธืก ื–ืขื ืขืŸ ื’ืขืจื•ืคึฟืŸ ืื™ืŸ ื“ื™ ืกื“ืจ ืกืคึผืขืกื™ืคื™ืขื“ ืื™ืŸ CONFIG_LSM. ื“ื™ื˜ื™ื™ืœื“ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืื•ื™ืฃ ื›ื•ืงืก ืื™ื– ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ ื›ืขื“ืขืจ ื˜ืขืงืข include/linux/lsm_hooks.h.

ื“ื™ LSM ืกื•ื‘ืกื™ืกื˜ืขื ื”ืื˜ ืขืจืœื•ื™ื‘ื˜ ื“ื™ ืคื•ืœืข ืื™ื ื˜ืขื’ืจืืฆื™ืข ืคื•ืŸ โ€‹โ€‹SELinux ื“ื™ ื–ืขืœื‘ืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืกื˜ืื‘ื™ืœืŸ ืงืขืจื ืขืœ Linux ื•ื•ืขืจืกื™ืข 2.6. ืžืžืฉ ื’ืœื™ื™ืš ื“ืจื•ื-ืžื–ืจื—Linux ืื™ื– ื’ืขื•ื•ืึธืจืŸ ื“ืขืจ ื“ืข ืคืึทืงื˜ืึธ ืกื˜ืึทื ื“ืึทืจื˜ ืคึฟืึทืจ ื–ื™ื›ืขืจืข ืกื‘ื™ื‘ื•ืช Linux ืื•ืŸ ืื™ื– ื’ืขื•ื•ืึธืจืŸ ืึท ื˜ื™ื™ืœ ืคึฟื•ืŸ ื“ื™ ืžืขืจืกื˜ ืคึผืึธืคึผื•ืœืขืจืข ื“ื™ืกื˜ืจื™ื‘ื™ื•ืฆื™ืขืก: RedHat Enterprise Linux, ืคืขื“ืึธืจืึท, Debian, Ubuntu.

SE ื’ืœืึธืกืึทืจLinux

  • ืื™ื“ืขื ื˜ื™ื˜ืขื˜ โ€” SE ื‘ืึทื ื™ืฆืขืจLinux ื ื™ืฉื˜ ื“ื™ ื–ืขืœื‘ืข ื•ื•ื™ ื“ื™ ื’ืขื•ื•ื™ื™ื ื˜ืœืขื›ืข ื™ื•ื ื™ืงืก/Linux ื‘ืึทื ื™ืฆืขืจ ืื™ื“ืขื ื˜ื™ื˜ืขื˜, ื–ื™ื™ ืงืขื ืขืŸ ืงืึธ-ืขืงื–ื™ืกื˜ื™ืจืŸ ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ืขืจ ืกื™ืกื˜ืขื, ืึธื‘ืขืจ ื–ืขื ืขืŸ ื’ืึธืจ ืึทื ื“ืขืจืฉ ืื™ืŸ ืขืกืขื ืฅ. ื™ืขื“ืขืจ ื ืึธืจืžืึทืœ ื—ืฉื‘ื•ืŸ Linux ืงืขืŸ ืคึผืึทืกืŸ ืฆื• ืื™ื™ื ืก ืึธื“ืขืจ ืžืขืจ ืื™ืŸ ื“ืจื•ื-ืžื–ืจื—LinuxSE ืื™ื“ืขื ื˜ื™ื˜ืขื˜Linux ืื™ื– ืืŸ ืื™ื ื˜ืขื’ืจืืœืขืจ ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขื ืืœื’ืขืžื™ื™ื ืขื ื–ื™ื›ืขืจื”ื™ื™ื˜ ืงืื ื˜ืขืงืกื˜ ื•ื•ืืก ื‘ืืฉื˜ื™ืžื˜ ื•ื•ืขืœื›ืข ื“ืืžืขื™ื ืขืŸ ืžืขืŸ ืงืขืŸ ืืจื™ื™ื ื’ื™ื™ืŸ ืื•ืŸ ื•ื•ืขืœื›ืข ื ื™ืฉื˜.
  • ื“ืึธื•ืžื™ื™ื ื– โ€” ืื™ืŸ ื“ืจื•ืึพืžื–ืจื—Linux ื ื“ืืžืขื™ืŸ ืื™ื– ื“ืขืจ ืื•ื™ืกืคื™ืจ ืงืื ื˜ืขืงืกื˜ ืคื•ืŸ ื ืกื•ื‘ื™ืขืงื˜, ื“.ื”. ื ืคืจืืฆืขืก. ื ื“ืืžืขื™ืŸ ื‘ืืฉื˜ื™ืžื˜ ื’ืœื™ื™ืš ื“ืขื ืฆื•ื˜ืจื™ื˜ ื•ื•ืืก ื ืคืจืืฆืขืก ื”ืื˜. ื ื“ืืžืขื™ืŸ ืื™ื– ืื™ืŸ ืขื™ืงืจ ื ืœื™ืกื˜ืข ืคื•ืŸ โ€‹โ€‹ื•ื•ืืก ืคืจืืฆืขืกืŸ ืงืขื ืขืŸ ื˜ื•ืŸ ืื“ืขืจ ื•ื•ืืกืคืืจื ืืงืฆื™ืขืก ื ืคืจืืฆืขืก ืงืขืŸ ืื•ื™ืกืคื™ืจืŸ ืžื™ื˜ ืคืืจืฉื™ื“ืขื ืข ื˜ื™ืคืŸ. ืขื˜ืœื™ื›ืข ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ื“ืืžืขื™ื ืก ื–ืขื ืขืŸ sysadm_t ืคืืจ ืกื™ืกื˜ืขื ืื“ืžื™ื ื™ืกื˜ืจืืฆื™ืข, ืื•ืŸ user_t, ื•ื•ืืก ืื™ื– ื ืจืขื’ื•ืœืขืจืขืจ, โ€‹โ€‹ื ื™ืฉื˜-ืคืจื™ื•ื•ื™ืœืขื’ื™ืจื˜ืขืจ ื‘ืื ื™ืฆืขืจ ื“ืืžืขื™ืŸ. ื“ื™ init ืกื™ืกื˜ืขื ืœื•ื™ืคื˜ ืื™ืŸ ื“ื™ init_t ื“ืืžืขื™ืŸ, ืื•ืŸ ื“ืขืจ ืคืจืืฆืขืก ื•ื•ืืก ื•ื•ืขืจื˜ ื’ืขืจื•ืคืŸ ืœื•ื™ืคื˜ ืื™ืŸ ื“ื™ named_t ื“ืืžืขื™ืŸ.
  • ืจืึธืœืขืก โ€” ื•ื•ืึธืก ื“ื™ื ื˜ ื•ื•ื™ ืึท ืคึฟืึทืจืžื™ื˜ืœืขืจ ืฆื•ื•ื™ืฉืŸ ื“ืึธืžืขื™ื ืขืŸ ืื•ืŸ SE ื‘ืึทื ื™ืฆืขืจLinuxืจืึธืœืขืก ื‘ืึทืฉื˜ื™ืžืขืŸ ืฆื• ื•ื•ืขืœื›ืข ื“ืึธืžืขื™ื ืขืŸ ืึท ื‘ืึทื ื™ืฆืขืจ ืงืขืŸ ื’ืขื”ืขืจืŸ ืื•ืŸ ื•ื•ืึธืกืขืจืข ื˜ื™ืคึผืŸ ืึธื‘ื™ืขืงื˜ืŸ ื–ื™ื™ ืงืขื ืขืŸ ืฆื•ื˜ืจื™ื˜ืŸ. ื“ื™ ืึทืงืกืขืก ืงืึธื ื˜ืจืึธืœ ืžืขืงืึทื ื™ื–ื ืคืึทืจื”ื™ื˜ ื“ื™ ืกืึทืงืึธื ืข ืคื•ืŸ โ€‹โ€‹ืคึผืจื™ื•ื•ื™ืœืขื’ื™ืข ืขืกืงืึทืœืึทืฆื™ืข ืื ืคืืœืŸ. ืจืึธืœืขืก ื–ืขื ืขืŸ ืื™ื ื˜ืขื’ืจื™ืจื˜ ืื™ืŸ ื“ื™ ืจืึธืœืข-ื‘ืึทื–ื™ืจื˜ ืึทืงืกืขืก ืงืึธื ื˜ืจืึธืœ (RBAC) ื–ื™ื›ืขืจื”ื™ื™ื˜ ืžืึธื“ืขืœ ื’ืขื ื™ืฆื˜ ืื™ืŸ SE.Linux.
  • ื˜ื™ื™ืคึผืก - ื ื˜ื™ืคึผ ืขื ืคืึธืจืกืžืึทื ื˜ ืจืฉื™ืžื” ืึทื˜ืจื™ื‘ื™ื•ื˜ ื•ื•ืึธืก ืื™ื– ืึทืกื™ื™ื ื“ ืฆื• ืึท ื›ื™ื™ืคืขืฅ ืื•ืŸ ื“ื™ื˜ืขืจืžืึทื ื– ื•ื•ืขืจ ืงืขื ืขืŸ ืึทืงืกืขืก ืขืก. ืขื ืœืขืš ืฆื• ื“ื™ ืคืขืœื“ ื“ืขืคึฟื™ื ื™ืฆื™ืข, ืึทื—ื•ืฅ ืึทื– ืคืขืœื“ ืึทืคึผืœื™ื™ื– ืฆื• ืึท ืคึผืจืึธืฆืขืก, ืื•ืŸ ื˜ื™ืคึผ ืึทืคึผืœื™ื™ื– ืฆื• ืึทื‘ื“ื–ืฉืขืงืฅ ืึทื–ืึท ื•ื•ื™ ื“ื™ืจืขืงื˜ืขืจื™ื–, ื˜ืขืงืขืก, ืกืึทืงืึทืฅ, ืขื˜ืง.
  • ื˜ืขืžืขืก ืื•ืŸ ืึทื‘ื“ื–ืฉืขืงืฅ - ืคึผืจืึทืกืขืกืึทื– ื–ืขื ืขืŸ ืกืึทื‘ื“ื–ืฉืขืงืฅ ืื•ืŸ ืœื•ื™ืคืŸ ืื™ืŸ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืงืึธื ื˜ืขืงืกื˜ ืึธื“ืขืจ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคืขืœื“. ืึทืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ืจืขืกื•ืจืกืŸ: ื˜ืขืงืขืก, ื“ื™ื™ืจืขืงื˜ืขืจื™ื–, ืกืึทืงืึทืฅ, ืืื–"ื• ื•, ื–ืขื ืขืŸ ืึทื‘ื“ื–ืฉืขืงืฅ ื•ื•ืึธืก ื–ืขื ืขืŸ ืึทืกื™ื™ื ื“ ืึท ื–ื™ื›ืขืจ ื˜ื™ืคึผ, ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, ืึท ืคึผืจื™ื•ื•ืึทื˜ืงื™ื™ื˜ ืžื“ืจื’ื”.
  • SE ืคึผืึธืœื™ื˜ื™ืงืกLinux - ืฆื• ื‘ืึทืฉื™ืฆืŸ ื“ื™ SE ืกื™ืกื˜ืขืLinux ื ื™ืฆื˜ ื ืคืืจืฉื™ื™ื“ื ืงื™ื™ื˜ ืคื•ืŸ ืคืืœื™ืกื™ืก. SE ืคืืœื™ืกื™Linux ื“ืขืคื™ื ื™ืจื˜ ื‘ืึทื ื™ืฆืขืจ ืฆื•ื˜ืจื™ื˜ ืฆื• ืจืึธืœืขืก, ืจืึธืœืขืก ืฆื• ื“ืึธืžืขื™ื ืขืŸ, ืื•ืŸ ื“ืึธืžืขื™ื ืขืŸ ืฆื• ื˜ื™ืคึผืŸ. ืขืจืฉื˜ื ืก, ืึท ื‘ืึทื ื™ืฆืขืจ ืื™ื– ื‘ืืจืขื›ื˜ื™ื’ื˜ ืฆื• ืึท ืจืึธืœืข, ื“ืขืจื ืึธืš ืึท ืจืึธืœืข ืื™ื– ื‘ืืจืขื›ื˜ื™ื’ื˜ ืฆื• ืฆื•ื˜ืจื™ื˜ ื“ืึธืžืขื™ื ืขืŸ. ืฆื•ื ืกื•ืฃ, ืึท ื“ืึธืžืขื™ืŸ ืงืขืŸ ื”ืึธื‘ืŸ ืฆื•ื˜ืจื™ื˜ ื‘ืœื•ื™ื– ืฆื• ื–ื™ื›ืขืจืข ืึธื‘ื™ืขืงื˜ ื˜ื™ืคึผืŸ.

LSM ืื•ืŸ SE ืืจื›ื™ื˜ืขืงื˜ื•ืจLinux

ื˜ืจืึธืฅ ื“ืขื ื ืึธืžืขืŸ, ื–ืขื ืขืŸ LSMs ื ื™ืฉื˜ ื˜ืึทืงืข ืœืึธื•ื“ืึทื‘ืึทืœ ืžืึธื“ื•ืœืŸ. Linuxืื‘ืขืจ, ืคื•ื ืงื˜ ื•ื•ื™ SELinux, ืขืก ืื™ื– ื’ืœื™ื™ืš ืื™ื ื˜ืขื’ืจื™ืจื˜ ืื™ืŸ ื“ืขื ืงืขืจื ืขืœ. ื™ืขื“ืข ืขื ื“ืขืจื•ื ื’ ืฆื•ื LSM ืงื•ื•ืืœ ืงืื•ื“ ืคืืจืœืื ื’ื˜ ื ื ื™ื™ืข ืงืขืจื ืขืœ ืงืืžืคื™ืœืืฆื™ืข. ื“ื™ ืงืืจืขืกืคืื ื“ื™ืจื ื“ืข ืืคืฆื™ืข ืžื•ื– ื–ื™ื™ืŸ ืขื ื™ื™ื‘ืึทืœื“ ืื™ืŸ ื“ื™ ืงืขืจื ืขืœ ืกืขื˜ื™ื ื’ืก, ืื ื“ืขืจืฉ ื•ื•ืขื˜ ื“ืขืจ LSM ืงืื•ื“ ื ื™ืฉื˜ ื•ื•ืขืจืŸ ืืงื˜ื™ื•ื•ื™ืจื˜ ื ืืš'ืŸ ื‘ื•ื˜. ืื‘ืขืจ, ืืคื™ืœื• ืื™ืŸ ื“ืขื ืคืืœ, ืงืขืŸ ืขืก ื•ื•ืขืจืŸ ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืืŸ OS ื‘ื•ื˜ืœืื“ืขืจ ืืคืฆื™ืข.

ื–ื™ื›ืขืจื”ื™ื™ื˜ ืกื™ืกื˜ืขืžืขืŸ Linux
LSM ื˜ืฉืขืง ืึธื ืœื™ื™ื’ืŸ

LSM ืื™ื– ื™ืงื•ื•ื™ืคึผื˜ ืžื™ื˜ ื›ื•ืงืก ืื™ืŸ ื”ืึทืจืฅ ืงืขืจืŸ ืคืึทื ื’ืงืฉืึทื ื– ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืคึฟืึทืจ ื˜ืฉืขืงืก. ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ LSMs ืื™ื– ืึทื– ื–ื™ื™ ื–ืขื ืขืŸ ืกื˜ืึทืงื˜. ืื–ื•ื™, ื“ื™ ื ืึธืจืžืึทืœ ื˜ืฉืขืงืก ื–ืขื ืขืŸ ื ืึธืš ื“ื•ืจื›ื’ืขืงืึธื›ื˜, ืื•ืŸ ื™ืขื“ืขืจ ืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืœืกื ื‘ืœื•ื™ื– ืžื•ืกื™ืฃ ื ืึธืš ืงืึธื ื˜ืจืึธืœืก ืื•ืŸ ืงืึธื ื˜ืจืึธืœืก. ื“ืืก ืžื™ื™ื ื˜ ืื– ืžืขืŸ ืงืขืŸ ื ื™ืฉื˜ ืฆื•ืจื™ืงืฆื™ืขืŸ ื“ืขื ืื™ืกื•ืจ. ื“ืึธืก ืื™ื– ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ืคื™ื’ื•ืจ; ืื•ื™ื‘ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืจื•ื˜ื™ืŸ DAC ื˜ืฉืขืงืก ืื™ื– ืึท ื“ื•ืจื›ืคืึทืœ, ื“ืขืจ ืขื ื™ืŸ ื•ื•ืขื˜ ื ื™ืฉื˜ ืืคื™ืœื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื“ื™ LSM ื›ื•ืงืก.

SELinux ื”ืื˜ ืื ื’ืขื ื•ืžืขืŸ ื“ื™ Flask ื–ื™ื›ืขืจื”ื™ื™ื˜ ืืจื›ื™ื˜ืขืงื˜ื•ืจ ืคื•ืŸ ื“ื™ Fluke ืคืืจืฉื•ื ื’ ืืคืขืจื™ืจืŸ ืกื™ืกื˜ืขื, ืกืคืขืฆื™ืขืœ ื“ืขื ืคืจื™ื ืฆื™ืค ืคื•ืŸ ืงืœืขื ืกื˜ืข ืคืจื™ื•ื•ื™ืœืขื’ื™ืข. ื“ื™ ืขืกืขื ืฅ ืคื•ืŸ ื“ืขื ืงืื ืฆืขืคื˜, ื•ื•ื™ ื“ืขืจ ื ืืžืขืŸ ื–ืื’ื˜, ืื™ื– ืฆื• ื’ืขื‘ืŸ ื ื‘ืื ื™ืฆืขืจ ืื“ืขืจ ืคืจืืฆืขืก ื ืืจ ื“ื™ ืจืขื›ื˜ืŸ ื•ื•ืืก ื–ืขื ืขืŸ ื ื•ื™ื˜ื™ื’ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ื“ื™ ื’ืขื•ื•ืื•ื ื˜ืฉืข ืืงืฆื™ืข. ื“ืขืจ ืคืจื™ื ืฆื™ืค ื•ื•ืขืจื˜ ืื™ืžืคืœืขืžืขื ื˜ื™ืจื˜ ื“ื•ืจืš ืคืืจืคืœื™ื›ื˜ืขื˜ืข ืฆื•ื˜ืจื™ื˜ ื˜ื™ื™ืคื™ื ื’, ืื–ื•ื™ ืงืื ื˜ืจืืœื™ืจื ื“ื™ื’ ืฆื•ื˜ืจื™ื˜ ืจืขื›ื˜ืŸ ืื™ืŸ SE.Linux ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื“ืขื ื“ืึธืžืขื™ืŸ => ื˜ื™ืคึผ ืžืึธื“ืขืœ.

ื“ืื ืง ื“ืขื ื’ืขืฆื•ื•ืื•ื ื’ืขื ืขื ื˜ื™ื™ืคืŸ ืคื•ืŸ access SELinux ื”ืื˜ ืคื™ืœ ืžืขืจ ื‘ืึทื“ื™ื™ื˜ื ื“ื™ืงืข ืึทืงืกืขืก ืงืึธื ื˜ืจืึธืœ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ื•ื•ื™ ื“ื™ ื˜ืจืึทื“ื™ืฆื™ืึธื ืขืœืข DAC ืžืึธื“ืขืœ ื’ืขื ื™ืฆื˜ ืื™ืŸ ื™ื•ื ื™ืงืก ืึธืคึผืขืจื™ืจืŸ ืกื™ืกื˜ืขื.Linuxืœืžืฉืœ, ืื™ืจ ืงืขื ื˜ ื‘ืื’ืจืขื ืขืฆืŸ ื“ืขื ื ืขืฅ ืคึผืึธืจื˜ ื ื•ืžืขืจ ืื•ื™ืฃ ื•ื•ืขืœื›ืŸ ื“ืขืจ FTP ืกืขืจื•ื•ืขืจ ื•ื•ืขื˜ ื”ืขืจืŸ, ื“ืขืจืœื•ื™ื‘ื ื“ื™ืง ืฉืจื™ื™ื‘ืŸ ืื•ืŸ ืžืึธื“ื™ืคื™ืฆื™ืจืŸ ื˜ืขืงืขืก ืื™ืŸ ืึท ืกืคึผืขืฆื™ืคึฟื™ืฉืŸ ื˜ืขืงืข, ืึธื‘ืขืจ ื ื™ืฉื˜ ืื•ื™ืกืžืขืงืŸ ื–ื™ื™.

ื”ื•ื™ืคึผื˜ ืงืึธืžืคึผืึธื ืขื ื˜ืŸ ืคื•ืŸ SELinux ื–ืขื ืขืŸ ื•ื•ื™ ืคืืœื’ื ื“:

  • ืคึผืึธืœื™ื˜ื™ืง ืขื ืคืึธืจืกืžืึทื ื˜ ืกืขืจื•ื•ื™ืจืขืจ - ื“ื™ ื”ื•ื™ืคึผื˜ ืžืขืงืึทื ื™ื–ืึทื ืคึฟืึทืจ ืึธืจื’ืึทื ื™ื™ื–ื™ื ื’ ืึทืงืกืขืก ืงืึธื ื˜ืจืึธืœ.
  • ืกื™ืกื˜ืขื ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคึผืึธืœื™ื˜ื™ืง ื“ืึทื˜ืึทื‘ื™ื™ืก.
  • ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ื“ื™ LSM ื’ืขืฉืขืขื ื™ืฉ ื™ื ื˜ืขืจืกืขืคึผื˜ืึธืจ.
  • Selinuxfs โ€” ื ืคึผืกืขื•ื•ื“ืึธ-FS, ื“ื™ ื–ืขืœื‘ืข ื•ื•ื™ /proc ืื•ืŸ ืžืึธื ื˜ื™ืจื˜ ืื™ืŸ /sys/fs/selinux. ื“ื™ื ืึทืžื™ืฉ ื‘ืึทืคืขืœืงืขืจื˜ ื“ื•ืจืš ื“ื™ ืงืขืจื ืขืœ. Linux ื‘ืขืช ืื•ื™ืกืคื™ืจื•ื ื’ ืื•ืŸ ืื ื˜ื”ืืœื˜ ื˜ืขืงืขืก ืžื™ื˜ ืื™ื ืคืืจืžืืฆื™ืข ื•ื•ืขื’ืŸ ื“ืขื SE ืกื˜ืื˜ื•ืกLinux.
  • ืึทืงืกืขืก ื•ื•ืขืงื˜ืึธืจ ืงืึทืฉ - ืึทืŸ ืึทื’ื–ื™ืœื™ืขืจื™ ืžืขืงืึทื ื™ื–ืึทื ืคึฟืึทืจ ื™ื ืงืจื™ืกื™ื ื’ ืคึผืจืึธื•ื“ืึทืงื˜ื™ื•ื•ืึทื˜ื™.

ื–ื™ื›ืขืจื”ื™ื™ื˜ ืกื™ืกื˜ืขืžืขืŸ Linux
SE ืึธืคึผืขืจืึทืฆื™ืข ืกื›ืขืžืขLinux

ืขืก ืึทืœืข ืึทืจื‘ืขื˜ ื•ื•ื™ ื“ืึธืก.

  1. ื ื’ืขื•ื•ื™ืกืข ื˜ืขืžืข, ืื™ืŸ SE ื˜ืขืจืžื™ื ืขืŸLinux, ืคื™ืจื˜ ืื•ื™ืก ื“ื™ ืขืจืœื•ื™ื‘ื˜ืข ืืงืฆื™ืข ืื•ื™ืฃ ื“ืขื ืื‘ื™ืขืงื˜ ื ืืš ื“ื™ DAC ื•ื•ืขืจื™ืคื™ืงืืฆื™ืข, ื•ื•ื™ ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื‘ื™ืœื“ ืื•ื™ื‘ืŸ. ื“ื™ ืคืืจืœืื ื’ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ื“ื™ ืืคืขืจืืฆื™ืข ื•ื•ืขืจื˜ ืืจื™ื‘ืขืจื’ืขื’ืขื‘ืŸ ืฆื•ื LSM ื’ืขืฉืขืขื ื™ืฉ ืื™ื ื˜ืขืจืฆืขืคื˜ืืจ.
  2. ืคื•ืŸ ื“ืืจื˜, ื•ื•ืขืจื˜ ื“ื™ ืคืืจืœืื ื’, ืฆื•ื–ืืžืขืŸ ืžื™ื˜ืŸ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืงืื ื˜ืขืงืกื˜ ืคื•ืŸ ื“ืขื ืกื•ื‘ื™ืขืงื˜ ืื•ืŸ ืื‘ื™ืขืงื˜, ืืจื™ื‘ืขืจื’ืขื’ืขื‘ืŸ ืฆื•ื SE ืžืื“ื•ืœ.Linux ืึทื‘ืกื˜ืจืึทืงืฆื™ืข ืื•ืŸ ื”ื•ืง ืœืึธื’ื™ืง, ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงืฆื™ืข ืžื™ื˜ LSM.
  3. ื“ื™ ื‘ืึทืฉืœื•ืก-ืžืื›ื ื“ื™ืงืข ืื•ื™ื˜ืึธืจื™ื˜ืขื˜ ื•ื•ืขื’ืŸ ืึท ืกื•ื‘ื™ืขืงื˜'ืก ืฆื•ื˜ืจื™ื˜ ืฆื• ืึทืŸ ืึธื‘ื™ืขืงื˜ ืื™ื– ื“ืขืจ ืคึผืึธืœื™ื˜ื™ืง ืขื ืคืึธืจืกืžืึทื ื˜ ืกืขืจื•ื•ืขืจ, ืื•ืŸ ืขืก ื‘ืึทืงื•ืžื˜ ื“ืึทื˜ืŸ ืคื•ืŸ ื“ื™ SE.Linux ืึทื ื”ืœ.
  4. ืฆื• ืžืึทื›ืŸ ื“ื™ืกื™ื–ืฉืึทื ื– ื•ื•ืขื’ืŸ ืึทืงืกืขืก ืึธื“ืขืจ ืึธืคึผืœื™ื™ืงืขื ื•ื ื’, ืคึผืึธืœื™ื˜ื™ืง ืขื ืคืึธืจืกืžืึทื ื˜ ืกืขืจื•ื•ื™ืจืขืจ ื˜ื•ืจื ืก ืฆื• ื“ื™ ืึทืงืกืขืก ื•ื•ืขืงื˜ืึธืจ ืงืึทืฉ (AVC) ืงืึทื˜ืฉื™ื ื’ ืกืึทื‘ืกื™ืกื˜ืึทื ืคึฟืึทืจ ื“ื™ ืžืขืจืกื˜ ื’ืขื•ื•ื™ื™ื ื˜ ื›ึผืœืœื™ื.
  5. ืื•ื™ื‘ ืึท ืœื™ื™ื–ื•ื ื’ ืคึฟืึทืจ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื”ืขืจืฉืŸ ืื™ื– ื ื™ืฉื˜ ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ื“ื™ ืงืึทืฉ, ื“ื™ ื‘ืขื˜ืŸ ืื™ื– ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ ืฆื• ื“ื™ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคึผืึธืœื™ื˜ื™ืง ื“ืึทื˜ืึทื‘ื™ื™ืก.
  6. ื“ืขืจ ื–ื•ื›ืŸ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื•ืŸ AVC ืื™ื– ืื•ืžื’ืขืงืขืจื˜ ืฆื• ื“ื™ ืคึผืึธืœื™ื˜ื™ืง ืขื ืคืึธืจืกืžืึทื ื˜ ืกืขืจื•ื•ื™ืจืขืจ.
  7. ืื•ื™ื‘ ื“ื™ ื’ืขืคื•ื ืขืŸ ืคึผืึธืœื™ื˜ื™ืง ืฉื•ื•ืขื‘ืขืœืขืš ื“ื™ ื’ืขื‘ืขื˜ืŸ ืงืึทืžืฃ, ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืื™ื– ืขืจืœื•ื™ื‘ื˜. ืึทื ื“ืขืจืฉ, ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืื™ื– ืคึผืจืึธื•ื›ื™ื‘ืึทื˜ืึทื“.

ืคืึทืจื•ื•ืึทืœื˜ืŸ SE ืกืขื˜ื˜ื™ื ื’ืกLinux

SELinux ืึทืจื‘ืขื˜ ืื™ืŸ ืื™ื™ื ืขื ืคึฟื•ืŸ ื“ืจืฒึท ืžืึธื“ืขืก:

  • ืขื ืคืึธืจืกื™ื ื’ - ืฉื˜ืจืขื ื’ ืึทื“ื›ื™ืจ ืฆื• ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคึผืึทืœืึทืกื™ื–.
  • ืคึผืขืจืžื™ืกื™ื•ื• - ื”ื™ืœืขืœ ืคื•ืŸ ืจื™ืกื˜ืจื™ืงืฉืึทื ื– ืื™ื– ืขืจืœื•ื™ื‘ื˜; ืึท ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื˜ืึธืŸ ืื™ื– ื’ืขืžืื›ื˜ ืื™ืŸ ื“ืขื ื–ืฉื•ืจื ืึทืœ.
  • ืคืึทืจืงืจื™ืคึผืœื˜ - ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคึผืึทืœืึทืกื™ื– ื–ืขื ืขืŸ ื ื™ืฉื˜ ืื™ืŸ ื•ื•ื™ืจืงื•ื ื’.

ื–ืขื” ืื™ืŸ ื•ื•ืึธืกืขืจ ืžืึธื“ืข SE ืื™ื–Linux ืื™ืจ ืงืขื ื˜ ืขืก ื˜ืึธืŸ ืžื™ื˜ืŸ ืคืืœื’ื ื“ืŸ ื‘ืึทืคึฟืขืœ.

[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 ืื™ื– ืื– ื•ื•ืขืŸ ื“ื™ ืืคืขืจื™ืจืŸ ืกื™ืกื˜ืขื ื‘ื•ื˜, ื“ื™ SE ืžืึธื“ืขLinux ื•ื•ืขื˜ ื•ื•ืขืจืŸ ื’ืขืฉื˜ืขืœื˜ ืœื•ื™ื˜ืŸ ื•ื•ืขืจื˜ ืคื•ืŸ ื“ืขื SELINUX ืงืื ืคื™ื’ื•ืจืืฆื™ืข ื˜ืขืงืข ืคืืจืืžืขื˜ืขืจ. ื“ืขืจืฆื•, ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ืขืจ "enforcering <=> disabled" ืกืขื˜ื™ื ื’ ื ืขืžืขืŸ ืงืจืืคื˜ ื ืืจ ื ืื›ื“ืขื ื•ื•ืืก ืžืขืŸ ื”ืื˜ ืจืขื“ืืงื˜ื™ืจื˜ ื“ืขื /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

ืฆื• ื–ืขืŸ SE ืึทื˜ืจื™ื‘ื™ื•ื˜ืŸLinux ืขื˜ืœืขื›ืข ื ืึธืจืžืึทืœืข ื™ื•ื˜ื™ืœืึทื˜ื™ื– ื ื•ืฆืŸ ื“ืขื -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 - ืงืึทื˜ืขื’ืึธืจื™ืข.

ื˜ืฉืึทื ื’ื™ื ื’ ืึทืงืกืขืก ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ

ื ื™ืฆืŸ ืกืขืžืึธื“ื•ืœืข ืฆื• ืœืึธื“ืŸ SE ืžืึธื“ื•ืœืŸLinux, ืฆื•ืœื™ื™ื’ืŸ ืื•ืŸ ืึทืจืึธืคึผื ืขืžืขืŸ ื–ื™ื™.

[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 - ัƒะดะฐะปะธั‚ัŒ ะผะพะดัƒะปัŒ

ืขืจืฉื˜ืขืจ ืžืึทื ืฉืึทืคึฟื˜ ืœืึธื’ื™ืŸ ืœืึธื’ื™ืŸ ืคึฟืึทืจื‘ื™ื ื“ื˜ ื“ืขื SE ื‘ืึทื ื™ืฆืขืจLinux ืžื™ื˜ืŸ ืืคืขืจื™ืจืŸ ืกื™ืกื˜ืขื ื‘ืื ื™ืฆืขืจ, ื•ื•ื™ื™ื–ื˜ ื“ื™ ืฆื•ื•ื™ื™ื˜ืข ื“ื™ ืœื™ืกื˜ืข. ืฆื•ื ืกื•ืฃ, ื“ืขืจ ืœืขืฆื˜ืขืจ ื‘ืืคืขืœ ืžื™ื˜ืŸ -r ืกื•ื•ื™ื˜ืฉ ื ืขืžื˜ ืื•ื•ืขืง ื“ื™ SE ื‘ืื ื™ืฆืขืจ ืžืขืคึผื™ื ื’Linux ืฆื• ืึธืคึผืขืจื™ืจืŸ ืกื™ืกื˜ืขื ืึทืงืึทื•ื ื˜ืก. ื“ื™ ืกื™ื ื˜ืึทืงืก ืคื•ืŸ 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

ืงืึธืœืขืงื˜ื™ื•ื• ืกืขืžืึทื ืึทื’ืข ื‘ืึทื ื™ืฆืขืจ ื’ืขื ื™ืฆื˜ ืฆื• ืคื™ืจืŸ ืžืึทืคึผื™ื ื’ืก ืฆื•ื•ื™ืฉืŸ ื‘ืึทื ื™ืฆืขืจ ืื•ืŸ SE ืจืึธืœืขืกLinux.

[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

ื‘ืึทืคึฟืขืœืŸ ืคึผืึทืจืึทืžืขื˜ืขืจืก:

  • - ืึท ืœื™ื™ื’ืŸ ืžื ื”ื’ ืจืึธืœืข ืžืึทืคึผื™ื ื’ ืคึผืึธื–ื™ืฆื™ืข;
  • -ืœ ืจืฉื™ืžื” ืคื•ืŸ ื•ื•ืึธืก ืจื™ื›ื˜ืŸ ื ื™ืฆืขืจืก ืื•ืŸ ืจืึธืœืขืก;
  • -ื“ ื•ื™ืกืžืขืงืŸ ื‘ืึทื ื™ืฆืขืจ ืจืึธืœืข ืžืึทืคึผื™ื ื’ ืคึผืึธื–ื™ืฆื™ืข;
  • -ืจ ืจืฉื™ืžื” ืคื•ืŸ ืจืึธืœืขืก ืึทื˜ืึทื˜ืฉื˜ ืฆื• ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ;

ื˜ืขืงืขืก, ืคึผืึธืจืฅ ืื•ืŸ ื‘ื•ืœื™ืึทืŸ ื•ื•ืึทืœื•ืขืก

ื™ืขื“ืขืจ SE ืžืึธื“ื•ืœLinux ื’ื™ื˜ ื ืกืขื˜ ืคื•ืŸ ื˜ืขืงืข-ืžืืจืงื™ืจื•ื ื’-ืจืขื’ื•ืœืืฆื™ืขืก, ืื‘ืขืจ ืื™ืจ ืงืขื ื˜ ืื•ื™ืš ืฆื•ืœื™ื™ื’ืŸ ืื™ื™ืขืจืข ืื™ื™ื’ืขื ืข ืจืขื’ื•ืœืืฆื™ืขืก ืื•ื™ื‘ ื ื•ื™ื˜ื™ื’. ืœืžืฉืœ, ืžื™ืจ ื•ื•ื™ืœืŸ ื’ืขื‘ืŸ ื“ืขื ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ ืฆื•ื˜ืจื™ื˜-ืจืขื›ื˜ืŸ ืฆื•ื /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

ื ื‘ืึทื˜ื™ื™ื˜ื™ืงืข ืฆืึธืœ ืคื•ืŸ SE ืžืึธื“ื•ืœืŸLinux ื”ืื‘ืŸ ืคืืจืืžืขื˜ืขืจืก ื•ื•ืืก ืงืขื ืขืŸ ื ืขืžืขืŸ ื‘ื•ืœื™ืึทืŸ ื•ื•ืขืจื˜ืŸ. ื“ื™ ืคื•ืœืข ืœื™ืกื˜ืข ืคื•ืŸ โ€‹โ€‹ืื–ืขืœื›ืข ืคืืจืืžืขื˜ืขืจืก ืงืขืŸ ืžืขืŸ ื–ืขืŸ ื ื™ืฆื ื“ื™ืง 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, ืฉื˜ืขืœืŸ ื˜ืขืงืข ืคึผืขืจืžื™ืฉืึทื ื–, ืื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ ืคืขืœื ื“ื™ืง ืคึผื™ื˜ื”ืึธืŸ ืžืึทื“ื–ืฉื•ืœื– ืคึฟื•ืŸ ืคึผื™ืคึผ. ืึทืœืฅ ืื™ื– ื’ืจื™ื™ื˜, ืžื™ืจ ืงืึทื˜ืขืจ ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ 500 ืื™ื ืขืจืœืขื›ืขืจ ืกืขืจื•ื•ื™ืจืขืจ ื˜ืขื•ืช.

ื–ื™ื›ืขืจื”ื™ื™ื˜ ืกื™ืกื˜ืขืžืขืŸ Linux

ืžื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ ื“ื™ ื˜ื™ืคึผื™ืฉ ืกืึทืกืคึผืขืงืฅ, ื˜ืฉืขืง /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.

ื“ืึธ ื–ืขื ืขืŸ ื“ื™ ืžืขืจื”ื™ื™ื˜ ืคื•ืŸ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจืŸ Linux ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื ืฉื˜ืืจืงืข ืคืืจื–ื•ืš ืฆื• ืœื•ื™ืคืŸ setencorce 0, ืื•ืŸ ื“ืืก ืื™ื– ื“ืขืจ ืกื•ืฃ ื“ืขืจืคื•ืŸ. ืขืจืœืขืš ื’ืขื–ืื’ื˜, ื“ืืก ืื™ื– ื•ื•ืืก ืื™ืš ื”ืื‘ ื’ืขื˜ืืŸ ื“ืืก ืขืจืฉื˜ืข ืžืืœ. ื“ืืก ืื™ื– ื–ื™ื›ืขืจ ื ืœื™ื™ื–ื•ื ื’, ืื‘ืขืจ ื•ื•ื™ื™ื˜ ืคื•ืŸ ื“ื™ ื‘ืขืกื˜ืข.

ื˜ืจืึธืฅ ื“ื™ ื’ืจื•ื™ืกืงื™ื™ื˜ ืคื•ืŸ ื“ื™ SE ื“ื™ื–ื™ื™ื ืกLinux ืขืก ืงืขืŸ ื–ื™ื™ืŸ ื‘ืึทื ื™ืฆืขืจ-ืคึฟืจืฒึทื ื“ืœืขืš. ืคืฉื•ื˜ ืื™ื ืกื˜ืึทืœื™ืจืŸ ื“ืขื setroubleshoot ืคึผืขืงืœ ืื•ืŸ ื–ืขืŸ ื“ืขื ืกื™ืกื˜ืขื ืœืึธื’.

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

ื‘ื™ื˜ืข ื˜ืึธืŸ ืึทื– ื“ื™ ืึทื•ื“ื™ื˜ ืกืขืจื•ื•ื™ืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืจื™ืกื˜ืึทืจื˜ื™ื“ ื“ืขื ื•ื•ืขื’, ืื•ืŸ ื ื™ืฉื˜ ื ื™ืฆืŸ ืกื™ืกื˜ืขืžืงื˜ืœ, ื˜ืจืึธืฅ ื“ืขื ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืกื™ืกื˜ืขืž ืื™ืŸ ื“ื™ ืึทืก. ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื ืงืœืึธืฅ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื ื’ืขื•ื•ื™ื–ืŸ ื ื™ื˜ ื‘ืœื•ื™ื– ื“ื™ ืคืึทืงื˜ ืคื•ืŸ ื‘ืœืึทืงื™ื ื’, ืึธื‘ืขืจ ืื•ื™ืš ื“ื™ ืกื™ื‘ื” ืื•ืŸ ื•ื•ืขื’ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ืขื ืคืึทืจื‘ืึธื˜.

ื–ื™ื›ืขืจื”ื™ื™ื˜ ืกื™ืกื˜ืขืžืขืŸ Linux

ืžื™ืจ ื•ื™ืกืคื™ืจืŸ ื“ื™ ืงืึทืžืึทื ื“ื–:

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

ืžื™ืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึทืงืกืขืก ืฆื• ื“ื™ pgadmin4-ื•ื•ืขื‘ ื‘ืœืึทื˜, ืึทืœืฅ ืึทืจื‘ืขื˜.

ื–ื™ื›ืขืจื”ื™ื™ื˜ ืกื™ืกื˜ืขืžืขืŸ Linux

ื–ื™ื›ืขืจื”ื™ื™ื˜ ืกื™ืกื˜ืขืžืขืŸ Linux

ืžืงื•ืจ: www.habr.com

ืงื•ื™ืคืŸ ืคืึทืจืœืึธื–ืœืขืš ื”ืึธืกื˜ื™ื ื’ ืคึฟืึทืจ ื–ื™ื™ื˜ืœืขืš ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก ๐Ÿ”ฅ ืงื•ื™ืคื˜ ืคืึทืจืœืขืกืœืขื›ืข ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ื”ืึธืกื˜ื™ื ื’ ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก | ProHoster