๐ง Linux SELinux ไป็ดน่ๅฏฆๅๆๅญธ(ๅฎๅ จๆงๅผทๅๅบ็ค)
ๅจไผๆฅญ็ด Linux ็ผ่ก็(ๅฆ Red Hat / Rocky / CentOS)ไธญ,SELinux(Security-Enhanced Linux) ๆฏๆ ธๅฟๅฎๅ จๆถๆงไนไธ,่ฒ ่ฒฌ้ๅถ็จๅบ่่ณๆบ้็ๅญๅๆฌ้。 ๆฌๆๅฐๅพๅ็、ๆจกๅผ่จญๅฎ、ๆฅ่ช่งๅฏๅฐๆ ้ๆ้ค,ๅธถไฝ ๅ จ้ข็่งฃ้้ ๅผทๅคง็ๅฎๅ จๆฉๅถ。
๐ ไธ、ไป้บผๆฏ SELinux?
SELinux ๆฏ็ฑ NSA(็พๅๅๅฎๅฑ) ้็ผ็ๅญๅๆงๅถๆฉๅถ,ๆก็จ Mandatory Access Control(MAC), ไธๅๆผๅณ็ตฑ Discretionary Access Control(DAC) ๅชไพ้ ๆชๆกๆๆ่ ่จญๅฎๆฌ้, SELinux ๆดๅดๆ ผๅฐๆ นๆ「็จๅบ้กๅ(Type)」่「ๅฎๅ จไธไธๆ(Context)」ไพๅคๆทๆฏๅฆๅ ่จฑ่ก็บ。
# ๆฅ็็ณป็ตฑๆฏๅฆๅ็จ SELinux
getenforce # Enforcing / Permissive / Disabled
sestatus # ้กฏ็คบๅฎๆด็ๆ
cat /etc/selinux/config
⚙️ ไบ、SELinux ๆจกๅผ่็จ้
- Enforcing:ๅ็จไธฆๅผทๅถๅท่กๅฎๅ จ็ญ็ฅ(ๅปบ่ญฐ้ ่จญ)。
- Permissive:ๅ ่จ้้่ฆ่ก็บ,ไธ้ปๆ(็จๆผๆธฌ่ฉฆ)。
- Disabled:ๅฎๅ จๅ็จ(้ๅๅพ็ๆ)。
# ่จๆๅๆๆจกๅผ(้้ๆฉๅพๅคฑๆ)
sudo setenforce 0 # ๆน็บ Permissive
sudo setenforce 1 # ๆน็บ Enforcing
# ๆฐธไน
่จญๅฎ(้้ๅ)
sudo vi /etc/selinux/config
SELINUX=enforcing
๐งฉ ไธ、ๅฎๅ จไธไธๆ(Security Context)็ตๆง
ๆฏๅๆชๆก、็จๅบ、Port ้ฝๆๅฐๆ็ SELinux Context,ไปฅๅๆฎต่กจ็คบ:
user:role:type:level
ไพๅฆ:
system_u:object_r:httpd_sys_content_t:s0
- user:SELinux ไฝฟ็จ่ ่บซๅ。
- role:่ง่ฒ(ไพๅฆ system_r ่กจ็ณป็ตฑ่ง่ฒ)。
- type:ๆ้่ฆ็้จๅ,ๆงๅถๅชไบ็จๅบๅฏๅญๅ。
- level:ๅฎๅ จ็ญ็ด(ๅค็จๆผ MLS/MCS)。
# ๆฅ็ๆชๆก Context
ls -Z /var/www/html
# ๆฅ็็จๅบ Context
ps -eZ | grep httpd
๐ง ๅ、ๅธธ่ฆๅ้ก่ไฟฎๅพฉ
- HTTPD ็กๆณๅญๅ็ฎ้:Context ้ฏ่ชคๅฐ่ด。
sudo restorecon -Rv /var/www/html
sudo semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?"
sudo restorecon -Rv /srv/www
sudo ausearch -m AVC,USER_AVC -ts recent
sudo journalctl -t setroubleshoot
๐งฐ ไบ、SELinux ่ๅธธ่ฆๆๅๆดๅ
| ๆๅ | ๅธธ่ฆๅธๆๅผ่จญๅฎ | ๆไปค |
|---|---|---|
| HTTPD | ๅ ่จฑ้ฃๅค | setsebool -P httpd_can_network_connect 1 |
| FTP | ๅ ่จฑไธๅณ | setsebool -P ftp_home_dir 1 |
| Samba | ๅ ่จฑๅ ฑไบซๅฎถ็ฎ้ | setsebool -P samba_enable_home_dirs 1 |
๐ ๅ ญ、ๅฏฆๅ่งๅฏ่ๅปบ่ญฐ
- ๅๆฌกๅปบ็ฝฎๆฐๆๅๆ,ๅ
่งๅฏ
/var/log/audit/audit.logๆฏๅฆๆๆ็ต็ด้。 - ๅ็จ
setroubleshootๅทฅๅ ทๆไพไฟฎๆญฃๅปบ่ญฐ。 - ้ฟๅ ็ดๆฅๅ็จ SELinux,่ๆฏ้ๅฐ็นๅฎๆๅ้ๆพๅฐๆๅธๆๅผ。
๐ ็ต่ช
SELinux ไธฆ้้ป็ค,่ๆฏ้ฒๆญข「็ณป็ตฑ่ขซ่ชค็จ」็ๅฎ่ญท่ 。 ๆๆกๅ ถ้ไฝ้่ผฏ่ๅธธ่ฆ่จญๅฎๅพ,ไฝ ๅฐ่ฝ่ฎ Linux ไผบๆๅจๅๆๅ ผๅ ท ็ฉฉๅฎ่ๅฎๅ จ。 ๅปบ่ญฐ่ systemd、Fail2Ban ็ญๅฎๅ จๆจก็ตไธๅไฝฟ็จ,ๅฝขๆๅคๅฑค้ฒ่ญท。
๐ ๅปถไผธ้ฑ่ฎ
- Linux ้ฒ็ซ็่ Fail2Ban ๅฎๅ จๅผทๅๆๅญธ
- Linux systemd ๆทฑๅ ฅ่งฃๆ่ๅๅๆต็จ็ฎก็
- Linux Proxy Server ๅปบ็ฝฎๆๅญธ(Squid)
— WWFandy・็ณป็ตฑ่็ถฒ่ทฏ็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ