ื ืึธื ื”ื™ื™ื‘ืขืจ'ืก ื’ื™ื™ื“ ืฆื• SELinux

ื ืึธื ื”ื™ื™ื‘ืขืจ'ืก ื’ื™ื™ื“ ืฆื• SELinux

ืื™ื‘ืขืจื–ืขืฆื•ื ื’ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืฆื•ื’ืขื’ืจื™ื™ื˜ ืคึฟืึทืจ ืงื•ืจืก ืกื˜ื•ื“ืขื ื˜ืŸ "ื–ื™ื›ืขืจืงื™ื™ื˜ Linuxยป

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

ืื™ืŸ ื“ืจื•ื-ืžื–ืจื—Linux ืขืก ื–ืขื ืขืŸ ื“ื ื“ืจื™ื™ ืžืึธื“ืขืก:

  1. ืขื ืคืึธืจืกื™ื ื’ - ืฆื•ื˜ืจื™ื˜ ืึธืคึผืœื™ื™ืงืขื ื•ื ื’ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืคึผืึธืœื™ื˜ื™ืง ื›ึผืœืœื™ื.
  2. ืคึผืขืจืžื™ืกื™ื•ื• - ื”ืึทืœื˜ืŸ ืึท ืงืœืึธืฅ ืคื•ืŸ ืึทืงืฉืึทื ื– ื•ื•ืึธืก ืึธื ืจื™ืจืŸ ื“ื™ ืคึผืึธืœื™ื˜ื™ืง, ื•ื•ืึธืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืคึผืจืึธื•ื›ื™ื‘ืึทื˜ืึทื“ ืื™ืŸ ื“ื™ ืขื ืคืึธืจืกื™ื ื’ ืžืึธื“ืข.
  3. Disabled โ€” ืคื•ืœืฉื˜ืขื ื“ื™ื’ืข ืคืืจืฉืœื™ืกื•ื ื’ ืคื•ืŸ SELinux.

ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ื“ื™ ืกืขื˜ื˜ื™ื ื’ืก ื–ืขื ืขืŸ ืื™ืŸ /etc/selinux/config

ื˜ื•ื™ืฉืŸ SE ืžืึธื“ืขืกLinux

ืฆื• ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ืงืจืึทื ื˜ ืžืึธื“ืข, ืœื•ื™ืคืŸ

$ getenforce

ืฆื• ื˜ื•ื™ืฉืŸ ื“ื™ ืžืึธื“ืข ืฆื• ืคึผืขืจืžื™ืกื™ื•ื•, ืœื•ื™ืคืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ

$ setenforce 0

ืึธื“ืขืจ, ืฆื• ื˜ื•ื™ืฉืŸ ืžืึธื“ืข ืคื•ืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืื•ื™ืฃ ืขื ืคืึธืจืกื™ื ื’, ื•ื•ื™ืคึผืึธืœื ื™ื˜ืข

$ setenforce 1

ืื•ื™ื‘ ืื™ืจ ื“ืึทืจืคึฟื˜ ื’ืึธืจ ื“ื™ืึทืงื˜ื™ื•ื•ื™ืจืŸ SELinux, ื“ืขืžืึธืœื˜ ืงืขืŸ ื“ืึธืก ื ืึธืจ ื’ืขื˜ืึธืŸ ื•ื•ืขืจืŸ ื“ื•ืจืš ื“ื™ ืงืึธื ืคื™ื’ื•ืจืึทืฆื™ืข ื˜ืขืงืข

$ vi /etc/selinux/config

ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ, ื˜ื•ื™ืฉืŸ ื“ื™ SELINUX ืคึผืึทืจืึทืžืขื˜ืขืจ ื•ื•ื™ ื’ื™ื™ื˜:

SELINUX=disabled

ืื•ื™ืคืฉื˜ืขืœืŸ SELinux

ื™ืขื“ืข ื˜ืขืงืข ืื•ืŸ ืคึผืจืึธืฆืขืก ืื™ื– ื’ืขืฆื™ื™ื›ื ื˜ ืžื™ื˜ ืึทืŸ SE ืงืึธื ื˜ืขืงืกื˜Linux, ื•ื•ืึธืก ื›ึผื•ืœืœ ื ืึธืš ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ื™ ื‘ืึทื ื™ืฆืขืจ, ืจืึธืœืข, ื˜ื™ืคึผ, ืืึทื–"ื•ื•. ืื•ื™ื‘ ืื™ืจ ืึทืงื˜ื™ื•ื•ื™ื–ื™ืจื˜ SE ืฆื•ื ืขืจืฉื˜ืŸ ืžืึธืœLinux, ื“ืขืžืึธืœื˜ ื“ืึทืจืคึฟืกื˜ื• ืขืจืฉื˜ ืงืึธื ืคึฟื™ื’ื•ืจื™ืจืŸ ื“ืขื ืงืึธื ื˜ืขืงืกื˜ ืื•ืŸ ื“ื™ ืœื™ื™ื‘ืึทืœืก. ื“ืขืจ ืคึผืจืึธืฆืขืก ืคึฟื•ืŸ ืฆื•ื˜ื™ื™ืœืŸ ืœื™ื™ื‘ืึทืœืก ืื•ืŸ ืงืึธื ื˜ืขืงืกื˜ ืื™ื– ื‘ืึทืงืึทื ื˜ ื•ื•ื™ ืœื™ื™ื‘ืึทืœื™ื ื’. ื›ึผื“ื™ ืึธื ืฆื•ื”ื™ื™ื‘ืŸ ืœื™ื™ื‘ืึทืœื™ื ื’, ื˜ื•ื™ืฉื˜ ื“ืขื ืžืึธื“ื•ืก ืื™ืŸ ื“ืขืจ ืงืึธื ืคึฟื™ื’ื•ืจืึทืฆื™ืข ื˜ืขืงืข ืฆื• ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ.

$ vi /etc/selinux/config
SELINUX=permissive

ื ืึธืš ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ืขื ืžืึธื“ืข ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ, ืฉืึทืคึฟืŸ ืึท ืœื™ื™ื“ื™ืง ืคืึทืจื‘ืึธืจื’ืŸ ื˜ืขืงืข ืื™ืŸ ื“ืขืจ ื•ื•ืึธืจืฆืœ ืžื™ื˜ ื“ืขื ื ืึธืžืขืŸ autorelabel

$ touch /.autorelabel

ืื•ืŸ ืจื™ืกื˜ืึทืจื˜ ื“ื™ ืงืึธืžืคึผื™ื•ื˜ืขืจ

$ init 6

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

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

$ setenforce 1

ืื™ืฆื˜ ื”ืึธื˜ ืื™ืจ ื”ืฆืœื—ื” ืึทืงื˜ื™ื•ื•ื™ื–ื™ืจื˜ SELinux ืื•ื™ืฃ ื“ื™ื™ืŸ ืงืึธืžืคึผื™ื•ื˜ืขืจ.

ืžืึธื ื™ื˜ืึธืจื™ื ื’ ื“ื™ ืœืึธื’ืก

ืื™ืจ ื”ืึธื˜ ืžืขื’ืœืขืš ื’ืขื˜ืจืึธืคืŸ ืขื˜ืœืขื›ืข ื˜ืขื•ืชื™ื ื‘ืขืชืŸ ืœื™ื™ื‘ืึทืœื™ื ื’ ืึธื“ืขืจ ื‘ืฉืขืช ื“ื™ ืกื™ืกื˜ืขื ืื™ื– ื’ืขืœืึธืคืŸ. ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืฆื™ ืื™ื™ืขืจ SE ืึทืจื‘ืขื˜.Linux ืื™ืจ ื“ืึทืจืคึฟื˜ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืœืึธื’ืก ืฆื• ื–ืขืŸ ืฆื™ ืขืก ืื™ื– ืจื™ื›ื˜ื™ืง ืื•ืŸ ืฆื™ ืขืก ื‘ืœืึธืงื™ืจื˜ ืฆื•ื˜ืจื™ื˜ ืฆื• ืงื™ื™ืŸ ืคึผืึธืจื˜ืŸ, ืึทืคึผืœื™ืงืึทืฆื™ืขืก, ืืึท"ื•ื•. SE ืœืึธื’Linux ืื™ื– ืื™ืŸ /var/log/audit/audit.log, ืึธื‘ืขืจ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืœื™ื™ืขื ืขืŸ ื“ื™ ื’ืื ืฆืข ื–ืึทืš ืฆื• ื’ืขืคึฟื™ื ืขืŸ ืขืจืจืึธืจืก. ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ audit2why ื ื•ืฆืŸ ืฆื• ื’ืขืคึฟื™ื ืขืŸ ืขืจืจืึธืจืก. ืœื•ื™ืคืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ:

$ audit2why < /var/log/audit/audit.log

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

ืื•ื™ืคืฉื˜ืขืœืŸ SE ืคืืœื™ืกื™Linux

SE ืคึผืึธืœื™ื˜ื™ืงLinux โ€” ืื™ื– ืึท ืกื›ื•ื ื›ึผืœืœื™ื ื•ื•ืึธืก ืคื™ืจืŸ ื“ืขื SE ื–ื™ื›ืขืจื”ื™ื™ื˜ ืžืขั…ะฐะฝั–ื–ืLinuxื ืคืืœื™ืกื™ ื“ืขืคื™ื ื™ืจื˜ ื ืกื›ื•ื ืจืขื’ื•ืœืืฆื™ืขืก ืคืืจ ื ืกืคืขืฆื™ืคื™ืฉืข ืกื‘ื™ื‘ื”. ื™ืขืฆื˜ ื•ื•ืขืœืŸ ืžื™ืจ ืœืขืจื ืขืŸ ื•ื•ื™ ืื–ื•ื™ ืฆื• ืงืื ืคื™ื’ื•ืจื™ืจืŸ ืคืืœื™ืกื™ืก ืฆื• ืขืจืœื•ื™ื‘ืŸ ืฆื•ื˜ืจื™ื˜ ืฆื• ื‘ืื’ืจืขื ืขืฆื˜ืข ืกืขืจื•ื•ื™ืกืขืก.

1. ืœืึทื“ื–ืฉื™ืงืึทืœ ื•ื•ืึทืœื•ืขืก (ืกื•ื•ื™ื˜ืฉื™ื–)

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

ื‘ื™ื™ึทืฉืคึผื™ืœ
ืœืึธืžื™ืจ ื–ืึธื’ืŸ ืžื™ืจ ื•ื•ื™ืœืŸ ื˜ื™ื™ืœืŸ ืึท ื‘ืึทื ื™ืฆืขืจ'ืก ื”ื™ื™ื ื“ื™ืจืขืงื˜ืึธืจื™ ื“ื•ืจืš FTP ืคึฟืึทืจ ืœื™ื™ืขื ืขืŸ ืื•ืŸ ืฉืจื™ื™ื‘ืŸ ืึทืงืกืขืก, ืื•ืŸ ืžื™ืจ ื”ืึธื‘ืŸ ืขืก ืฉื•ื™ืŸ ื’ืขื˜ื™ื™ืœื˜, ืึธื‘ืขืจ ื•ื•ืขืŸ ืžื™ืจ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืึทืงืกืขืก ืขืก, ื–ืขืŸ ืžื™ืจ ื’ืึธืจื ื™ืฉื˜. ื“ืึธืก ืื™ื– ื•ื•ื™ื™ึทืœ ื“ื™ SE ืคึผืึธืœื™ื˜ื™ืงLinux ืคืึทืจื”ื™ื˜ ื“ืขื FTP ืกืขืจื•ื•ืขืจ ืคื•ืŸ ืœื™ื™ืขื ืขืŸ ืื•ืŸ ืฉืจื™ื™ื‘ืŸ ืฆื• ื“ืขื ื‘ืึทื ื™ืฆืขืจ'ืก ื”ื™ื™ื ื“ื™ืจืขืงื˜ืึธืจื™. ืžื™ืจ ื“ืึทืจืคืŸ ืขื ื“ืขืจืŸ ื“ื™ ืคึผืึธืœื™ื˜ื™ืง ืฆื• ื“ืขืจืœื•ื™ื‘ืŸ ื“ืขื FTP ืกืขืจื•ื•ืขืจ ืฆื• ืึทืงืกืขืก ื”ื™ื™ื ื“ื™ืจืขืงื˜ืึธืจื™ืขืก. ืœืึธืžื™ืจ ื–ืขืŸ ืื•ื™ื‘ ืขืก ื–ืขื ืขืŸ ื“ืึธ ืงื™ื™ืŸ ืกื•ื•ื™ื˜ืฉื™ื– ืคึฟืึทืจ ื“ืขื ื“ื•ืจืš ืœื•ื™ืคืŸ

$ semanage boolean -l

ื“ืขืจ ื‘ืึทืคึฟืขืœ ื•ื•ืขื˜ ืจืฉื™ืžื” ื“ื™ ื‘ื ื™ืžืฆื ืกื•ื•ื™ื˜ืฉืึทื– ืžื™ื˜ ื–ื™ื™ืขืจ ืงืจืึทื ื˜ ืฉื˜ืึทื˜ (ืื•ื™ืฃ ืึธื“ืขืจ ืึทื•ื•ืขืง) ืื•ืŸ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’. ืื™ืจ ืงืขื ืขืŸ ืจืึทืคื™ื ื™ืจืŸ ื“ื™ื™ืŸ ื–ื•ื›ืŸ ื“ื•ืจืš ืึทื“ื™ื ื’ grep ืฆื• ื’ืขืคึฟื™ื ืขืŸ ftp-ื‘ืœื•ื™ื– ืจืขื–ื•ืœื˜ืึทื˜ืŸ:

$ semanage boolean -l | grep ftp

ืื•ืŸ ืื™ืจ ื•ื•ืขื˜ ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ืคืืœื’ืขื ื“ืข

ftp_home_dir        -> off       Allow ftp to read & write file in user home directory

ื“ืขืจ ื‘ืึทืฉื˜ื™ืžืขืŸ ืื™ื– ืคืึทืจืงืจื™ืคึผืœื˜, ืึทื–ื•ื™ ืžื™ืจ ื•ื•ืขืœืŸ ื’ืขื‘ืŸ ืขืก ืžื™ื˜ setsebool $ setsebool ftp_home_dir on

ืื™ืฆื˜ ืื•ื ื“ื–ืขืจ ืคื˜ืคึผ ื“ื™ื™ืžืึทืŸ ื•ื•ืขื˜ ืงืขื ืขืŸ ืฆื• ืึทืงืกืขืก ื“ื™ ื‘ืึทื ื™ืฆืขืจ 'ืก ื”ื™ื™ื ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ.
ื‘ืึทืžืขืจืงื•ื ื’: ืื™ืจ ืงืขื ื˜ ืื•ื™ืš ื‘ืึทืงื•ืžืขืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืคืึทืจืึทื ืขืŸ ืกื•ื•ื™ื˜ืฉื™ื– ืึธืŸ ืึท ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ getsebool -a

2. ืœืึทื‘ืขืœืก ืื•ืŸ ืงืึธื ื˜ืขืงืกื˜

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

  • ืคึฟืึทืจ ื˜ืขืงืขืก ืื•ืŸ ืคืึธืœื“ืขืจืก, ืœืึทื‘ืขืœืก ื–ืขื ืขืŸ ืกื˜ืึธืจื“ ื•ื•ื™ ืขืงืกื˜ืขื ื“ืขื“ ืึทื˜ืจื™ื‘ื™ื•ืฅ ืื•ื™ืฃ ื“ื™ ื˜ืขืงืข ืกื™ืกื˜ืขื ืื•ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื•ื•ื™ื•ื“ ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ:
    $ ls -Z /etc/httpd
  • ืคึฟืึทืจ ืคึผืจืึทืกืขืกืึทื– ืื•ืŸ ืคึผืึธืจืฅ, ื“ื™ ืœื™ื™ื‘ืœื™ื ื’ ืื™ื– ื’ืขืจืื˜ืŸ ื“ื•ืจืš ื“ื™ ืงืขืจืŸ, ืื•ืŸ ืื™ืจ ืงืขื ืขืŸ ื–ืขืŸ ื“ื™ ืœืึทื‘ืขืœืก ื•ื•ื™ ื’ื™ื™ื˜:

ืคึผืจืึธืฆืขืก

$ ps โ€“auxZ | grep httpd

port

$ netstat -anpZ | grep httpd

ื‘ื™ื™ึทืฉืคึผื™ืœ
ืื™ืฆื˜ ืœืึธืžื™ืจ ืงื•ืงืŸ ืื•ื™ืฃ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ ืฆื• ื‘ืขืกืขืจ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ื™ ืขื˜ื™ืงืขื˜ืŸ ืื•ืŸ ืงืึธื ื˜ืขืงืกื˜. ืœืึธืžื™ืจ ื–ืึธื’ืŸ ืžื™ืจ ื”ืึธื‘ืŸ ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ, ื•ื•ืึธืก ืึทื ืฉื˜ืึธื˜ ืึท ืงืึทื˜ืึทืœืึธื’ /var/www/html/ ะธัะฟะพะปัŒะทัƒะตั‚ /home/dan/html/. SELinux ื•ื•ืขื˜ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ืึธืก ื•ื•ื™ ืึท ืคึผืึธืœื™ื˜ื™ืง ื•ื•ื™ื™ืึทืœื™ื™ืฉืึทืŸ, ืื•ืŸ ืื™ืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ืงืขื ืขืŸ ื–ืขืŸ ืื™ื™ืขืจืข ื•ื•ืขื‘ ื–ื™ื™ึทื˜ืœืขืš. ื“ืึธืก ืื™ื– ื•ื•ื™ื™ึทืœ ืžื™ืจ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื‘ืึทืฉื˜ืขื˜ื™ืงื˜ ื“ืขื ื–ื™ื›ืขืจื”ื™ื™ื˜ ืงืึธื ื˜ืขืงืกื˜ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ HTML ื˜ืขืงืขืก. ืฆื• ื–ืขืŸ ื“ืขื ืคืขืœื™ืงื™ื™ึทื˜ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืงืึธื ื˜ืขืงืกื˜, ื ื™ืฆื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ืึทืคึฟืขืœ:

$ ls โ€“lz /var/www/html
 -rw-rโ€”rโ€”. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/

ื“ืึธ ืžื™ืจ ื’ืึทื˜ httpd_sys_content_t ื•ื•ื™ ืงืึธื ื˜ืขืงืกื˜ ืคึฟืึทืจ HTML ื˜ืขืงืขืก. ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ืขืœืŸ ื“ืขื ื–ื™ื›ืขืจื”ื™ื™ื˜ ืงืึธื ื˜ืขืงืกื˜ ืคึฟืึทืจ ืื•ื ื“ื–ืขืจ ืงืจืึทื ื˜ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ, ื•ื•ืึธืก ื“ืขืจื•ื•ื™ื™ึทืœ ื”ืื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ืงืึธื ื˜ืขืงืกื˜:

-rw-rโ€”rโ€”. dan dan system_u:object_r:user_home_t:s0 /home/dan/html/

ืึทืŸ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื• ื‘ืึทืคึฟืขืœ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืงืึธื ื˜ืขืงืกื˜ ืคื•ืŸ ืึท ื˜ืขืงืข ืึธื“ืขืจ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ:

$ semanage fcontext -l | grep '/var/www'

ืžื™ืจ ื•ื•ืขืœืŸ ืื•ื™ืš ื ื•ืฆืŸ ืกืขืžืึทื ืึทื’ืข ืฆื• ื˜ื•ื™ืฉืŸ ื“ืขื ืงืึธื ื˜ืขืงืกื˜ ืึทืžืึธืœ ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขืคึฟื•ื ืขืŸ ื“ื™ ืจื™ื›ื˜ื™ืง ื–ื™ื›ืขืจื”ื™ื™ื˜ ืงืึธื ื˜ืขืงืกื˜. ืฆื• ื˜ื•ื™ืฉืŸ ื“ืขื ืงืึธื ื˜ืขืงืกื˜ ืคื•ืŸ /home/dan/html, ืœื•ื™ืคืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืงืึทืžืึทื ื“ื–:

$ semanage fcontext -a -t httpd_sys_content_t โ€˜/home/dan/html(/.*)?โ€™
$ semanage fcontext -l | grep โ€˜/home/dan/htmlโ€™
/home/dan/html(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
$ restorecon -Rv /home/dan/html

ื ืึธืš ื“ืขื ืงืึธื ื˜ืขืงืกื˜ ืื™ื– ืคืืจืขื ื“ืขืจื˜ ืžื™ื˜ ืกืขืžืึทื ืึทื’ืข, ื“ื™ ืจืขืกื˜ืึธืจืขืงืึธืŸ ื‘ืึทืคึฟืขืœ ื•ื•ืขื˜ ืœืึธื“ืŸ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืงืึธื ื˜ืขืงืกื˜ ืคึฟืึทืจ ื˜ืขืงืขืก ืื•ืŸ ื“ื™ื™ืจืขืงื˜ืขืจื™ื–. ืื•ื ื“ื–ืขืจ ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ ื•ื•ืขื˜ ืื™ืฆื˜ ืงืขื ืขืŸ ืฆื• ืœื™ื™ืขื ืขืŸ ื˜ืขืงืขืก ืคึฟื•ืŸ ื“ืขืจ ื˜ืขืงืข /home/dan/htmlื•ื•ื™ื™ึทืœ ื“ื™ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืงืึธื ื˜ืขืงืกื˜ ืคึฟืึทืจ ื“ืขื ื˜ืขืงืข ืื™ื– ื’ืขื‘ื™ื˜ืŸ ืฆื• httpd_sys_content_t.

3. ืฉืึทืคึฟืŸ ื”ื™ื’ืข ืคึผืึทืœืึทืกื™ื–

ืขืก ืงืขืŸ ื–ื™ื™ืŸ ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ื•ื•ื• ื“ื™ ืื•ื™ื‘ืŸ ืžืขื˜ื”ืึธื“ืก ื–ืขื ืขืŸ ืคื•ืŸ ืงื™ื™ืŸ ื ื•ืฆืŸ ืคึฟืึทืจ ืื™ืจ ืื•ืŸ ืื™ืจ ื‘ืึทืงื•ืžืขืŸ ืขืจืจืึธืจืก (ืึทื•ื•ืง / ืึธืคึผืœื™ื™ืงืขื ื•ื ื’) ืื™ืŸ audit.log. ื•ื•ืขืŸ ื“ืึธืก ื›ืึทืคึผืึทื ื–, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉืึทืคึฟืŸ ืึท ื”ื™ื’ืข ืคึผืึธืœื™ื˜ื™ืง. ืื™ืจ ืงืขื ืขืŸ ื’ืขืคึฟื™ื ืขืŸ ืึทืœืข ืขืจืจืึธืจืก ื ื™ืฆืŸ Audi2why, ื•ื•ื™ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื•ื™ื‘ืŸ.

ืื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืึท ื”ื™ื’ืข ืคึผืึธืœื™ื˜ื™ืง ืฆื• ืกืึธืœื•ื•ืข ืขืจืจืึธืจืก. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ื˜ืขื•ืช ืฉื™ื™ึทื›ื•ืช ืฆื• httpd (ืึทืคึผืึทื˜ืฉื™) ืึธื“ืขืจ smbd (samba), ืžื™ืจ ื’ืจืขืคึผ ื“ื™ ืขืจืจืึธืจืก ืื•ืŸ ืฉืึทืคึฟืŸ ืึท ืคึผืึธืœื™ื˜ื™ืง ืคึฟืึทืจ ื–ื™ื™:

apache
$ grep httpd_t /var/log/audit/audit.log | audit2allow -M http_policy
samba
$ grep smbd_t /var/log/audit/audit.log | audit2allow -M smb_policy

ื“ืึธ http_policy ะธ smb_policy โ€” ื“ืึธืก ื–ืขื ืขืŸ ื“ื™ ื ืขืžืขืŸ ืคึฟื•ืŸ ื“ื™ ืœืึธืงืึทืœืข ืคึผืึธืœื™ื˜ื™ืงืก ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ ื‘ืึทืฉืึทืคึฟืŸ. ืื™ืฆื˜ ื“ืึทืจืคึฟืŸ ืžื™ืจ ืึทืจืฒึทื ืœืึธื“ืŸ ื“ื™ ื‘ืึทืฉืึทืคึฟืขื ืข ืœืึธืงืึทืœืข ืคึผืึธืœื™ื˜ื™ืงืก ืื™ืŸ ื“ืขืจ ืื™ืฆื˜ื™ืงืขืจ SE ืคึผืึธืœื™ื˜ื™ืง.Linux. ื“ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ื•ื•ื™ ื’ื™ื™ื˜:

$ semodule โ€“I http_policy.pp
$ semodule โ€“I smb_policy.pp

ืื•ื ื“ื–ืขืจ ืœืืงืืœืข ืคึผืึทืœืึทืกื™ื– ื–ืขื ืขืŸ ื“ืึทื•ื ืœืึธื•ื“ื™ื“ ืื•ืŸ ืžื™ืจ ื–ืึธืœ ื ื™ื˜ ืžืขืจ ื‘ืึทืงื•ืžืขืŸ ืงื™ื™ืŸ AVC ืึธื“ืขืจ ื“ื™ื ื™ื™ืœ ืื™ืŸ audit.log.

ื“ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ืžืฒึทืŸ ืคึผืจื•ึผื•ื• ืฆื• ื”ืขืœืคึฟืŸ ืืฒึทืš ืคึฟืึทืจืฉื˜ื™ื™ืŸ SELinuxืื™ืš ื”ืืฃ ืื– ื ืื›ืŸ ืœื™ื™ืขื ืขืŸ ื“ืขื ืืจื˜ื™ืงืœ ื•ื•ืขื˜ ืื™ืจ ื–ื™ืš ืคื™ืœืŸ ื‘ืืงื•ื•ืขื ืžื™ื˜ SELinux ืžืขืจ ื‘ืึทืงื•ื•ืขื.

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

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