๐ง ไผๆฅญ็ด Linux ็กฌๅๅฏฆๆฐ:็ตๅ SELinux ่้ฑ่บซ็ถฒ่ทฏ (Stealth Networking) ็ๆฅต่ด้ฒ่ญท
ไผๆฅญ็ฐๅข็ Linux ้ฒ่ญท,ๆๆๅ ฉ็จฎๆฅต็ซฏ:ๅชๅ่กจ้ข(่ฆๅๅพๅคไฝไธๅฏ้ฉ่ญ),ๆๅๅคช็กฌ(็ญ็ฅๅพๅผทไฝ็กๆณ็ถญ้)。 ๆฌ็ฏไปฅ「ๅฏ่ฝๅฐ、ๅฏ็จฝๆ ธ、ๅฏๅๆปพ」็บ็ฎๆจ,ๆดๅ SELinux(ๅผทๅถๅญๅๆงๅถ)่ ้ฑ่บซ็ถฒ่ทฏ(Stealth Networking)(้ไฝๆด้ฒ้ข)ๅ ฉๆขไธป่ปธ, ๅฐ้ฒ่ญทๅพ「้ ้็」ๅ็ด็บ「้ ็ญ็ฅ่้้」。
ไธ、ๅจ่ ๆจกๅๅ ่ก:ไฝ ่ฆ้ฒ็ๆฏๅชไธ็จฎๅ ฅไพต่ทฏๅพ?
ไผๆฅญๅธธ่ฆๅ ฅไพต่ทฏๅพๅฏ็ฐกๅๆไธ้ก,ไฝ ็็กฌๅ็ญ็ฅไนๆๅฐๆ่จญ่จ:
- ๅค้จๆๆ → ๆๅๅผฑ้ป → ๆๆฌ:ๆปๆ้ข่ถๅคง,่ถๅฎนๆ่ขซๆๅฐไธๆฌกๆๅ。
- ๆ่ญๅคๆดฉ → ็ดๆฅ็ปๅ ฅ → ๆฉซๅ็งปๅ:้้ปๅจ้้่ๆฌ้้็。
- ไพๆ้ / ็จๅผ่ขซ็ฝฎๆ → ้ฒ็จๆฟซๆฌ:้้ปๅจๅผทๅถๅญๅๆงๅถ่ๅฏ็จฝๆ ธๆง。
้ฑ่บซ็ถฒ่ทฏ่ฒ ่ฒฌๆ「ๅ ฅๅฃ」ๆถๆๅฐๆๅฐ;SELinux ่ฒ ่ฒฌๆ「้ฒ็จ่ฝๅ」ๅๅฐๆๅฐ。 ๅ ฉ่ ็ๅ ๅพ,ไฝ ๆๅพๅฐไธๅ้ๅธธๅๅฏฆ็็ตๆ:ๅฐฑ็ฎ่ขซๆ้ฒไพ,ไนๅพ้ฃๅไบ;ๅฐฑ็ฎๅไบไบ,ไนๆดๅฎนๆ่ขซๆๅฐ。
ไบ、ๅบ็ค็กฌๅๅบๅบง:ๅ ๆๆๅฐๆด้ฒ้ขๅๅฐ
1) ้้ไธ้่ฆ็ๆๅ่ๅ
# ๅๅบๆญฃๅจ็ฃ่ฝ็ๅ (ๅ
็ค้ปๆปๆ้ข)
ss -lntup
# systemd ๆๅ็ค้ป(ไพ็ฐๅข่ชฟๆด)
systemctl --type=service --state=running
# ๅ็จไธ้่ฆ็ๆๅ(็คบไพ)
sudo systemctl disable --now avahi-daemon 2>/dev/null || true
sudo systemctl disable --now cups 2>/dev/null || true
2) ๆดๆฐ็ญ็ฅ:ๅฏๆง、ๅฏๅๆปพ、ๅฏ้ฉ่ญ
# ๅปบ่ญฐ:ๅฎๅ
จๆดๆฐๅชๅ
,ไธฆไฟ็ๅๆปพ่ทฏๅพ(ๅฟซ็
ง / ๆ ๅ / ๅฅไปถ็ๆฌ)
# RHEL / Rocky / Alma
sudo dnf -y update
# Debian / Ubuntu
sudo apt update && sudo apt -y upgrade
3) SSH ๅบ็ค็กฌๅ(ไฝไธๆๅฎ็ถๆ้ฑ่บซ)
# /etc/ssh/sshd_config ๅปบ่ญฐ้้ป(็คบไพ)
# PasswordAuthentication no
# PermitRootLogin no
# PubkeyAuthentication yes
# AllowUsers your_admin_user
sudo systemctl restart sshd
ๆณจๆ:SSH ๆนๅ ไธ็ญๆผ้ฑ่บซ;ไฝ ่ฆ็ๆฏ「้ ่จญไธๅฐๅคๅฏ่ฆ」,่้「ๆๅฏ่ฆ็้ๆๅฐๅฅๆข่ก」。
ไธ、SELinux:็จๅผทๅถๅญๅๆงๅถๆ「้ฒ็จๆฟซๆฌ」็ดๆฅๅๆท
1) ๆจกๅผ็ญ็ฅ:Enforcing / Permissive / Disabled
# ๆชขๆฅ็ๆ
getenforce
sestatus
# ็ซๅณๅๆ็บ Enforcing(ไธไธญๆทๆๅ,ไฝๅฏ่ฝๆด้ฒๆขๆ่จญๅฎๅ้ก)
sudo setenforce 1
# ่จญ็บ้ๆฉ้ ่จญ Enforcing
# /etc/selinux/config
# SELINUX=enforcing
2) ไบไปถ็จฝๆ ธ:็จ AVC ่จ้ไพๅฎไฝๅ้ก,่ไธๆฏ「็ดๆฅ้ SELinux」
# ๆฅๆพๆ่ฟ็ SELinux ๆ็ตไบไปถ(AVC)
sudo ausearch -m avc -ts recent
# ไปฅๅฏ่ฎๆนๅผๅฝๆด(้่ฆ setroubleshoot-server / setroubleshoot)
sudo sealert -a /var/log/audit/audit.log 2>/dev/null || true
3) ๅธธ่ฆ่ฝๅฐๅ ดๆฏ:Web / ๅๅไปฃ็ / ่ชๅปบๆๅ
ไปฅไธ็คบไพไปฅ「้่ฆ้ๆพๅฐๅคๆๅ」็บไพ,ไฝๅพ็บๆ็จ้ฑ่บซ็ถฒ่ทฏๆๅ ฅๅฃๆถๆๅฐๅฏไฟก้้。
# HTTP/HTTPS ๆๅ้่ฆ้ๆพ(SELinux boolean ไพๆ
ๅข่ชฟๆด)
sudo setsebool -P httpd_can_network_connect on
# ๆชๆกๆจ็ฑค(context)ๆฏ่ฝๅฐๆๆ้้ต:ไธ่ฆๅช chmod 777
# ไพ:ๆ web ๆ น็ฎ้ๅฅ็จๅฐ่ชๅฎ็พฉ่ทฏๅพ
sudo semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?"
sudo restorecon -Rv /srv/www
4) ่ฌนๆ ๅฐๅพ audit2allow:ๅฏไปฅ็จ,ไฝไธ่ฆ「็ก่ ฆๅ จๆพ」
audit2allow ็ๆญฃ็ขบ็จๆณๆฏ「้ๅฐๆ็ขบ้ๆฑ、ๆๅฐๅๆพ่ก」,ไธฆไธ่ฆๆๆจก็ต็ดๅ ฅ่ฎๆด็ฎก็(็ๆฌๆง็ฎก่ๅๆปพ)。 ๅจไผๆฅญ็ฐๅขไธญ,้้กๆจก็ตๆๆฏ็ ง่จญๅฎ่ฎๆดๆต็จ(ๅซๅฏฉๆ ธ่ไธ็ท็ชๅฃ)。
# ๅช็คบ็ฏๆต็จ่งๅฟต:่ซๅ
็ขบ่ชๆ็ตไบไปถๆฏๅฆ็บ『ๅ็้ๆฑ』
sudo grep AVC /var/log/audit/audit.log | tail -n 50
# ็ขๅบๆๅฐๆจก็ต(็คบๆ,ๅฏฆๅ่ซๅ
ๅฏฉๆฅ่ฆๅๅ
งๅฎน)
# sudo ausearch -m avc -ts recent | audit2allow -M local_fix
# sudo semodule -i local_fix.pp
ๅ、้ฑ่บซ็ถฒ่ทฏ(Stealth Networking):่ฎไฝ ็ๆๅ「้ ่จญไธๅฏ่ฆ」
1) ๆ ธๅฟๅๅ(ไผๆฅญ็ๅฎ็พฉ)
- ้ ่จญๆ็ต(Default Deny):ๆๆ inbound ๅ ๅฐ,ๅๆ้้。
- ๅฏไฟก้้ๅชๅ :็ฎก็้ข่ๆๆๆๅๅช่ตฐ VPN / ่ทณๆฟๆฉ / mTLS。
- ๅฏๆๆ้ขๆๅฐๅ:ไธ่ฆ่ฎ「ๆๅพๅฐ」่ฎๆ「่ฝๆ」็่ตท้ป。
- ๅฏ็จฝๆ ธ:ๆฏไธๅ้ๆพ้ฝ่ฝๅฐๆๅฐ้ๆฑ่่ฒฌไปปไบบ。
2) ไผๆฅญๅธธ่ฆ่ฝๅฐๆถๆง(ๅปบ่ญฐๅชๅ ้ ๅบ)
- VPN Overlay(ไพๅฆ WireGuard):ๆ็ฎก็้ขๅ ฅๅฃ็งปๅฐ็งๆ้้。
- Bastion / Jump Host:้ไธญ็ฎก็้ข,ๅฐๅคๅช็ไธๅๅๆงๅ ฅๅฃ。
- ๅฎๅฐๅ ๆๆฌ(SPA):ๆฏๅณ็ตฑ Port Knocking ๆดๆ้ๆพ、ๆดๆ็จฝๆ ธ。
- ๅพฎๅๆฎต(ไธปๆฉๅฑค้ฒ็ซ็):็จ nftables / firewalld ๆๆฑ่ฅฟๅๆต้ๅไนพๆทจ。
3) ๅบ็คๅๆณ:firewalld / nftables ๆก「ๅช้้่ฆ」
# firewalld:้ ่จญๅๅ่ฆๅ(็คบไพ:ๅ
็ขบ่ชไฝ ๅจๅชๅ zone)
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --list-all
# ไธ่ฆไธๆฌก้ๅคชๅค,ๅ
ไปฅ็ฎก็/ๅฟ
่ฆๆๅ็บๆๅฐ้ๅ
# (็คบไพ)ๅช้ 443;SSH ๆนๆๅชๅ
่จฑ VPN ๆ็นๅฎไพๆบ
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
4) ๆจ่ฆๅๆณ:SSH ไธๅฐๅค้ๆพ,ๅชๅจ VPN ไธๅฏ้
้ๆฏ「้ฑ่บซ」ๆ็ด่ง็่ฝๅฐ:ๆ SSH ็ถๅจ VPN ไป้ขๆๅ ง็ถฒไป้ข;ๅ ฌ็ถฒๅช็ๅฟ ่ฆ็ๆฅญๅๅ ฅๅฃ(็่ณๅช็ๅๅไปฃ็)。
# ๆฆๅฟต็คบไพ:่ฎ sshd ๅช็ฃ่ฝ็นๅฎไป้ข/IP(ไพไฝ ็ VPN/ๅ
ง็ถฒ IP ่ชฟๆด)
# /etc/ssh/sshd_config
# ListenAddress 10.10.10.1
sudo systemctl restart sshd
# ๆญ้
้ฒ็ซ็:ๅชๅ
่จฑ VPN ็ถฒๆฎตๅญๅ 22
# firewalld rich rule(็คบไพ)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.10.10.0/24" port port="22" protocol="tcp" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="22" protocol="tcp" drop'
sudo firewall-cmd --reload
5) Port Knocking vs SPA:ไผๆฅญๅปบ่ญฐ
Port Knocking ็ๅนๅผๅจ「้ไฝๆๆๆด้ฒ」,ไฝๅจ้ซๅฐๆๆ ๅขไธไปๅฏ่ฝ้ๅฐ้ๆพ、่ฆๅ็น่ก่็ถญ้ๅฐ้ฃ。 ่ฅไฝ ้่ฆๆดไผๆฅญๅ็ไฝๆณ,ๅปบ่ญฐ่ฉไผฐ SPA(Single Packet Authorization) ้กๆนๆก,ๆ「ๆๆฌ」่ฎๆๅฏ็จฝๆ ธไบไปถ。
ไบ、ๆๅ ฉ่ ็ๅ :SELinux × ้ฑ่บซ็ถฒ่ทฏ็「้ๅฑคไฟ่ญท」
1) ๅ ธๅๆปๆ้็้ปๆท้ป
- ๆๆ → ๆพๆๅ:้ฑ่บซ็ถฒ่ทฏ่ฎๆๅ้ ่จญไธๅฏ่ฆ,ๆๆๅฝไธญ็ไธ้。
- ๅฝไธญ → ๆๅผฑ้ป:ๅฐฑ็ฎๆๅ่ขซๆๅฐ,SELinux ้ๅถ้ฒ็จ่ฝๅ็ไบ(ไพๅฆ่ฎๆๆๆช、ๅท่กๆชๆๆฌๆไฝ)。
- ๆๆฌ → ๆดๅคง็ ดๅฃ:ๆญ้ ๆๅฐๆฌ้่็จฝๆ ธ(auditd),่ฎ「ๅฏ็่ก็บ」ๆดๅฎนๆ่ขซ็ผ็พ่่ฟฝ่นค。
2) ไผๆฅญ็ถญ้้้ป:ๆ็ญ็ฅๅๆ「ๅฏ้ฉ่ญ」
# ็จฝๆ ธ่่งๆธฌ:ๅปบ่ญฐๆๅฐ่ฆๅๅฐ
# 1) ๅฏๅๆบฏ็็ปๅ
ฅ่ป่ทก
last -a | head
# 2) ๅฏๅๆบฏ็ๆฌ้/ๆๆไบไปถ(ไพ็ฐๅขๆดๅ
่ฆๅ)
sudo systemctl enable --now auditd 2>/dev/null || true
sudo ausearch -ts today | tail -n 50
่ฅไฝ ๆ SIEM / ๆฅ่ชๅนณๅฐ(ไพๅฆ ELK、Splunk、Wazuh),ๅปบ่ญฐๆ SELinux AVC、sudo、sshd、firewalld/nftables ไบไปถ้ไธญๅ, ๆ「่ฆๅ」ๆๅๆ「ๅฏ่งๆธฌ็ๆงๅถ้ป」。
ๅ ญ、ๆๅฐๅฏ่ฝๅฐๆนๆก(็ตฆ็ๆญฃ่ฆไธ็ท็ไบบ)
ๅฆๆไฝ ๅธๆ็จๆ็ญๆ้ๆ้ฒ่ญทๆๅฐๅฏ็จๆฐดไฝ,ๅปบ่ญฐๅ ๅฎๆไปฅไธ 7 ไปถไบ:
✅ 1. ็ค้ปไธฆ้้ไธๅฟ
่ฆๆๅ(ไปฅ ss/systemctl ้ฉ่ญ)
✅ 2. SSH ๅ็จๅฏ็ขผ็ปๅ
ฅ、็ฆ็จ root ็ด็ป、็ดๅ
ฅ้้ฐ่็ฝๅๅฎ
✅ 3. ้ฒ็ซ็ๆน Default Deny:ๅ
ฌ็ถฒๅช็ๅฟ
่ฆๅ
ฅๅฃ(ไพๅฆ 443)
✅ 4. SSH ไธๅฐๅคๅฏ้:ๅชๅ
่จฑ VPN/ๅ
ง็ถฒ(้ฑ่บซ็ฎก็้ข)
✅ 5. SELinux ่จญ็บ Enforcing,ไธฆๅปบ็ซ AVC ็จฝๆ ธ่็ๆต็จ
✅ 6. auditd ๅ็จ,้้ตไบไปถๅฏ่ฟฝๆบฏ(่ณๅฐ็ปๅ
ฅ/ๆๆฌ/ๆ็ตไบไปถ)
✅ 7. ๅ
จ้จ่ฎๆดๅฏๅๆปพ:ๅฟซ็
ง/ๅไปฝ/็ๆฌๆง็ฎก(้ฟๅ
็กฌๅๆ่ชๅทฑ้ๆญป)
ไธ、ๅธธ่ฆ่ธฉ้ท่ๆ้คๆนๅ
1) 「SELinux ๆไฝๆๅ」ๆ้บผ่พฆ?
- ๅ ๆฅ AVC ไบไปถ,ๅๅคๆทๆฏ「้ ็ฝฎ้ฏ่ชค」้ๆฏ「็็้่ฆๆพ่ก」。
- ๅชๅ ็จๆญฃ็ขบ็ๆชๆกๆจ็ฑค(fcontext/restorecon)่ boolean,่ไธๆฏ็ดๆฅ้ SELinux。
2) 「้ฑ่บซ็ถฒ่ทฏ」ๆ่ชๅทฑ้ๅจ้ๅค
- ไธ็ทๅๅ ่จญ่จ Break Glass:ไฟ็็ทๆฅ้้(ไพๅฆ out-of-band、ๆง็ฎกๅฅฝ็่จๆ็ฝๅๅฎ)。
- ๆๆๅฐ้่ฆๅๅ ๅจ็ถญ่ญท็ชๅฃๅฅ็จ,ไธฆๅ้ ็ซฏๅๅพฉ่จ็ซ(ๅๆปพๅฝไปค/ๅฟซ็ ง)。
3) ๅช้ ้ฒ็ซ็ไธๅค ,็บไฝ้่ฆ SELinux?
- ้ฒ็ซ็่งฃๆฑบ「่ฝไธ่ฝ้ฒไพ」,SELinux ่งฃๆฑบ「้ฒไพๅพ่ฝๅไป้บผ」。
- ๅจๅฎนๅจๅ/ๅคๆๅๅ ฑๅญ็ฐๅข,SELinux ๆฏๅ้ๆๅ้็็้้ตๅทฅๅ ทไนไธ。
ๅปถไผธ้ฑ่ฎ
- ๐ง Linux SSH ็กฌๅๅฏฆๆฐ:MFA、Fail2ban ่้ขจ้ชๆง็ฎกๆๅ
- ๐ง Docker ๅฎๅ จๆไฝณๅฏฆๅ:Rootless ่ๆ ๅๆๆ่ฝๅฐ
- ๐ง Linux sysctl × Nginx ้ซไฝต็ผ่ชฟๆ ก:ๆ่ฝ่้ขจ้ชไธๆฌก้กงๅฅฝ
- ๐ง Linux ้ๆฉๆต็จๆทฑๅ ฅ่งฃๆ:BIOS/UEFI → GRUB → Kernel → systemd
- ๐ง Linux Proxy Server ๅปบ็ฝฎๆๅญธ:Squid ๅฎ่ฃ่่จญๅฎๆๅ
— WWFandy・ไธป้ก็ญ่จ
๐ฌ ็่จไบๅ|ไฝ ็็ฐๅข่่ธฉ้ท็ถ้ฉๆๆๅนๅผ
ๅฆๆไฝ ๆญฃๅจๅ Linux ็กฌๅๆๅฐๅ ฅ SELinux / ้ฑ่บซ็ถฒ่ทฏ,ๆญก่ฟๅจไธๆน็่จๅไบซ: ไฝ ็็ผ่ก็(RHEL/Rocky/Alma/Debian/Ubuntu)、็ฎๅ SELinux ๆจกๅผ、ไฝ ๆก็จ็ VPN/่ทณๆฟๆฉๆนๆก、 ไปฅๅไฝ ้ๅฐ็ AVC ๆ็ตๆ้ฒ็ซ็้ๆญป็ๆณ。ไฝ ๆไพ็ๆ ๅข,่ฝ่ฎ้ไปฝๅฏฆๆฐๆธ ๅฎๆดๆฅ่ฟไผๆฅญ็พๅ ด。
ๅๅพ็่จๅ