Skip to content

Latest commit

 

History

History
109 lines (78 loc) · 4.91 KB

工作原理.md

File metadata and controls

109 lines (78 loc) · 4.91 KB

iptables详解

1.iptables是表的容器

iptables包含的各个表(tables)

  • filter表:主要和主机自身有关,真正负责主机防火墙功能的(过滤流入流出主机的数据包)filter表是iptables默认使用的表
  • NAT表:负责网络地址转换。即来源与目的IP地址和端口(port)的转换,和主机本身无关,一般用于局域网共享上网和端口转换
  • NAT表企业应用场景: 1.用于做企业路由(zebra)和网关(iptables)、共享上网(POSTROUTING) 2.做内部外部IP地址的一对一的映射、 3.单个端口映射
  • MANGLE表:主要负责修改数据包中特殊的路由标记。如TTL、TOS、MASK
  • RAW表:于处理异常,包括的规则链有,prerouting,output; 一般使用不到

2.iptables的表(tables)又是链(chains)的容器

注意:所有的链名都要大写!!!

包含的链:

  • (INPUT):处理流入的数据包
  • (OUTPUT):处理流出的数据包
  • (FORWARD):处理转发的数据包
  • (PREROUTING):在进行路由选择前处理数据包(相当于DNAT)
  • (POSTROUTING):在进行路由选择后处理数据包(相当于SNAT)

注意:这三张表代表同一个意思!(红色重点掌握)


各个表(tables)详解:

filter表定义的三个链(chains)

  • INPUT:负责过滤所有目标地址是本地地址的数据包。通俗讲就是过滤进入主机的数据包
  • FORWARD:负责转发流经主机的数据包,起到转发作用。
  • OUTPUT:处理所有源地址是本地地址的数据包,通俗的讲就是处理从主机发出的数据包

强调:对于filter表的控制是我们实现本机防火墙的重要手段,特别是对INPUT链的控制!


NAT表定义的三个链(chains)

  • OUTPUT:和主机发出去的数据包有关。改变主机发出数据包的目标地址。
  • PREROUTING:在数据包到达防火墙时进行路由判断之前执行此规则,作用是改变数据包的目的地址、目的端口等。(通俗比喻,收信时根据规则重写收件地址)
  • POSTROUTING:在数据包离开防火墙时进行路由判断之后执行的规则,作用是改变数据包的源地址、源端口等。(通俗比喻,就是寄信时,写好发件人的地址,要让人家回信时能够有地址可回),生成应用:局域网共享上网

MANGLE表定义的五个链(chains)

  • 注意:一般情况下用不到MANGLE表。
  • (INPUT):处理流入的数据包
  • (OUTPUT):处理流出的数据包
  • (FORWARD):处理转发的数据包
  • (PREROUTING):在进行路由选择前处理数据包
  • (POSTROUTING):在进行路由选择后处理数据包

RWA表定义的二个链(chains)

  • 注意:基本不用RAW表。
  • (PREROUTING):在进行路由选择前处理数据包
  • (OUTPUT):处理流出的数据包

3、iptables的工作流程

iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则进行匹配来决定是否可以进入主机

小结:

  • 1.防火墙时层层过滤,实际是按照配置规则的顺序从上至下、从前到后进行过滤的。
  • 2.如果匹配上规则,即明确表明是阻止还是通过,数据包就不会往下匹配规则了。
  • 3.如果规则中没有明确表明是阻止还是通过,也就是没有匹配规则,继续向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
  • 4.防火墙默认规则是对应链的所有的规则执行完才会执行的。

4、规则表之间的顺序

详细版 简洁版

小结:

  • 规则表之间的顺序
  • raw—mangle—nat—filter
  • 规则链之间的顺序
  • 入站:PREROUTING INPUT
  • 出站:OUTPUT POSTROUTING
  • 转发:PREROUTING FORWARD POSTROUTING

5、iptables的处理行为

  • ACCEPT:允许流量通过
  • DROP:拒绝流量通过
  • REJECT:拒绝流量通过,拒绝后再回复一条“您的信息我已收到,但被扔掉了”
  • LOG:记录日志信息,在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,也就说除了记录以外不对数据包做任何其他操作。仍然让下一条规则五匹配。
  • MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会表的IP上
  • SANT:源地址转换,解决内网用户用同一公网地址上网的问题
  • DNAT:目标地址转换
  • REDIRECT:重定向