iptables & netfilter 概述

1. iptables
    位于用户空间工具,用于编写规则,规则下发到netfilter。
    iptables演进:
      Linux 2.0 ---  ipfwadm 
      Linux 2.2 ---  ipchains
      Linux 2.4 ---  iptables/netfilter
              
2. netfilter 
    位于内核中,一种框架(framework)
    具有5个钩子点(hook function),或者理解为5条规则链(chains)
    5条链:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
    5个钩子函数: NF_IP_LOCAL_IN、NF_IP_LOCAL_OUT、NF_IP_FORWARD、NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING
          
2.1 报文流向
       ① 到本机
            PREROUTING -> INPUT
       ② 转发
            PREROUTING -> FORWARD -> POSTROUTING
       ③ 本机发出
            OUTPUT -> POSTROUTING

2.2 tables
       利用5条规则链,linux内核可以实现多种功能,主要有 raw、mangle、nat、filter
       每条链可以实现上述功能中的多个,每种功能的规则是分开存放的,可以理解为不同的表(table)

       每条链可实现的功能,或者下挂表如下:
          PREROUTING       raw/mangle/nat
          FORWARD            mangle/filter
          POSTROUTING   mangle/nat
          INPUT                   mangle/filter
          OUTPUT               raw/mangle/nat/filter
       各功能(table)优先级排序亦为 raw/mangle/nat/filter
 
       或者,从功能的角度考虑,各功能实现需要依赖的链(chains):
        ① raw
            PREROUTING / OUTPUT
        ② mangle    修改报文、附加数据
            PREROUTING / FORWARD / POSTROUTING / INPUT / OUTPUT
        ③ nat    源NAT、目的NAT
            PREROUTING / POSTROUTING / OUTPUT
        ④ filter   包过滤

            FORWARD / INPUT / OUTPUT  


你可能感兴趣的:(Linux系统)