当前位置: 代码迷 >> 综合 >> linux firewall 浅谈
  详细解决方案

linux firewall 浅谈

热度:56   发布时间:2024-01-12 22:58:49.0

很早之前就想写一点关firewall的东西,在ip产品的开发中firewall使我们无法避免的东西,你想要和ineternet 通信就必须用到firewall。

其实firewall 也没有那么神奇, 我们现在所说的iptables 不过是一个上层的app 相当于netfilter的一个configure app。所有关于packets的处理都在kernel中完成的也就是netfilter module中。 下面我们就iptables 来讲一下:

1. 我们所讲的 iptables 有四个表和五条连(也就是钩子 hook 一般懂一点的都喜欢把它称之为钩子 而不成为连)

 2. 四个表 raw  nat   filter mangle  四个表有优先顺序的 raw > mangle > nat > filter

 3. 五个钩子 prerouting   input   output   forward  postrouting


首先要明确 data packets 是沿着hook去流动的。


raw  --- 这个表只做 去跟踪(就是不让这掉数据记录经conection track中) 明白了这一点就知道他会在那几个hook点出现了,(prerouting, output)

mangle -- 修改packet是中的ttl tos 等mark 标志的,所以五个hook点都可以有该表

nat  -- 这个表就是为了路由处理  所以有 prerouting output postrouting 三个hook点可已有该表

filter -- 这就是进行packet filter的 所以 hook点有 input output forward


prerouting --- 可以理解为nat 前主要是做dest ip的转换

input  --- 主要是处理进入本地的packet 

output  -- 主要是处理从本地出去的packets

forward -- 转要是处理dest 不是本地的packets

postrouting -- nat后主要是做source ip 转换的。