一、Netfilter 简介
(1) Netfilter 是 Linux 的一种防火墙,iptables 只是用于管理 Netfilter 防火墙的用户程序
(2) Netfilter 防火墙包含五张表,每个表包含不同的规则链,每条规则链包含不同的(用户自定义的)规则
(3) Netfilter 防火墙包含 filter 、nat 、mangle 、raw 、security 五张表,分别用于实现包过滤,网络地址转换、包重构(修改)、数据跟踪处理
(4) Netfilter 防火墙包含五个链:INPUT 、FORWARD 、OUTPUT 、PREROUTING 、POSTROUTING
filter 表:
INPUT :进来的数据包应用的规则链 FORWARD :通过本机转发到其他机器(还没有进入本机)的数据包应用的规则链 OUTPUT :数据包出去之前应用的规则链
nat 表:
PREROUTING :数据包进来的那一刻应用的规则链OUTPUT :数据包出去之前应用的规则链POSTROUTING :数据包出去的那衣裤应用的规则链
二、Netfilter 数据包传输过程
① 当一个数据包进入网卡时,它首先进入 PREROUTING 链,内核根据数据包目的 IP 判断是否需要转送出去
② 如果数据包就是进入本机的,它就会沿着图向下移动,到达 INPUT 链,数据包到了 INPUT 链后,任何进程都会收到它,本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT 链,然后到达 POSTROUTING 链输出
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过 FORWARD 链,然后到达 POSTROUTING 链输出
时间: 2024-11-08 11:39:35