๐งฉ Linux ๅฎๅ จๅผทๅๅฏฆๆฐ:Firewalld、SELinux ่ Fail2Ban ๆดๅๆๅ
ๅจไผๆฅญ็ด Linux ็ฐๅขไธญ,ๅฎๅ จ้ฒ่ญทไธๆๅช้ ๅฎไธๆฉๅถ。 ๆฌ็ฏๅฐๅพ Firewalld、SELinux ่ Fail2Ban ไธ่ ็ๅๅ้ไฝๅบ็ผ, ๅธถไฝ ไธๆญฅๆญฅๅปบ็ซๅคๅฑค้ฒ็ฆฆๆถๆง,ๅ ผ้กงๅๆ ๅฐ้、ๆฌ้้้ข่ๆๅๆ็บ้่ก。
๐ ไธ、Firewalld:ๅๅๅ้ฒ็ซ็็ฎก็
Firewalld ๆฏ RHEL / CentOS / Rocky ็้ ่จญ้ฒ็ซ็ๆกๆถ, ไปฅ「zone」็บๆ ธๅฟๆฆๅฟต,่ฝ้ๅฐไธๅไป้ขๆๆๅ่จญๅฎๅฎๅ จๅฑค็ด。
# ๆชขๆฅ็ถๅ zone ่ๅ็จ็ๆ
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --get-default-zone
# ๆฐๅขๆๅๅ
่จฑ
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=ssh --permanent
# ้ๆฐ่ผๅ
ฅ่จญๅฎ
sudo firewall-cmd --reload
# ่ช่จ port ็ฏไพ
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
/etc/firewalld/zones/ ไธๆไน
ๅ่ช่จ XML ้
็ฝฎ。
๐ ไบ、SELinux:ๆฌ้้้ข่้ฒ็ฏๅ ง้จๅ ฅไพต
SELinux(Security-Enhanced Linux)้้ๅฎๅ จไธไธๆๆงๅถ็จๅบ่ๆชๆกๅญๅ, ๆๆ้ปๆญขๆๅ่ขซๆๆฌๆ็ซๆน。้็ถ่จฑๅคไฝฟ็จ่ ้ธๆ้้ๅฎ,ไฝๆญฃ็ขบ่จญๅฎ่ฝๆฅตๅคงๅ็ณป็ตฑ้ฒ่ญท。
# ๆฅ็็ถๅๆจกๅผ
getenforce
# ๆฐธไน
ไฟฎๆน็บ enforcing
sudo setenforce 1
sudo vi /etc/selinux/config
SELINUX=enforcing
# ๆฅ่ฉข่ขซๅฐ้็ๆไฝ่จ้
sudo ausearch -m avc -ts recent
sudo sealert -a /var/log/audit/audit.log
่ฅๆ็จๅ SELinux ๅฐ้่ๅคฑๆ,ๅฏๅฉ็จ audit2allow ่ชๅ็ๆๅ
่จฑ่ฆๅ:
sudo cat /var/log/audit/audit.log | audit2allow -M mypolicy
sudo semodule -i mypolicy.pp
๐งฑ ไธ、Fail2Ban ๆดๅ Firewalld ๅๆ ้ฒ่ญท
้้ action ่ ณๆฌ,Fail2Ban ๅฏ่ Firewalld ๅๆ ๆดๅ,้ๆๅณๆๅฐ้่่ชๅ่งฃๅฐ。
# ็ทจ่ผฏ jail.local(ๅ
็คบๆ)
[sshd]
enabled = true
filter = sshd
action = firewallcmd-ipset
logpath = /var/log/secure
maxretry = 5
bantime = 900
ๆชขๆฅๆดๅ็ๆ :
sudo fail2ban-client status
sudo firewall-cmd --info-ipset=fail2ban-sshd
firewallcmd-ipsetๆๅปบ็ซๅๆ IP ้ๅ(ipset),ไธฆ็ฑ Firewalld ๆฅ็ฎกๅฐ้。- ๅฐ้่ฆๅไธๆๅจ reboot ๅพ้บๅคฑ,็ขบไฟๆ็บ้ฒ่ญท。
⚙️ ๅ、ไธ่ ๆดๅๆถๆง็คบๆ
- Firewalld:้ๆ ้ฒ่ญท(้ ่จญ zone、ๆๅๅ ่จฑ)。
- Fail2Ban:ๅๆ ๅฐ้(ๅณๆๅๆ็ฐๅธธ่ก็บ)。
- SELinux:ๅ งๅฑคๅผทๅถๆง็ฎก(้ฒๆญข็จๅผ่ถๆฌ)。
[ๅค้จๆปๆ] → Firewalld → Fail2Ban(่ชๅๅฐ้ IP)
↓
SELinux(้ฒๆญขๆๆฌ)
↓
systemd(็ฉฉๅฎ้ไฝ)
๐งญ ไบ、่กๅๆธ ๅฎ
✅ ็ขบ่ช Firewalld zone ่ๆๅ้ ็ฝฎๆญฃ็ขบ ✅ ๅ็จ SELinux ไธฆไฝฟ็จ audit2allow ่็่ชคๅฐ ✅ ๆผ Fail2Ban action ไธญๅ็จ firewallcmd-ipset ✅ ้ฉ่ญๅฐ้ IP ๆฏๅฆๅๆญฅๅๆ ๆผ ipset ✅ ๅปบ็ซๆฏๆฅๅฐ้ๅ ฑๅ(crontab + fail2ban-client)
๐ ็ต่ช
Linux ็ๅฎๅ จๆงไธฆ้ไพ่ชๅฎไธๆไปค,่ๆฏๅคๅฑคๅๅ็็ตๆ。 ้้ Firewalld ็ฎก็็ถฒ่ทฏ้็、SELinux ไฟ่ญทๅ ง้จ่ณๆบ、Fail2Ban ๅๆ ๅฐ้ๆปๆ, ไฝ ๅฐฑ่ฝๅปบ็ซๅ ผ้กงๅฝๆง่็ฉฉๅฎ็ไผบๆๅจๅฎๅ จ้ฒ็ท。
๐ ๅปถไผธ้ฑ่ฎ
- ๐ง Linux systemd ๆทฑๅ ฅ่งฃๆ่ๅๅๆต็จ็ฎก็
- ๐ Fail2Ban + iptables ้ฒๆดๅ็ ด่งฃๅฏฆๆฐ(SSH ่ๅธธ่ฆๆๅ)
- ๐ง Linux Proxy Server ๅปบ็ฝฎๆๅญธ(Squid ๅฎ่ฃ่่จญๅฎๆๅ)
— WWFandy・Linux ๅฎๅ จๅผทๅ็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ