iptables之四表五链

 

iptables可谓是SA的看家本领,需要着重掌握。随着云计算的发展和普及,很多云厂商都提供类似安全组产品来修改机器防火墙。

 

iptables概念

iptables只是Linux防火墙的管理工具而已。真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构。

 iptables之四表五链_第1张图片

iptables具体是如何去过滤各种规则的呢?请看下面的四表五链

四表五链概念

  • filter表——过滤数据包
  • Nat表——用于网络地址转换(IP、端口)
  • Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOS
  • Raw表——决定数据包是否被状态跟踪机制处理
  • INPUT链——进来的数据包应用此规则链中的策略
  • OUTPUT链——外出的数据包应用此规则链中的策略
  • FORWARD链——转发数据包时应用此规则链中的策略
  • PREROUTING链——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
  • POSTROUTING链——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

 iptables之四表五链_第2张图片

 

再来一张十分形象的netfilter图:

 iptables之四表五链_第3张图片

 

上图十分清晰的表明数据包的流向。由于四表中我们常用的就只有filter和nat,所以再来一张鸟哥版精简图:

iptables之四表五链_第4张图片

默认4种规则表
raw表:是自1.2.9以后版本的iptables新增的表,debug测试,确认是否对该数据包进行状态跟踪,对应的内核模块为iptable_raw,包含两个链:PREROUTING - OUTPUT

mangle表:主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time ToLive,生存周期)值以及为数据包设置Mark标记,以实现Qos (Quality of Service,服务质量)调整以及策略路由等应用,由于需要相应的路由设备支持,因此应用并不广泛。对应的内核模块为iptable_mangle,包含五个链:

nat表:(Network Address Translation,网络地址转换)主要用于修改数据包的IP地址、端口号等信息。修改数据包中源地址和目标ip地址或端口,这是我们要学的重点,内核模块为iptable_nat,在nat表中定义的有PREROUTING - POSTROUTING - OUTPUT三个规则链.

filer表:对数据包进行过滤,准许什么数据包通过,不许什么数据包通过.并且这个规则表也是默认的.这也是重点,对应的内核模块为iptable_ filter,在filter中 有INPUT - FORWARD - OUTPUT三个规则链.

你可能感兴趣的:(linux,网络通信)