HelloBug0

iptables简单说明

网卡驱动将接收到的原始比特流组装成帧,将帧数据从网卡缓冲区复制到内核主存中。 内核协议栈解析以太网帧,然后处理IP数据报、TCP端/UDP数据报,将应用数据流放入对应的Socket接收队列,等待应用程序通过系统调用读取。

内核协议栈处理数据包的过程类似于一条流水线,在流水线的五个关键位置预设了钩子(Hook),可以通过iptables在这五个位置设置一些规则。 这五个位置分别为:

并不是每个数据包都会经历这五个位置,根据数据包的流向,主要有三种情况: 发往本机:PREROUTING->INPUT->本机应用程序 本机路由:PREROUTING->FORWARD->POSTROUTING 本机发出:本机应用程序->OUTPUT->POSTROUTING

每个链中都有不同的表,总共有四种表,优先级从高到低依次为:raw、mangle、nat、filter。 并不是每个位置(链)都有这四种表。

iptables规则匹配顺序:

表内顺序匹配规则,匹配到即停止。