
ืืืืขืจืืขืฆืื ื ืคืื ืืขื ืึทืจืืืงื ืฆืืืขืืจืืื ืคึฟืึทืจ ืงืืจืก ืกืืืืขื ืื
SELinux ืืืขืจ ืคึฟืึทืจืืขืกืขืจืืข ืืืืขืจืืืื Linux MAC ืืื ืึท ืคึฟืึทืจืืขืกืขืจืืขืจ ืฆืืืจืื ืงืึธื ืืจืึธื ืืขืงืึทื ืืื ืืขืืืขืืึธืคึผืขื ืืืจื ืื ืื. ืขืก. ื ืึทืฆืืึธื ืึทืืข ืืืืขืจืืืื ืึทืืขื ืืืจ (NSA) ืฆื ืคืึทืจืืืึทืื ืืืืืืืืืืงืข ืื ืืจืืืฉืึทื ื. ืขืก ืืืคึผืืขืืขื ืืืจื ืึท ืืึทื ืืึทืืึธืจื ืฆืืืจืื ืงืึธื ืืจืึธื (MAC) ืืึธืืขื ืืืืฃ ืฉืคึผืืฅ ืคืื ืื ืขืงืกืืกืืืจื ืืืง ืืืกืงืจืขืฉืึทื ืขืจื ืฆืืืจืื ืงืึธื ืืจืึธื (DAC) ืืึธืืขื, ืืืึธืก ืืืื ืืืืขื ืขื, ืฉืจืืึทืื ืืื ืขืงืกืขืงืืืืจื ืคึผืขืจืืืฉืึทื ื.
ืืื ืืจืื-ืืืจืLinux ืขืก ืืขื ืขื ืื ืืจืื ืืึธืืขืก:
- ืขื ืคืึธืจืกืื ื - ืฆืืืจืื ืึธืคึผืืืืงืขื ืื ื ืืืืืจื ืืืืฃ ืคึผืึธืืืืืง ืึผืืืื.
- ืคึผืขืจืืืกืืื - ืืึทืืื ืึท ืงืืึธืฅ ืคืื ืึทืงืฉืึทื ื ืืืึธืก ืึธื ืจืืจื ืื ืคึผืึธืืืืืง, ืืืึธืก ืืืึธืื ืืืื ืคึผืจืึธืืืืืึทืืึทื ืืื ืื ืขื ืคืึธืจืกืื ื ืืึธืืข.
- 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 httpdport
$ 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
