SELinux เชฎเชพเชŸเซ‡ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ

SELinux เชฎเชพเชŸเซ‡ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ

เช…เชญเซเชฏเชพเชธเช•เซเชฐเชฎเชจเชพ เชตเชฟเชฆเซเชฏเชพเชฐเซเชฅเซ€เช“ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ‡เชฒ เชฒเซ‡เช–เชจเซ‹ เช…เชจเซเชตเชพเชฆ "เชฒเชฟเชจเช•เซเชธ เชธเซเชฐเช•เซเชทเชพ"

SELinux เช…เชฅเชตเชพ เชธเซเชฐเช•เซเชทเชพ เช‰เชจเซเชจเชค Linux เช เชฆเซ‚เชทเชฟเชค เช˜เซ‚เชธเชฃเช–เซ‹เชฐเซ€เชจเซ‡ เชฐเซ‹เช•เชตเชพ เชฎเชพเชŸเซ‡ เชฏเซเชเชธ เชจเซ‡เชถเชจเชฒ เชธเชฟเช•เซเชฏเซเชฐเชฟเชŸเซ€ เชเชœเชจเซเชธเซ€ (NSA) เชฆเซเชตเชพเชฐเชพ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เช‰เชจเซเชจเชค เชเช•เซเชธเซ‡เชธ เช•เช‚เชŸเซเชฐเซ‹เชฒ เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เช›เซ‡. เชคเซ‡ เชซเชฐเชœเชฟเชฏเชพเชค (เช…เชฅเชตเชพ เชซเชฐเชœเชฟเชฏเชพเชค) เชเช•เซเชธเซ‡เชธ เช•เช‚เชŸเซเชฐเซ‹เชฒ เชฎเซ‹เชกเชฒ (เช…เช‚เช—เซเชฐเซ‡เชœเซ€ เชซเชฐเชœเชฟเชฏเชพเชค เชเช•เซเชธเซ‡เชธ เช•เช‚เชŸเซเชฐเซ‹เชฒ, MAC) เชนเชพเชฒเชจเชพ เชตเชฟเชตเซ‡เช•เชพเชงเซ€เชจ (เช…เชฅเชตเชพ เชชเชธเช‚เชฆเช—เซ€เชฏเซเช•เซเชค) เชฎเซ‹เชกเชฒ (เช…เช‚เช—เซเชฐเซ‡เชœเซ€ เชกเชฟเชธเซเช•เซเชฐเชฟเชถเชจเชฐเซ€ เชเช•เซเชธเซ‡เชธ เช•เช‚เชŸเซเชฐเซ‹เชฒ, DAC) เชจเซ€ เชŸเซ‹เชš เชชเชฐ เชฒเชพเช—เซ เช•เชฐเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡ เชตเชพเช‚เชšเชตเชพ, เชฒเช–เชตเชพ, เชšเชฒเชพเชตเชตเชพเชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€เช“.

SELinux เชฎเชพเช‚ เชคเซเชฐเชฃ เชฎเซ‹เชก เช›เซ‡:

  1. เช…เชฎเชฒ - เชจเซ€เชคเชฟ เชจเชฟเชฏเชฎเซ‹เชจเชพ เช†เชงเชพเชฐเซ‡ เชเช•เซเชธเซ‡เชธ เชจเช•เชพเชฐ.
  2. เช…เชจเซเชฎเชคเชฟ เช†เชชเชจเชพเชฐเซเช‚ - เชจเซ€เชคเชฟเชจเซเช‚ เช‰เชฒเซเชฒเช‚เช˜เชจ เช•เชฐเชคเซ€ เช•เซเชฐเชฟเชฏเชพเช“เชจเซ‹ เชฒเซ‹เช— เชฐเชพเช–เชตเซ‹, เชœเซ‡ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชฎเซ‹เชกเชฎเชพเช‚ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เชนเชถเซ‡.
  3. เช…เชชเช‚เช— - SELinux เชจเซเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ.

เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚ เช›เซ‡ /etc/selinux/config

SELinux เชฎเซ‹เชกเซเชธ เชฌเชฆเชฒเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชตเชฐเซเชคเชฎเชพเชจ เชฎเซ‹เชก เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡, เชšเชฒเชพเชตเซ‹

$ getenforce

เชฎเซ‹เชกเชจเซ‡ เชชเชฐเชตเชพเชจเช—เซ€เชฎเชพเช‚ เชฌเชฆเชฒเชตเชพ เชฎเชพเชŸเซ‡ เชจเซ€เชšเซ‡เชจเซ‹ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹

$ setenforce 0

เช…เชฅเชตเชพ, เชฅเซ€ เชฎเซ‹เชก เชฌเชฆเชฒเชตเชพ เชฎเชพเชŸเซ‡ เช…เชจเซเชฎเชคเชฟ เชชเชฐ เช…เชฎเชฒ, เชšเชฒเชพเชตเซ‹

$ setenforce 1

เชœเซ‹ เชคเชฎเชพเชฐเซ‡ SELinux เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ, เชคเซ‹ เช† เชซเช•เซเชค เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒ เชฆเซเชตเชพเชฐเชพ เชœ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡

$ vi /etc/selinux/config

เช…เช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชจเซ€เชšเซ‡ เชชเซเชฐเชฎเชพเชฃเซ‡ SELINUX เชชเชฐเชฟเชฎเชพเชฃ เชฌเชฆเชฒเซ‹:

SELINUX=disabled

SELinux เชธเซ‡เชŸ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

เชฆเชฐเซ‡เช• เชซเชพเช‡เชฒ เช…เชจเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ SELinux เชธเช‚เชฆเชฐเซเชญ เชธเชพเชฅเซ‡ เชšเชฟเชนเซเชจเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เชตเชงเชพเชฐเชพเชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชœเซ‡เชฎ เช•เซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ, เชญเซ‚เชฎเชฟเช•เชพ, เชชเซเชฐเช•เชพเชฐ เชตเช—เซ‡เชฐเซ‡เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. เชœเซ‹ เช† เชคเชฎเชพเชฐเซ€ เชชเซเชฐเชฅเชฎ เชตเช–เชค SELinux เชธเช•เซเชฐเชฟเชฏ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชชเชนเซ‡เชฒเชพ เชธเช‚เชฆเชฐเซเชญ เช…เชจเซ‡ เชฒเซ‡เชฌเชฒเซเชธ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เชฒเซ‡เชฌเชฒเซเชธ เช…เชจเซ‡ เชธเช‚เชฆเชฐเซเชญ เชธเซ‹เช‚เชชเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชŸเซ‡เช—เชฟเช‚เช— เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฎเชพเชฐเซเช•เชฟเช‚เช— เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเชฎเชพเช‚ เช…เชฎเซ‡ เชฎเซ‹เชกเชจเซ‡ เช†เชฎเชพเช‚ เชฌเชฆเชฒเซ€เช เช›เซ€เช เช…เชจเซเชฎเชคเชฟ.

$ vi /etc/selinux/config
SELINUX=permissive

เชฎเซ‹เชก เชธเซ‡เชŸ เช•เชฐเซเชฏเชพ เชชเช›เซ€ เช…เชจเซเชฎเชคเชฟ, เชจเชพเชฎ เชธเชพเชฅเซ‡ เชฐเซ‚เชŸเชฎเชพเช‚ เช–เชพเชฒเซ€ เช›เซเชชเชพเชฏเซ‡เชฒ เชซเชพเช‡เชฒ เชฌเชจเชพเชตเซ‹ autorelabel

$ touch /.autorelabel

เช…เชจเซ‡ เช•เซ‹เชฎเซเชชเซเชฏเซเชŸเชฐ เชฐเซ€เชธเซเชŸเชพเชฐเซเชŸ เช•เชฐเซ‹

$ init 6

เชจเซ‹เช‚เชง: เช…เชฎเซ‡ เชฎเซ‹เชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซเชฎเชคเชฟ เชฎเชพเชฐเซเช•เชฟเช‚เช— เชฎเชพเชŸเซ‡, เชฎเซ‹เชกเชจเชพ เช‰เชชเชฏเซ‹เช—เชฅเซ€ เช…เชฎเชฒ เชฐเซ€เชฌเซ‚เชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชธเชฟเชธเซเชŸเชฎ เช•เซเชฐเซ‡เชถ เชฅเชตเชพเชจเซเช‚ เช•เชพเชฐเชฃ เชฌเชจเซ€ เชถเช•เซ‡ เช›เซ‡.

เชœเซ‹ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เซ‡เชŸเชฒเซ€เช• เชซเชพเช‡เชฒ เชชเชฐ เช…เชŸเช•เซ€ เชœเชพเชฏ เชคเซ‹ เชšเชฟเช‚เชคเชพ เช•เชฐเชถเซ‹ เชจเชนเซ€เช‚, เชฎเชพเชฐเซเช•เชฟเช‚เช—เชฎเชพเช‚ เชฅเซ‹เชกเซ‹ เชธเชฎเชฏ เชฒเชพเช—เซ‡ เช›เซ‡. เชเช•เชตเชพเชฐ เชฎเชพเชฐเซเช•เชฟเช‚เช— เชชเซ‚เชฐเซเชฃ เชฅเชˆ เชœเชพเชฏ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ€ เชธเชฟเชธเซเชŸเชฎ เชฌเซเชŸ เชฅเชˆ เชœเชพเชฏ, เชคเชฎเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเชˆเชฒ เชชเชฐ เชœเชˆเชจเซ‡ เชฎเซ‹เชก เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชฎเชฒเช…เชจเซ‡ เชšเชฒเชพเชตเซ‹:

$ setenforce 1

เชคเชฎเซ‡ เชนเชตเซ‡ เชคเชฎเชพเชฐเชพ เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชชเชฐ SELinux เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชธเช•เซเชทเชฎ เช•เชฐเซเชฏเซเช‚ เช›เซ‡.

เชฒเซ‹เช— เชฎเซ‹เชจเซ€เชŸเชฐเซ€เช‚เช—

เชฎเชพเชฐเซเช•เชฟเช‚เช— เชฆเชฐเชฎเชฟเชฏเชพเชจ เช…เชฅเชตเชพ เชธเชฟเชธเซเชŸเชฎ เชšเชพเชฒเซ€ เชฐเชนเซ€ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเชจเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชญเซ‚เชฒเซ‹ เช†เชตเซ€ เชนเชถเซ‡. เชคเชฎเชพเชฐเซเช‚ SELinux เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชšเช•เชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เช…เชจเซ‡ เชœเซ‹ เชคเซ‡ เช•เซ‹เชˆเชชเชฃ เชชเซ‹เชฐเซเชŸ, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ, เชตเช—เซ‡เชฐเซ‡เชจเซ€ เชเช•เซเชธเซ‡เชธเชจเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชคเซเช‚ เชจเชฅเซ€, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชฒเซ‹เช— เชœเซ‹เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. SELinux เชฒเซ‹เช—เชฎเชพเช‚ เชธเซเชฅเชฟเชค เช›เซ‡ /var/log/audit/audit.log, เชชเชฐเช‚เชคเซ เชคเชฎเชพเชฐเซ‡ เชญเซ‚เชฒเซ‹ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ เช†เช–เซ€ เชตเชธเซเชคเซ เชตเชพเช‚เชšเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชคเชฎเซ‡ เชญเซ‚เชฒเซ‹ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ audit2why เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชจเซ€เชšเซ‡เชจเซ‹ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹:

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

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชคเชฎเชจเซ‡ เชญเซ‚เชฒเซ‹เชจเซ€ เชธเซ‚เชšเชฟ เชชเซเชฐเชพเชชเซเชค เชฅเชถเซ‡. เชœเซ‹ เชฒเซ‹เช—เชฎเชพเช‚ เช•เซ‹เชˆ เชญเซ‚เชฒเซ‹ เชจ เชนเชคเซ€, เชคเซ‹ เชชเช›เซ€ เช•เซ‹เชˆ เชธเช‚เชฆเซ‡เชถเชพ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชถเซ‡ เชจเชนเซ€เช‚.

SELinux เชจเซ€เชคเชฟ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

SELinux เชชเซ‹เชฒเชฟเชธเซ€ เช เชจเชฟเชฏเชฎเซ‹เชจเซ‹ เชธเชฎเซ‚เชน เช›เซ‡ เชœเซ‡ SELinux เชธเซเชฐเช•เซเชทเชพ เชฎเชฟเช•เซ‡เชจเชฟเชเชฎเชจเซ‡ เชธเช‚เชšเชพเชฒเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชจเซ€เชคเชฟ เชšเซ‹เช•เซเช•เชธ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชฎเชพเชŸเซ‡ เชจเชฟเชฏเชฎเซ‹เชจเชพ เชธเชฎเซ‚เชนเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชนเชตเซ‡ เช†เชชเชฃเซ‡ เชถเซ€เช–เซ€เชถเซเช‚ เช•เซ‡ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡ เชจเซ€เชคเชฟเช“เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช—เซ‹เช เชตเชตเซ€.

1. เชคเชพเชฐเซเช•เชฟเช• เชฎเซ‚เชฒเซเชฏเซ‹ (เชธเซเชตเชฟเชš)

เชธเซเชตเชฟเชš (เชฌเซ‚เชฒเชฟเชฏเชจเซเชธ) เชคเชฎเชจเซ‡ เชจเชตเซ€ เชจเซ€เชคเชฟเช“ เชฌเชจเชพเชตเซเชฏเชพ เชตเชฟเชจเชพ, เชฐเชจเชŸเชพเช‡เชฎ เชธเชฎเชฏเซ‡ เชจเซ€เชคเชฟเชจเชพ เชญเชพเช—เซ‹ เชฌเชฆเชฒเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชคเซ‡เช“ เชคเชฎเชจเซ‡ SELinux เชจเซ€เชคเชฟเช“เชจเซ‡ เชฐเซ€เชฌเซ‚เชŸ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เช…เชฅเชตเชพ เชชเซเชจเชƒเช•เชฎเซเชชเชพเชˆเชฒ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเชตเชพเชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡.

เช‰เชฆเชพเชนเชฐเชฃ:
เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เช…เชฎเซ‡ FTP เชฐเซ€เชก/เชฐเชพเช‡เชŸ เชฆเซเชตเชพเชฐเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ€ เชนเซ‹เชฎ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชถเซ‡เชฐ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช, เช…เชจเซ‡ เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชถเซ‡เชฐ เช•เชฐเซ€ เชฆเซ€เชงเซเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชœเซเชฏเชพเชฐเซ‡ เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เช เช›เซ€เช, เชคเซเชฏเชพเชฐเซ‡ เช…เชฎเชจเซ‡ เช•เช‚เชˆ เชฆเซ‡เช–เชพเชคเซเช‚ เชจเชฅเซ€. เช† เชเชŸเชฒเชพ เชฎเชพเชŸเซ‡ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ SELinux เชจเซ€เชคเชฟ FTP เชธเชฐเซเชตเชฐเชจเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ€ เชนเซ‹เชฎ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ เชตเชพเช‚เชšเชตเชพ เช…เชจเซ‡ เชฒเช–เชตเชพเชฅเซ€ เช…เชŸเช•เชพเชตเซ‡ เช›เซ‡. เช…เชฎเชพเชฐเซ‡ เชชเซ‹เชฒเชฟเชธเซ€ เชฌเชฆเชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡ FTP เชธเชฐเซเชตเชฐ เชนเซ‹เชฎ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“ เชเช•เซเชธเซ‡เชธ เช•เชฐเซ€ เชถเช•เซ‡. เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เชถเซเช‚ เช† เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เชธเซเชตเซ€เชšเซ‹ เช›เซ‡

$ semanage boolean -l

เช† เช†เชฆเซ‡เชถ เช‰เชชเชฒเชฌเซเชง เชธเซเชตเซ€เชšเซ‹เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟ (เชšเชพเชฒเซ เช…เชฅเชตเชพ เชฌเช‚เชง) เช…เชจเซ‡ เชตเชฐเซเชฃเชจ เชธเชพเชฅเซ‡ เชธเซ‚เชšเชฟเชฌเชฆเซเชง เช•เชฐเชถเซ‡. เชคเชฎเซ‡ เชซเช•เซเชค ftp-เชซเช•เซเชค เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ grep เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ เชคเชฎเชพเชฐเซ€ เชถเซ‹เชงเชจเซ‡ เชธเซเชงเชพเชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

$ 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

เชนเชตเซ‡ เช…เชฎเชพเชฐเซเช‚ ftp เชกเชฟเชฎเชจ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ€ เชนเซ‹เชฎ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชถเซ‡.
เชจเซ‹เช‚เชง: เชคเชฎเซ‡ เชตเชฐเซเชฃเชจ เชตเชฟเชจเชพ เช‰เชชเชฒเชฌเซเชง เชธเซเชตเซ€เชšเซ‹เชจเซ€ เชฏเชพเชฆเซ€ เชชเชฃ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹ getsebool -a

2. เชฒเซ‡เชฌเชฒเซเชธ เช…เชจเซ‡ เชธเช‚เชฆเชฐเซเชญ

SELinux เชจเซ€เชคเชฟ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซ€ เช† เชธเซŒเชฅเซ€ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชค เช›เซ‡. เชฆเชฐเซ‡เช• เชซเชพเช‡เชฒ, เชซเซ‹เชฒเซเชกเชฐ, เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช…เชจเซ‡ เชชเซ‹เชฐเซเชŸ SELinux เชธเช‚เชฆเชฐเซเชญ เชธเชพเชฅเซ‡ เชšเชฟเชนเซเชจเชฟเชค เชฅเชฏเซ‡เชฒ เช›เซ‡:

  • เชซเชพเช‡เชฒเซ‹ เช…เชจเซ‡ เชซเซ‹เชฒเซเชกเชฐเซเชธ เชฎเชพเชŸเซ‡, เชฒเซ‡เชฌเชฒเซเชธ เชซเชพเช‡เชฒ เชธเชฟเชธเซเชŸเชฎ เชชเชฐ เชตเชฟเชธเซเชคเซƒเชค เชตเชฟเชถเซ‡เชทเชคเชพเช“ เชคเชฐเซ€เช•เซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชจเซ€เชšเซ‡เชจเชพ เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เชœเซ‹เชˆ เชถเช•เชพเชฏ เช›เซ‡:
    $ ls -Z /etc/httpd
  • เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เช…เชจเซ‡ เชชเซ‹เชฐเซเชŸเซเชธ เชฎเชพเชŸเซ‡, เชฒเซ‡เชฌเชฒเซ€เช‚เช— เช•เชฐเซเชจเชฒ เชฆเซเชตเชพเชฐเชพ เชธเช‚เชšเชพเชฒเชฟเชค เชฅเชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชคเชฎเซ‡ เช† เชฒเซ‡เชฌเชฒเซ‹เชจเซ‡ เชจเซ€เชšเซ‡ เชชเซเชฐเชฎเชพเชฃเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹:

เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ

$ ps โ€“auxZ | grep httpd

เชฌเช‚เชฆเชฐ

$ 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 เชฎเชพเช‚ เชญเซ‚เชฒเซ‹ (avc/denial) เชฎเชณเซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เช†เชตเซเช‚ เชฅเชพเชฏ, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเซ‡ เชธเซเชฅเชพเชจเชฟเช• เชจเซ€เชคเชฟ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชคเชฎเซ‡ เช‰เชชเชฐ เชตเชฐเซเชฃเชตเซเชฏเชพ เชฎเซเชœเชฌ, audit2why เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฌเชงเซ€ เชญเซ‚เชฒเซ‹ เชถเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹.

เชคเชฎเซ‡ เชญเซ‚เชฒเซ‹เชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเชฅเชพเชจเชฟเช• เชจเซ€เชคเชฟ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชฎเชจเซ‡ httpd (apache) เช…เชฅเชตเชพ smbd (เชธเชพเชฎเซเชฌเชพ) เชฅเซ€ เชธเช‚เชฌเช‚เชงเชฟเชค เชญเซ‚เชฒ เชฎเชณเซ‡ เช›เซ‡, เช…เชฎเซ‡ เชญเซ‚เชฒเซ‹เชจเซ‡ เชชเช•เชกเซ€เช เช›เซ€เช เช…เชจเซ‡ เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชเช• เชจเซ€เชคเชฟ เชฌเชจเชพเชตเซ€เช เช›เซ€เช:

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 เช…เชฎเซ‡ เชฌเชจเชพเชตเซ‡เชฒเซ€ เชธเซเชฅเชพเชจเชฟเช• เชจเซ€เชคเชฟเช“เชจเชพ เชจเชพเชฎ เช›เซ‡. เชนเชตเซ‡ เช†เชชเชฃเซ‡ เช† เชฌเชจเชพเชตเซ‡เชฒเซ€ เชธเซเชฅเชพเชจเชฟเช• เชจเซ€เชคเชฟเช“เชจเซ‡ เชตเชฐเซเชคเชฎเชพเชจ SELinux เชจเซ€เชคเชฟเชฎเชพเช‚ เชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช† เชจเซ€เชšเซ‡ เชชเซเชฐเชฎเชพเชฃเซ‡ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡:

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

เช…เชฎเชพเชฐเซ€ เชธเซเชฅเชพเชจเชฟเช• เชจเซ€เชคเชฟเช“ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เช…เชจเซ‡ เช…เชฎเชจเซ‡ เชนเชตเซ‡ audit.log เชฎเชพเช‚ เช•เซ‹เชˆเชชเชฃ avc เช…เชฅเชตเชพ denail เชชเซเชฐเชพเชชเซเชค เชฅเชตเซ€ เชœเซ‹เชˆเช เชจเชนเซ€เช‚.

SELinux เชจเซ‡ เชธเชฎเชœเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชตเชพเชจเซ‹ เช† เชฎเชพเชฐเซ‹ เชชเซเชฐเชฏเชพเชธ เชนเชคเซ‹. เชนเซเช‚ เช†เชถเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚ เช•เซ‡ เช† เชฒเซ‡เช– เชตเชพเช‚เชšเซเชฏเชพ เชชเช›เซ€ เชคเชฎเซ‡ SELinux เชธเชพเชฅเซ‡ เชตเชงเซ เช†เชฐเชพเชฎเชฆเชพเชฏเช• เช…เชจเซเชญเชตเชถเซ‹.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹