เบ„เบนเปˆเบกเบทเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบณเบฅเบฑเบš SELinux

เบ„เบนเปˆเบกเบทเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบณเบฅเบฑเบš SELinux

เบเบฒเบ™โ€‹เปเบ›โ€‹เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบเบฐโ€‹เบเบฝเบกโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ™เบฑเบโ€‹เบฎเบฝเบ™โ€‹เบซเบผเบฑเบโ€‹เบชเบนเบ”โ€‹ "เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž Linuxยป

SELinux เบซเบผเบท เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™ Linux MAC เปเบกเปˆเบ™เบเบปเบ™เป„เบเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ เป€เบŠเบดเปˆเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบเบญเบปเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเปเบฑเป‰เบ™เบ„เบปเบ‡เปเบซเปˆเบ‡เบŠเบฒเบ”เบ‚เบญเบ‡เบชเบฐเบซเบฐเบฅเบฑเบ” (NSA) เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบšเบธเบเบฅเบธเบเบ—เบตเปˆเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบ. เบกเบฑเบ™เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบšเบšเบšเบฑเบ‡เบ„เบฑเบš (MAC) เบ™เบญเบเป€เปœเบทเบญเป„เบ›เบˆเบฒเบเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบšเบšเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ (DAC) เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง เป€เบŠเบดเปˆเบ‡เบฅเบงเบกเบกเบตเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบญเปˆเบฒเบ™, เบ‚เบฝเบ™ เปเบฅเบฐ เบ›เบฐเบ•เบดเบšเบฑเบ”.

เบ—เบตเปˆ SELinux เบกเบตเบชเบฒเบกเป‚เปเบ”เบ„เบท:

  1. เบเบฒเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰ โ€” เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ™เบฐเป‚เบเบšเบฒเบ.
  2. เบญเบฐเบ™เบธเบเบฒเบ” โ€” เบเบฒเบ™โ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบเบฐโ€‹เบ—เปเบฒโ€‹เบ—เบตเปˆโ€‹เบฅเบฐโ€‹เป€เบกเบตเบ”โ€‹เบ™เบฐโ€‹เป‚เบโ€‹เบšเบฒเบโ€‹, เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เบซเป‰เบฒเบกโ€‹เปƒเบ™โ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบšเบฑเบ‡โ€‹เบ„เบฑเบšโ€‹เปƒเบŠเป‰โ€‹.
  3. เบ„เบปเบ™เบžเบดเบเบฒเบ™ - เบเบฒเบ™เบ›เบดเบ” SE เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™Linux.

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ /etc/selinux/config

เบเบฒเบ™เบ›เปˆเบฝเบ™เป‚เปเบ” SELinux

เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบฎเบนเบšเปเบšเบšเบ›เบฐเบˆเบธเบšเบฑเบ™, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™

$ getenforce

เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เป‚เบซเบกเบ”เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰

$ setenforce 0

เบซเบผเบท, เบ›เปˆเบฝเบ™เบฎเบนเบšเปเบšเบšเบˆเบฒเบ permissive เบชเบธเบ” เบšเบฑเบ‡เบ„เบฑเบš, เบ›เบฐเบ•เบดเบšเบฑเบ”

$ setenforce 1

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ SE เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™Linux, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบดเปˆเบ‡เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบœเปˆเบฒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™

$ vi /etc/selinux/config

เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™, เปƒเบซเป‰เบ›เปˆเบฝเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต SELINUX เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

SELINUX=disabled

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ SELinux

เปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒ เปเบฅเบฐ เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ–เบทเบเปเบฒเบเบ”เป‰เบงเบเบšเปเบฅเบดเบšเบปเบ” SELinux, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบŠเบฑเปˆเบ™: เบœเบนเป‰เปƒเบŠเป‰, เบšเบปเบ”เบšเบฒเบ”, เบ›เบฐเป€เบžเบ”, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰ SE เป€เบ›เบฑเบ™เบ„เบฑเป‰เบ‡เบ—เบณเบญเบดเบ”Linux, เบˆเบฒเบเบ™เบฑเป‰เบ™เบเปˆเบญเบ™เบญเบทเปˆเบ™เปเบปเบ”เบ—เปˆเบฒเบ™เบˆเบณเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบšเปเบฅเบดเบšเบปเบ” เปเบฅเบฐ เบ›เป‰เบฒเบเบเบณเบเบฑเบš. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบเบณเบ™เบปเบ”เบ›เป‰เบฒเบเบเบณเบเบฑเบš เปเบฅเบฐ เบšเปเบฅเบดเบšเบปเบ”เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบเบฑเบ™เปƒเบ™เบ™เบฒเบกเบเบฒเบ™เบ•เบดเบ”เบ›เป‰เบฒเบเบเบณเบเบฑเบš. เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ•เบดเบ”เบ›เป‰เบฒเบเบเบณเบเบฑเบš, เปƒเบซเป‰เบ›เปˆเบฝเบ™เป‚เปเบ”เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ›เบฑเบ™ permissive.

$ vi /etc/selinux/config
SELINUX=permissive

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบซเบกเบ” permissive, เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเบขเบนเปˆเปƒเบ™เบฎเบฒเบเบ—เบตเปˆเบกเบตเบŠเบทเปˆ autorelabel

$ touch /.autorelabel

เปเบฅเบฐเบ›เบดเบ”เป€เบ›เบตเบ”เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ„เบทเบ™เปƒเปเปˆ

$ init 6

เบซเบกเบฒเบเป€เบซเบ”: เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เป‚เบซเบกเบ” permissive เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฎเบนเบšเปเบšเบš เบšเบฑเบ‡เบ„เบฑเบš เบญเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบšเบปเบšเบ‚เบฑเบ”เบ‚เป‰เบญเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบดเบ”เป€เบ›เบตเบ”เปƒเปเปˆ.

เบšเปเปˆเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบซเปˆเบงเบ‡เบ–เป‰เบฒเบเบฒเบ™เบ”เบฒเบงเป‚เบซเบผเบ”เบ•เบดเบ”เบขเบนเปˆเปƒเบ™เบšเบฒเบ‡เป„เบŸเบฅเปŒ, เบเบฒเบ™เป€เบฎเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเปƒเบŠเป‰เป€เบงเบฅเบฒเป„เบฅเบเบฐเปœเบถเปˆเบ‡. เป€เบกเบทเปˆเบญเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบชเปเบฒเป€เบฅเบฑเบ”เปเบฅเบฐเบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ–เบทเบ booted, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ›เบ—เบตเปˆเป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเบเปเบฒเบ™เบปเบ”เป‚เบซเบกเบ” เบšเบฑเบ‡เบ„เบฑเบšเปเบฅเบฐโ€‹เบเบฑเบ‡โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹:

$ setenforce 1

เบ”เบฝเบงเบ™เบตเป‰เบ—เปˆเบฒเบ™เป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰ SE เบชเบณเป€เบฅเบฑเบ”เปเบฅเป‰เบงLinux เบขเบนเปˆเปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบเบงเบ”โ€‹เบเบฒโ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹

เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบžเบปเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบชเบฐเบซเบผเบฒเบ เบซเบผเบท เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฅเบฐเบšเบปเบšเบเบณเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบ. เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบงเปˆเบฒ SE เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบซเบผเบทเบšเปเปˆLinux เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบงเบ”เบชเบญเบšเบšเบฑเบ™เบ—เบถเบเป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบ•เป‰เบญเบ‡เบซเบผเบทเบšเปเปˆ เปเบฅเบฐ เบกเบฑเบ™เบšเบฅเบฑเบญเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบญเบ”, เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบšเบฑเบ™เบ—เบถเบ SELinux เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ /var/log/audit/audit.log, เปเบ•เปˆเบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบญเปˆเบฒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ audit2why utility เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”. เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

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

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบšเบฑเบ™เบ—เบถเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบˆเบฐเบšเปเปˆเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ”เป†.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบฐเป‚เบเบšเบฒเบ SELinux

เบ™เบฐเป‚เบเบšเบฒเบ SELinux โ€” เปเบกเปˆเบ™เบŠเบธเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบตเปˆเบ™เบณเบžเบฒเบเบปเบ™เป„เบเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡ SELinuxเบ™เบฐเป‚เบเบšเบฒเบเบเบณเบ™เบปเบ”เบŠเบธเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเบชเบณเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบชเบฐเป€เบžเบฒเบฐ. เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบฎเบฝเบ™เบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบฐเป‚เบเบšเบฒเบเป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบˆเบณเบเบฑเบ”.

1. เบ„เปˆเบฒเบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™ (เบชเบฐเบงเบดเบ”)

เบšเบนเบฅเบฝเบ™เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเปˆเบงเบ™เบ•เปˆเบฒเบ‡เป†เบ‚เบญเบ‡เบ™เบฐเป‚เบเบšเบฒเบเปƒเบ™เป€เบงเบฅเบฒเป€เบฎเบฑเบ”เบงเบฝเบ, เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบ™เบฐเป‚เบเบšเบฒเบเปƒเปเปˆ. เบžเบงเบเบกเบฑเบ™เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบฃเบตเบšเบนเบ” เบซเบผเบท เบฅเบงเบšเบฅเบงเบกเบ™เบฐเป‚เบเบšเบฒเบ SE เบ„เบทเบ™เปƒเปเปˆ.Linux.

เบ•เบปเบงเบขเปˆเบฒเบ‡:
เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบซเบผเบฑเบเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบœเปˆเบฒเบ™ FTP เบชเบณเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™ เปเบฅเบฐ เบ‚เบฝเบ™, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปเบšเปˆเบ‡เบ›เบฑเบ™เบกเบฑเบ™เปเบฅเป‰เบง, เปเบ•เปˆเป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบžเบฐเบเบฒเบเบฒเบกเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบกเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป€เบซเบฑเบ™เบซเบเบฑเบ‡เป€เบฅเบตเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบเป‰เบญเบ™เบงเปˆเบฒเบ™เบฐเป‚เบเบšเบฒเบ SELinux เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เป€เบŠเบตเบšเป€เบงเบต 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

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ ftp daemon เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบฎเบทเบญเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เป„เบ”เป‰.
เบซเบกเบฒเบเป€เบซเบ”: เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบซเบงเบดเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเป‚เบ”เบเบšเปเปˆเบกเบตเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเป‚เบ”เบเบเบฒเบ™เป€เบฎเบฑเบ” getsebool -a

2. เบ›เป‰เบฒเบเบเบณเบเบฑเบš เปเบฅเบฐ เบšเปเบฅเบดเบšเบปเบ”

เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบฐเป‚เบเบšเบฒเบ SE.Linuxเปเบ•เปˆเบฅเบฐเป„เบŸเบฅเปŒ, เป‚เบŸเบ™เป€เบ”เบต, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ เปเบฅเบฐ เบžเบญเบ”เปเบกเปˆเบ™เบ–เบทเบเปเบฒเบเบ”เป‰เบงเบเบšเปเบฅเบดเบšเบปเบ” SE.Linux:

  • เบชเบณเบฅเบฑเบšเป„เบŸเบฅเปŒ เปเบฅเบฐเป‚เบŸเบ™เป€เบ”เบตเป‰เบ•เปˆเบฒเบ‡เป†, เบ›เป‰เบฒเบเบเบณเบเบฑเบšเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เป€เบ›เบฑเบ™เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบฐเบซเบเบฒเบเบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ เปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เป„เบ”เป‰เบ”เป‰เบงเบเบ„เบณเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:
    $ ls -Z /etc/httpd
  • เบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบฅเบฐเบžเบญเบ”, เบเบฒเบ™เบ•เบดเบ”เบชเบฐเบซเบผเบฒเบเบ–เบทเบเบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบ kernel, เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบ›เป‰เบฒเบเบŠเบทเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™

$ 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'

เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบˆเบฐเปƒเบŠเป‰ semanage เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบšเปเบฅเบดเบšเบปเบ”เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเป€เบซเบฑเบ™เบšเปเบฅเบดเบšเบปเบ”เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบšเปเบฅเบดเบšเบปเบ”เบ‚เบญเบ‡ /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

เบซเบผเบฑเบ‡เบˆเบฒเบเบšเปเบฅเบดเบšเบปเบ”เบ–เบทเบเบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ”เบเปƒเบŠเป‰ semanage, เบ„เปเบฒเบชเบฑเปˆเบ‡ restorecon เบˆเบฐเป‚เบซเบฅเบ”เบšเปเบฅเบดเบšเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเปเบฅเบฐเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต. เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบŸเบฅเปŒเบˆเบฒเบเป‚เบŸเบ™เป€เบ”เบต /home/dan/htmlเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบšเปเบฅเบดเบšเบปเบ”เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบชเปเบฒเบฅเบฑเบšเป‚เบŸเบ™เป€เบ”เบตเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ httpd_sys_content_t.

3. เบชเป‰เบฒเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™

เบญเบฒเบ”เบˆเบฐเบกเบตเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบงเบดเบ—เบตเบเบฒเบ™เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเป€เบˆเบปเป‰เบฒเปเบฅเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” (avc/denial) เปƒเบ™ audit.log. เป€เบกเบทเปˆเบญเบชเบดเปˆเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบเบตเบ”เบ‚เบถเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เป‚เบ”เบเปƒเบŠเป‰ audit2why, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš httpd (apache) เบซเบผเบท smbd (samba), เบžเบงเบเป€เบฎเบปเบฒ grep เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบชเป‰เบฒเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒ:

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 เบซเบผเบท denail เปƒเบ™ audit.log เบญเบตเบเบ•เปเปˆเป„เบ›.

เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ‚เบญเบ‡เบ‚เป‰เบญเบเบ—เบตเปˆเบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เป€เบˆเบปเป‰เบฒเป€เบ‚เบปเป‰เบฒเปƒเบˆ SELinuxเบ‚เป‰เบญเบเบซเบงเบฑเบ‡เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบญเปˆเบฒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เปเบฅเป‰เบงเป€เบˆเบปเป‰เบฒเบˆเบฐเบฎเบนเป‰เบชเบถเบเบชเบฐเบšเบฒเบเปƒเบˆเบเบฑเบš SELinux เบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบเบซเบผเบฒเบเบ‚เบถเป‰เบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster