[推薦] 用人話說 iptables

Source

https://www.youtube.com/watch?v=H8HxSdSUO9Q

Summary

iptables 透過 netfilter 模組實現,他們的關係就像是門禁系統之於門禁控制器

Q: iptables 是防火牆嗎? A: 他是 client-side 的數據包規則的設置程式,防火牆只是他可以實現的功能之一

Q: ufw, firewalld, nftables 的差別? A: 全部都是一樣的設置程式,其中 nftables 的目的是透過更高效簡單且兼容性高的方式改進 netfilter,比較有未來性

  • netfilter 由 rule + chain + table 組成
    • rule 是一條封包管理策略
    • chain 是封包流動的過程,總結處理三種情況:流入、流出、轉發,包含下列 5 條鏈
      • pre-routing 是封包進入系統後,還沒決定要送到哪個網路介面時的處理
      • input 是封包送到本機的處理
      • forward 是封包送到其他網路介面的處理
      • output 是本機產生的封包處理
      • post-routing 是封包離開系統前的處理
    • table 是一組 chain 的集合,netfilter 內建 4 張表優先級由高至低為下:
      • raw table:處理原始封包,進行封包的追蹤或是追蹤前處理
      • mangle table:拆包、修改再封包的處理
      • nat table:所有地址轉換的操作
      • filter table:防火牆功能的實踐處理

下表為 chain 可作用的 table

鏈表關係 pre-routing input forward output post-routing
raw x x
mangle x x x x x
nat x x (centos 7 only) x x
filter x x x

cmd + /