简述
- Netfilter在内核中选取五个位置放了五个hook(勾子)function(PREROUTING、INPUT、FORWORD、OUTPUT、POSTROUTING)而这五个hook function向用户开放,用户可以通过一个命令工具(iptables)向其写入规则。
提示:从linux kernel 4.2版以后,Netfilter在PREROUTING之前增加了一个ingress的勾子函数。可以使用这个新的入口挂钩过滤来自第二层的流量,这个新的挂钩比预路由要早基本上是tc的替代品。
三种报文的流向
- 流入本机:PREROUTING → INPUT → 上层协议栈(用户空间进程)
- 流出本机:上层协议栈(用户空间进程)→ OUTPUT → POSTROUTING
- 转发:PREROUTING → FORWORD → POSTROUTING