๐ Linux Firewalld / iptables / nftables:ไธๅคง้ฒ็ซ็ๆดๅ่ๆไฝณๅฏฆๅๅฎๆดๆๅ
Linux ็้ฒ็ซ็ๆ่กๅพๆๆฉๆ็ iptables,ๆผ้ฒๅฐไฝฟ็จ nftables ไฝ็บ็ตฑไธๆถๆง,
ๅๅฐ็พไปฃ็ณป็ตฑๆฎ้ไฝฟ็จ็ Firewalld ไฝ็บ้ซ้็ฎก็ๅทฅๅ
ท。
้ไธ่
ๅธธ่ฎไบบๆๆทท:「ๅฐๅบ่ชฐๆฏไธไธไปฃ?่ชฐๅไปฃ่ชฐ?ๆฏๅฆ่ฝๅๆไฝฟ็จ?」
ๆฌๆๅๅฐ็ณป็ตฑๆง่งฃๆงไธๅคง้ฒ็ซ็็ๅทฎ็ฐ、ๆผ้ฒ้ไฟ、่จญๅฎๆนๆณ่ไผๆฅญ็ดๆไฝณๅฏฆๅ。
ๆ็ซ ๅ
ๅซๆไปค็คบไพ、ๆถๆงๅ、ๆ้ฏๆนๅผ่ๅปบ่ญฐ้จ็ฝฒๆนๅผ,ๅฏ็ดๆฅไฝ็บ่ฆๅ้ฒ็ซ็็ญ็ฅ็ๅ่ๆไปถ。
๐ ไธ、็ธฝ่ฆฝ:ไธๅคง้ฒ็ซ็็ๅฎไฝๅทฎ็ฐ
| ้ ็ฎ | iptables | nftables | Firewalld |
|---|---|---|---|
| ้กๅ | ๅณ็ตฑ้ฒ็ซ็ๆกๆถ | ๆฐไธไปฃ้ฒ็ซ็ๆกๆถ | ็ฎก็ๅทฅๅ ท(ไป้ข) |
| ๅพ็ซฏๆ่ก | iptables | nftables | ๅฏไฝฟ็จ iptables ๆ nftables(ๆฐ็ณป็ตฑ้ ่จญ nft) |
| ไฝฟ็จๆไปค | iptables / iptables-save | nft | firewall-cmd / firewall-config |
| ๅๆ ไฟฎๆน | ไธๆฏๆด(ๆ้่ผ) | ๆฏๆด | ๆฏๆด |
| ่ค้ๅบฆ | ้ซ | ไธญ | ไฝ(Zone + Service) |
ๆ ธๅฟ้้ป:Firewalld ≠ iptables,ไน ≠ nftables。
Firewalld ๆฏ「ๆงๅถๅฐ」,ๅบๅฑคไปๆฏ iptables ๆ nftables。
๐ ไบ、ไธ่ ็ๆผ้ฒ้ไฟ(็ฐกๅฒ)
iptables(ๅณ็ตฑๆกๆถ)
│
│ ← ็ธๅฎนๅฑค(iptables-nft)
▼
nftables(ไธไธไปฃๆกๆถ)
│
└─ Firewalld(้ซ้็ฎก็ๅฑค)
- RHEL / Rocky / CentOS Stream 8 ไนๅพ:Firewalld ้ ่จญไฝฟ็จ nft。
- Ubuntu 20.04 ่ตท้ๆญฅๅๆ,ไฝไป็็ธๅฎนๅฑค。
- iptables ไป่ฝ็จ,ไฝๅทฒๅฑฌ legacy。
๐งช ไธ、ๆฅ็็ฎๅ็ณป็ตฑไฝฟ็จๅชไธ็จฎ้ฒ็ซ็ๆกๆถ
1. Firewalld ๆฏๅฆไฝฟ็จ nft?
firewall-cmd --info-backend
2. ๆฅ็ nftables ๆฏๅฆๅจ้ไฝ
nft list ruleset
3. ๆฅ็ๆฏๅฆไฝฟ็จ iptables-nft ็ธๅฎนๅฑค
iptables -V
iptables v1.8.x (nf_tables)
4. ่ฅ็ๅฐ legacy,่กจ็คบ้ๅจ็จ่ๆถๆง
iptables -V
iptables v1.8.x (legacy)
๐ฅ ๅ、Firewalld:Zone + Service ็็พไปฃ้ฒ็ซ็ๆ็ถญ
Firewalld ็ๆ ธๅฟๆฆๅฟตๆฏ Zone(ไฟกไปป็ดๅฅ),ไธๅๆฏๆๅๆฐๅข Chain。
1. ๆฅ็ๆๆ Zone
firewall-cmd --get-zones
2. ๆฅ็็ถๅไฝฟ็จ็ Zone
firewall-cmd --get-active-zones
3. ๅ็จๅธธ็จๆๅ(ไพๅฆ SSH、HTTP)
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
4. ้ Port
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
5. ๅ ๅ ฅไพๆบ IP ้ๅถ
firewall-cmd --permanent --zone=public --add-rich-rule \
'rule family="ipv4" source address="1.2.3.4" port port="22" protocol="tcp" accept'
Firewalld ็ Rich Rule ๅ่ฝๆฅตๅผท,็ญๅๆผ้ซ้็ iptables ๆไปค。
⚙️ ไบ、iptables:ๅณ็ตฑ้ฒ็ซ็(ไปๆ้จๅๆ็จไพ่ณด)
่็ณป็ตฑไปๅคง้ไฝฟ็จ iptables(ไพๅฆ่็ๅฎนๅจ、Legacy ๆ็จ)。
1. ๆฅ็่ฆๅ
iptables -L -n -v
2. ้ Port
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
3. ๅฒๅญ่ฆๅ
iptables-save > /etc/iptables.rules
4. ๆขๅพฉ่ฆๅ
iptables-restore < /etc/iptables.rules
⚡ ๅ ญ、nftables:็ตฑไธไธ็พไปฃๅ็้ฒ็ซ็ๆกๆถ
nftables ๆฏๆชไพไธปๆต,่ชๆณๆด็ฐกๆฝ、ๆ่ฝๆดๅฅฝ。
1. ๆฅ็ๆๆ่ฆๅ
nft list ruleset
2. ๅปบ็ซไธ็ตๅบๆฌ้ฒ็ซ็่จญๅฎ
table inet filter {
chain input {
type filter hook input priority 0;
ct state established,related accept
iif lo accept
tcp dport 22 accept
tcp dport 80 accept
tcp dport 443 accept
counter drop
}
}
3. ๅฅ็จ
nft -f /etc/nftables.conf
4. ้ๆฉๅฅ็จ
systemctl enable nftables
๐ ไธ、้ฟๅ ๆทท็จ:iptables + nftables ๅ ฑๅญๆ็้ขจ้ช
ๅจ RHEL / Rocky / Ubuntu ๆฐ็็ณป็ตฑไธญ,ๆ็ๅฐ:
- /usr/sbin/iptables ๆๅ nft ็ธๅฎนๅฑค。
- /usr/sbin/iptables-legacy ๅๆฏๅฎๅ จ่ๆกๆถ。
ๆทท็จ้ขจ้ช:
- ๅ ฉ่ ่ฆๅๅๆญฅๅฐ้ฃ。
- iptables ๆไปคๅฏฆ้ๅฏซๅ ฅ็ๆฏ nft,ไธๅฎนๆ่ฟฝ่นค。
- ๆไบๆ็จ(Docker、Kubernetes)ๅฏ่ฝไฝฟ็จไธๅ็ๅฑค。
ๆไฝณๅฏฆๅ:
๐ ่ฅไฝฟ็จ Firewalld,ๅฐฑๅ
จ้จ็ฑ Firewalld ็ฎก็。
๐ ่ฅๆๅ็ฎก็,้ธๆ nft,ไธ่ฆๅๆฐๅข iptables ่ฆๅ。
๐ ่ฅๆ็จไพ่ณด iptables(ๅฆ่่ VPN),ๅ็ตฑไธไฝฟ็จ iptables-legacy。
๐ก ๅ ซ、ไผๆฅญ็ดๆไฝณๅฏฆๅ(้้ป)
- ็ตฑไธๅทฅๅ ท:ไธ่ฆๆทท็จ iptables + nft + Firewalld。
- ็ๆฌๆง็ฎก:ไฝฟ็จ
firewall-cmd --permanentๆnft -f็ดๅ ฅ Git。 - ๅๅฑค็ญ็ฅ:Host Firewall(Firewalld/nft) + Network Firewall(FortiGate/Palo Alto)。
- ๆญ้ systemd:็ขบไฟ้ฒ็ซ็ๆผ boot early ๅๅ。
- ้ปๆ็กไพๆบ็ INPUT:ๆก้ ่จญ DROP。
- ๅ ่จฑ outbound:OUTPUT ้ๅธธๅ ่จฑ,ไฝ่ฆๅฏฉๆ ธๆๆๆๅ。
๐ฉน ไน、ๅธธ่ฆ้ฏ่ชคๆๆฅ
- Firewalld reload ๆท็ท:ไฝฟ็จ
--add-service/portไธๆไธญๆท,้ฟๅ ๆๅไฟฎๆน Zone XML。 - nft ไธ็ๆ:็ขบ่ชๆๅฅ็จ
nft -fไธฆๅ็จ systemd ๆๅ。 - iptables ็ๆ้ ๅบๆช็ฐ:ๅฏ่ฝๆทท็จ legacy ่ nft ็ธๅฎนๅฑค。
- Docker ่ฆ่่ฆๅ:Docker ๆ่ชๅๅปบ็ซ iptables chain,ๅปบ่ญฐๅจๅ ถๅพ่ฟฝๅ ่ฆๅ。
๐ฌ ไบๅ็่จๅผๅฐ(้ฒ็ซ็ๅฏฆๆฐ่จ่ซๅ)
่ฅไฝ ๅจ Firewalld / iptables / nftables ็ไฝ็ฝฒๆๆ้ฏ้ๅฐๅ้ก,ไพๅฆ:
- ่ฆๅๆทท็จไธ็ๆ
- ไฝฟ็จ Docker / Kubernetes ๅพ่ฆๅๆช็ฐ
- nftables ๅฅ็จๅพไธ่ตทไฝ็จ
- ็ณป็ตฑๅ็ดๅพ้ฒ็ซ็ๆกๆถ่ขซๅๆ
ๆญก่ฟ็่จไฝ ็็ณป็ตฑ็ๆฌ、ๆไปค่ผธๅบ่ๆๆจธ,ๆๆๅๅฉๅๆไธฆๆด็ๆ่ฃๅ ็ฏๆดๆฐๅฐๆฌๆ。
๐ ๅปถไผธ้ฑ่ฎ
- ๐ก Linux ๅฎๅ จๅผทๅ:SELinux / AppArmor / Auditd / Fail2Ban ๅฎๆดๆๅ
- ๐ Firewalld / iptables / nftables ๆดๅ็ฏไพ(่็่ฃๅ )
- ๐ Linux ็ฃๆงๅทฅๅ ท:top / htop / glances / nmon / dstat ๅฎๆด่งฃๆ
- ๐️ Linux Logrotate ้ฒ้ๆๅ:Log ่ผช่ฝ、ๅฃ็ธฎ、ๆธ ็่่ชๅๅ
- ๐งฑ Linux NFS ๅฎๆดๆๅ:NFSv3 / v4 / Kerberos / ๆง่ฝ่ชฟๆ ก
— WWFandy・Linux Firewall Notes
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ