็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿ›ก Linux ๅฏฆๆˆฐ้˜ฒ็ฆฆ:Firewalld、iptables ่ˆ‡ nftables ็š„ๆ•ดๅˆ็ญ–็•ฅ่ˆ‡ๆœ€ไฝณๅฎ‰ๅ…จๆžถๆง‹

    ๐Ÿ›ก Linux ๅฏฆๆˆฐ้˜ฒ็ฆฆ:Firewalld、iptables ่ˆ‡ nftables ็š„ๆ•ดๅˆ็ญ–็•ฅ่ˆ‡ๆœ€ไฝณๅฎ‰ๅ…จๆžถๆง‹

    ๅœจ็พไปฃ Linux ็ณป็ตฑไธญ,้˜ฒ็ซ็‰†ๅทฅๅ…ทๅŒ…ๆ‹ฌ iptables、nftables ่ˆ‡ firewalld。 ๅพˆๅคšไบบไธ็Ÿฅ้“ๆ‡‰่ฉฒไฝฟ็”จๅ“ชไธ€ๅ€‹、ไธ‰่€…ๆ˜ฏๅฆๆœƒ่ก็ช、ไปฅๅŠๅฆ‚ไฝ•ๅœจไผๆฅญ็’ฐๅขƒๅปบ็ซ‹ไธ€ๅ€‹็ฉฉๅฎšๅˆๅฎ‰ๅ…จ็š„ Firewall ๆžถๆง‹。

    ๆœฌๆ–‡ๅฐ‡็”จๆœ€ๅฎŒๆ•ด็š„ๆ–นๅผๅธถไฝ ็†่งฃไธ‰่€…็š„ๅทฎ็•ฐ、็›ธๅฎนๆ€ง、ๆ•ดๅˆๆ–นๅผ่ˆ‡ๅฏฆๆˆฐ็ญ–็•ฅ,ไธฆๆไพ›ๅฏฆ้š›ๆžถๆง‹ๅœ–、่จญๅฎš็ฏ„ไพ‹่ˆ‡ๆœ€ไฝณๅฏฆๅ‹™。


    ๐Ÿ“Œ ไธ€、Firewalld、iptables、nftables ็š„่ง’่‰ฒ่ˆ‡ๅทฎ็•ฐ

    ้˜ฒ็ซ็‰†ๅทฅๅ…ท ๅฎšไฝ ็‰น่‰ฒ
    iptables ๅ‚ณ็ตฑ้˜ฒ็ซ็‰†ๅพŒ็ซฏ ๆˆ็†Ÿ็ฉฉๅฎš,ไฝ†่ฆๅ‰‡้›ฃ็ถญ่ญท、ๆ•ˆ่ƒฝๆœ‰้™
    nftables ๆ–ฐไธ–ไปฃ้˜ฒ็ซ็‰†(iptables ็š„็นผๆ‰ฟ่€…) ๆ•ˆ่ƒฝๆ›ด้ซ˜、่ชžๆณ•็ตฑไธ€、ๅ–ไปฃ iptables
    firewalld ๅ‰็ซฏ็ฎก็†ๆก†ๆžถ(API) ้ฉๅˆไผๆฅญ、็ณป็ตฑ็ฎก็†,่‡ชๅ‹•ไฝฟ็”จ nftables

    ่‡ช RHEL / CentOS 8 ่ตท,firewalld ๅทฒๆญฃๅผๅˆ‡ๆ›ๅˆฐ nftables backend,ๅ› ๆญค firewalld ไธŽ nftables ไธๆœƒ่ก็ช。


    ๐Ÿ“Œ ไบŒ、ไธ‰่€…็š„ๆ•ดๅˆ้—œไฟ‚(ASCII ๆžถๆง‹ๅœ–)

    ้˜ฒ็ซ็‰†ๅฎŒๆ•ดๆžถๆง‹
    ---------------------------------
               firewalld
               (ๆŽงๅˆถ API ๅฑค)
                     |
                     v
                 nftables
               (ๅพŒ็ซฏๆ ธๅฟƒ)
                     |
                     v
             Netfilter / Kernel
      

    ้‡้ปž:

    • Firewalld ๆ˜ฏๅ‰็ซฏๅทฅๅ…ท,่ฒ ่ฒฌ็ฎก็† zones、services、runtime/permanent ่จญๅฎš
    • nftables ๆ˜ฏ็œŸๆญฃ็š„ๅพŒ็ซฏๅŸท่กŒ่€…
    • iptables ๅœจๆ–ฐ็ณป็ตฑๆœƒ่ฝ‰็‚บ nftables ็›ธๅฎนๅฑค

    ๅ› ๆญคๅœจ 2023~2025 ๅนด็š„ Linux ็’ฐๅขƒไธญ,ๆœ€ๆŽจ่–ฆ็š„็ต„ๅˆๆ˜ฏ: Firewalld(ๅ‰็ซฏ) + nftables(ๅพŒ็ซฏ)


    ๐Ÿ“Œ ไธ‰、ไฝ ็š„ Linux ็ณป็ตฑ็พๅœจไฝฟ็”จๅ“ช็จฎ backend?(ๅฟซ้€Ÿ็ขบ่ช)

    sudo firewall-cmd --state
    sudo firewall-cmd --info-zone=public
    
    # ๆŸฅ็œ‹ firewalld backend
    sudo firewall-cmd --system-info
    
    # ๆŸฅ็œ‹ nftables ๆ˜ฏๅฆ้‹ไฝœไธญ
    sudo nft list ruleset
    
    # ๆŸฅ็œ‹ iptables ๆ˜ฏๅฆ่ฝ‰็‚บ nft backend
    sudo iptables -L -n --wait
      

    ่‹ฅไฝ ็œ‹ๅˆฐ nft ๅญ—ๆจฃ,ไปฃ่กจ็ณป็ตฑๅทฒๅˆ‡ๆ›ๅˆฐ nftables。


    ๐Ÿ“Œ ๅ››、ๆœ€ไฝณๅฎ‰ๅ…จ็ญ–็•ฅ:Firewalld + nftables(ไผๆฅญๆžถๆง‹)

    ๅœจไผๆฅญ็’ฐๅขƒไธญ,ๅปบ่ญฐไฝฟ็”จ Firewalld ไพ†็ฎก็†้˜ฒ็ซ็‰†,ไธฆ่ฎ“ nftables ไฝœ็‚บๅพŒ็ซฏๅŸท่กŒ่€…。

    ✔ ็ฎก็†ๅ“กๅชๆ“ไฝœ firewalld(็ฐกๅ–ฎ)

    sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
    sudo firewall-cmd --reload
      

    ✔ ็ณป็ตฑๅพŒ็ซฏ็”ฑ nftables ่‡ชๅ‹•็”Ÿๆˆ่ฆๅ‰‡(ๆ•ˆ่ƒฝ้ซ˜)

    sudo nft list ruleset
      

    ้€™ๆจฃๅฏไปฅ้ฟๅ…ไบบๅทฅ็ฎก็† iptables ็š„่ค‡้›œๅบฆ,ไนŸ่ƒฝ้ฟๅ…่ฆๅ‰‡ไบ’็›ธ่ก็ช。


    ๐Ÿ“Œ ไบ”、Firewalld ๅธธ็”จ Zone ่จญ่จˆ(ๆœ€ไฝณๅฏฆๅ‹™)

    Zone ็”จๆ–ผ้™ๅˆถไธๅŒ็ถฒๆฎต็š„ๆฌŠ้™,ๅปบ่ญฐๅฆ‚ไธ‹:

    • public:ๅฐ Internet ้–‹ๆ”พ(ๆœ€ๅฎ‰ๅ…จ、้™ๅˆถๆœ€ๅคš)
    • internal:ๅ…ง็ถฒ,ๅƒ…ๅ…่จฑ็‰นๅฎšๆœๅ‹™
    • trusted:ๅฎŒๅ…จไฟกไปป,ไพ‹ๅฆ‚็ฎก็† VLAN
    • drop:ๅฎŒๅ…จๅฐ้Ž–,ไธๅ›žๆ‡‰

    ็ฏ„ไพ‹:ๆŠŠ็ฎก็† VLAN ่จญๅฎš็‚บ trusted

    sudo firewall-cmd --zone=trusted --add-source=10.10.0.0/24 --permanent
    sudo firewall-cmd --reload
      

    ๐Ÿ“Œ ๅ…ญ、Firewalld ็พไปฃๅŒ–ๆœๅ‹™็ฎก็†(services)

    ไธๅฟ…ๅ†ๆ‰‹ๅ‹•ๅฏซๆฏๅ€‹ port,ๅฏไปฅ็›ดๆŽฅไฝฟ็”จ「ๆœๅ‹™ๆจกๆฟ」:

    sudo firewall-cmd --zone=public --add-service=http --permanent
    sudo firewall-cmd --zone=public --add-service=https --permanent
    sudo firewall-cmd --reload
      

    ไฝ ไนŸๅฏไปฅๆ–ฐๅขž่‡ช่จ‚ๆœๅ‹™:

    sudo nano /etc/firewalld/services/myservice.xml
    
    
      MyService
      
    
    
    sudo firewall-cmd --reload
      

    ๐Ÿ“Œ ไธƒ、iptables ่ˆ‡ nftables ๅ…ฑๅญ˜ๆœƒไธๆœƒ่ก็ช?

    ็ญ”ๆกˆ:ๅœจๆ–ฐ็ณป็ตฑไธญไธๆœƒ。

    iptables ๆŒ‡ไปคๆœƒ่‡ชๅ‹•่ฝ‰ๆ›ๆˆ nftables ่ฆๅ‰‡。 ๅ”ฏไธ€ไธๅปบ่ญฐ็š„ๆƒ…ๆณ:

    • ❌ ๅŒๆ™‚ๅคง้‡ๅฏซ iptables ๆ‰‹ๅ‹•่ฆๅ‰‡ + ไฝฟ็”จ firewalld
    • ❌ ไบบๅทฅ็ทจ่ผฏ /etc/sysconfig/iptables + firewalld

    ่‹ฅไฝ ่ฆ็”จ firewalld,ๅฐฑ ไธ่ฆๅฏซ iptables rules。 ่‹ฅไฝ ่ฆ็ด” nftables,ๅฐฑ ไธ่ฆ็”จ firewalld


    ๐Ÿ“Œ ๅ…ซ、ไผๆฅญๅฏฆๆˆฐๆžถๆง‹:ไธ‰ๅฑค Firewall ่จญ่จˆ

    Layer 1:ๅŸบ็คŽ้˜ฒ็ซ็‰†(firewalld)
        └── ports、services、zones
    
    Layer 2:็ดฐ็ฒ’ๅบฆ็ญ–็•ฅ(nftables ๅŽŸ็”Ÿ)
        └── ้™ๅˆถๆต้‡ๅคงๅฐ、port-range、็‹€ๆ…‹ๆชขๆŸฅ
    
    Layer 3:ๆ‡‰็”จๅฑคไฟ่ญท
        └── Fail2Ban、WAF、Rate Limit
      

    ้€™็จฎๆžถๆง‹ๅฏ็ขบไฟ:

    • ๆ•ˆ่ƒฝๆœ€ไฝณ
    • ่ฆๅ‰‡ไนพๆทจ、ไธไบ’็›ธ่ก็ช
    • ็ฌฆๅˆ็พไปฃ Linux(RHEL 8+ / Ubuntu 22.04+)ๆžถๆง‹

    ๐Ÿ“Œ ไน、ๅฎŒๆ•ด Firewalld + nftables ๅฎ‰ๅ…จๅŸบ็คŽ้…็ฝฎ(ๅปบ่ญฐ)

    sudo systemctl enable firewalld --now
    sudo firewall-cmd --set-default-zone=public
    
    # SSH ้™ๅˆถ
    sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
    
    # ้™ๅฎš็ฎก็† VLAN
    sudo firewall-cmd --zone=trusted --add-source=10.10.0.0/24 --permanent
    
    # ไฝฟ็”จๆœๅ‹™ๆจกๆฟ
    sudo firewall-cmd --zone=public --add-service=https --permanent
    sudo firewall-cmd --zone=public --add-service=http --permanent
    
    sudo firewall-cmd --reload
      

    ๆœ€ๅพŒๆชขๆŸฅ nftables ่ฆๅ‰‡:

    sudo nft list ruleset
      

    ๐Ÿ“Œ ๅ、็ต่ซ–:ไฝ ๆ‡‰่ฉฒๆŽก็”จไป€้บผๆžถๆง‹?

    ๐Ÿ”ฅ ๆœ€ๆŽจ่–ฆ(ไผๆฅญ็’ฐๅขƒ):Firewalld + nftables

    • ็ฎก็†็ฐกๅ–ฎ(Zone、ๆœๅ‹™ๆจกๆฟ)
    • ่ฆๅ‰‡ๆธ…ๆฅš、็ตๆง‹ๅŒ–
    • ๆ•ˆ่ƒฝ้ซ˜(nftables backend)
    • ่ˆ‡ SELinux、Fail2Ban、Auditd ๅฎŒๅ…จ็›ธๅฎน

    ๐Ÿ”ฅ ่‹ฅไฝ ๆ˜ฏ้€ฒ้šŽไฝฟ็”จ่€…:็ด” nftables

    ❌ ไธๅปบ่ญฐๆ–ฐ็ณป็ตฑไฝฟ็”จๅคง้‡ iptables ่ฆๅ‰‡(ๆœƒๆ…ข、้›ฃ็ถญ่ญท)

    ไฝฟ็”จ Firewalld ไฝœ็‚บๅ‰็ซฏ、nftables ไฝœ็‚บๅพŒ็ซฏ, ๅฐฑ่ƒฝ่ฎ“ Linux ็š„้˜ฒ็ซ็‰†่จญ่จˆๆ›ดๅฎ‰ๅ…จ、ๅฏ็ถญ่ญท、ๆ•ˆ่ƒฝๆ›ด้ซ˜,ไธฆ้ฟๅ…ไธ‰่€…่ก็ช。

    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš