个人随笔
目录
iptables防火墙的四表五链
2022-08-08 22:27:17

1、Linux系统中的防火墙

Linux系统中防火墙有两大角色:iptables和netfilter。iptables是Linux系统下应用层内置控制防火墙的工具,netfilter则是防火墙功能的具体实现,是内核空间的功能模块。所谓iptables“控制”防火墙,就是用户利用iptables将防火墙规则设置给内核的netfilter功能模块

2、iptables如何控制防火墙

这里涉及到一个概念,叫做“四表五链”,”四表五链”其实是对用户设置规则的管理,是看待用户设置的规则的两个维度。

怎么理解”四表五链”呢?我们首先得知道是哪四个表?哪五条链?这里四个表是指:Filter表Nat表Mangle表Raw表,五条链是指:INPUT链OUTPUT链FORWARD链PREROUTING链POSTROUTING链

下面是这”四表”的作用

  1. Filter表:过滤数据包
  2. NAT表:用于网络地址转换(IP、端口)
  3. Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOS
  4. Raw表:决定数据包是否被状态跟踪机制处理

下面是”五链”的作用

  1. INPUT链:进来的数据包应用此规则链中的规则
  2. OUTPUT链:外出的数据包应用此规则链中的规则
  3. FORWARD链:转发的数据包应用此规则链中的规则
  4. PREROUTING链:对数据包作路由选择前应用此链中的规则
  5. POSTROUTING链:对数据包作路由选择后应用此链中的规则

那这”四表五链”怎么起作用呢?

举个例子,假如服务器就是一个大院,大院里面的房间就是各种应用软件,假如有人要进入这个大院,那么“四表”就相当于四个保安队“五链”就相当于每个保安队里面的具体某个保安,用户进到大门,会有一个队的一个保安(PREROUTING链)过来问一下是谁,干啥的,如果这个保安收到了房主(用户)的命令不允许张三进入,如果是那个人刚好是张三,则会拦在门口不能进入。

假如用户进入了大门,想要进入某个房间(也就是访问某个应用)此时就会有另一个保安队()某个保安(INPUT链)来核查身份,用户拜访完后从房间里出来也会有另一个保安队()某个保安(OUTPUT链)来核查身份,用户出大门也会有另一个保安队()某个保安(POSTROUTING链)来核查身份。

加入用户只是进入大门,然后从另一个大门出去,那么此时也会有一个保安队()某个保安(FORWARD链)来核查身份。

上面的例子中:大院相当于服务器,大门相当于网卡,房间相当于服务器里面的应用,保安队相当于”表”,保安相当于”链”。用户相当于访问者,设置规则的人相当于房主也就是服务器的所有者。

下面是网络上的一张经典”四表五链”架构图:

上面的图就是一个Linux服务器

数据包从网络A进入这台服务器,会先抵达PREROUTING链,此时nefilter程序会依次从Raw表、Mangle表和NAT表中取出针对PREROUTING链的用户规则并执行相应操作;

若是通过,则通过路由选择,若是该数据包为转发的数据包则nefilter程序会依次从Mangle表和Filter表取出针对FORWARD链的用户规则并执行相应操作,若是该数据包会进入到本机的应用程序,则filter程序会依次从Filter表和Mangle表取出针对INPUT链的用户规则并执行相应操作;

若是通过则经过路由选择,filter程序会依次从Raw表、Mangle表、NAT表和Filter表取出针对OUTPUT链的用户规则并执行相应操作;

最后filter程序会依次从Mangle表和Nat表取出针对POSTROUTING链的用户规则并执行相应操作.

对上面的表和链归类下则为:

可以看到,正常情况下我们只需要关注Filter表和Nat表就可以了覆盖到所有出入口了。

 1885

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2