**netfilter5表5链**

`netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC)地址的过滤和基于状态的过滤、包速率限制等。`           

`netfilter
             5个表(filter、nat、mangle、raw、security)
             5个链(prerouting、input、forward、output、 postrouting)

`

filter表:默认的表,包含内置的链输入(INPUT),转发(FORWARD)[对于正在通过的数据包]和输出(OUTPUT)[针对本地生成的包]
NAT表:用于网络地址转换,有PREROUTING、OUTPUT、POSTROUTING三个链
managle表:用于给数据包做标记
raw表:可以实现不追踪某些数据包
security表:在C6中没有,用于强制访问控制(MAC)的网络规则
iptables传输数据包的过程
① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。 
② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。 
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。