您的位置:首页 > 其它

iptables & netfilter 概述

2014-04-24 09:30 441 查看
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  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iptables