Netfilter

CHAIN

  • INPUT:經網卡進入的封包

  • OUTPUT:經網卡出去的封包

  • FORWARD:經網卡進入 \/ 出去轉送的封包

  • PREROUTING:改變經網卡進入的封包狀態 ( DNAT \/ REDIRECT )

  • POSTROUTING:改變經網卡出去的封包狀態 ( SNAT \/ MASQUERADE )

TABLE

  • filter:可以處理 INPUT、OUTPUT、FORWARD 封包狀態 (Default)

  • nat:可以處理 OUTPUT、PREROUTING、POSTROUTING 封包狀態

  • mangle:可以處理 INPUT、OUTPUT、FORWRD、PREROUTING、POSTROUTING

Packet STATE

  • NEW:一個新的連線封包 (建立新連線後的第一個封包)

  • ESTABLISHED:成功建立的連線,即建立追蹤連線後所有封包狀態 (跟在 NEW 封包後面的所有封包)

  • RELATED:新建連線,由 ESTABLISHED session 所建立的新獨立連線 (ex. ftp-data 連線)

  • INVALID:非法連線狀態的封包 (DROP 封包)

  • UNKOWN:不明連線狀態的封包

Policy and TARGET

  • ACCEPT:允許封包移動至目的地或另一個 chain

  • DROP:丟棄封包、不回應要求、不傳送失敗訊息

  • REJECT:拒絕封包、回應要求、傳送失敗訊息

  • SNAT:修改 Source Socket

  • DNAT:修改 Destination Socket

  • MASQUERADE:動態修改 Source Socket (無法指定 IP,取當時網卡的 IP),較方便但效率較差

  • REDIRECT:將連線導至本機行程 (Local Process)

  • RETURN:結束自行定義的 Chain 然後返回原來的 Chain 繼續跑規則 (rules)

  • QUEUE:封包排隊等待處理

  • LOG:記錄指定的規則封包 (\/etc\/syslog.conf , default \/var\/log\/messges)

Last updated

Was this helpful?