一、防火墙的类别:

a、根据载体区分

    ╘ 硬件防火墙

    ╘ 软件防火墙

        ╘应用层防火墙

        ╘网络层防火墙

            ╘ linux包过滤防火墙


b、根据保护对象区分

    ╘ 主机防火墙

    ╘ 网络防火墙


二、iptables的表、链结构

wKiom1O_hzvCcg6wAAIHgVIY8Aw760.jpg


a、规则链解析 - Chain

·链的用途:存放一条条防火墙规则(rule)

·链的分类依据:处理数据包的不同时机

·默认包括5种规则链

    → INPUT:处理入站的数据包

    → OUTPUT:处理出站的数据包

    → FORWARD:处理转发的数据包

    → PREROUTING:路由选择之前处理

    → POSTROUTING:路由选择之后处理


b、规则表解析 - Table

·表的用途:存放不同的规则链

·表的分类依据:防火墙规则的作用相似

·包括4个规则表

    → raw表:确定是否对数据包进行状态跟踪

    → mangle表:为数据包设置标记(流量×××)

    → nat表:修改数据包的源/目的地址或端口(用于网络地址转换)

    → filter表:确定是否放行改数据包(用于防火墙)


三、包过滤匹配流程

a、规则表之间的顺序

     raw → mangle → nat → filter


b、规则链之间的顺序

    ·入站:INPUT → PREROUTING

    ·出站:OUTPUT → POSTROUTING

    ·转发:PREROUTING → FORWARD → POSTROUTING


c、规则链内的匹配顺序

    ·顺序比对,匹配即停止(LOG除外)

    ·若无任何匹配,则按该链的默认策略处理



四、iptables基本用法

a、命令:

    iptables [ -t 表名 ] 选项 [ 链名 ] [ 条件 ] [ -j 目标操作 ]

   

   Example:

    # iptables -t filter -I INPUT -p icmp -j REJECT


b、几个注意事项/总体规律

    ·可以不指定表,默认为filter表

    ·可以不指定链,默认为对应表的所有链

    ·除非设置默认策略,否则必须指定匹配条件

    ·选项/链名/目标操作用大写字母,其余都小写


c、最基本的目标操作

    ·ACCEPT :允许通过、放行

    ·DROP :直接丢弃,不给出任何回应

    ·REJECT :拒绝通行,必要时会给出提示

    ·LOG :记录日志,然后传给下一条规则


常见的管理选项



类别选项用途
添加规则
-A在链尾追加一条规则
-I在链头(或指定序号)插入一条规则
查看规则-L列出所有的规则条目
-n以数组的形式显示地址、端口等信息
--line-numbers查看规则时,显示规则的序号
删除规则-D删除链内指定序号(或内容)的一条规则
-F删除链内指定序号(或内容)的一条规则,清空所有的规则
默认策略-P为指定的链设置默认规则  


d、添加新的表规则(数字是指定插入位置,不影响功能)

    Example:允许某一个ip地址ping

    #iptables  -I  INPUT  1 -s  192.168.1.200  -p  icmp -j  ACCEPT



    #iptables -t filter -A INPUT -p tcp -j ACCEPT

    #iptables -I INPUT -p udp -j ACCEPT


    # iptables -I INPUT 1 -p icmp -j ACCEPT

    # iptables -I INPUT 2 -p icmp -j ACCEPT

    # iptables -I INPUT 3 -p icmp -j ACCEPT


e、查看规则列表

    # iptables  -nL  --line-numbers

    Chain INPUT (policy ACCEPT)

    num  target     prot opt source               destination         

    1    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           

    2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           

    3    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           

    

    Chain FORWARD (policy ACCEPT)

    num  target     prot opt source               destination         

    

    Chain OUTPUT (policy ACCEPT)

    num  target     prot opt source               destination


    # iptables -L INPUT --line-numbers

    Chain INPUT (policy ACCEPT)

    num  target     prot opt source               destination         

    1    ACCEPT     icmp --  anywhere             anywhere

    2    ACCEPT     icmp --  anywhere             anywhere            

    3    ACCEPT     icmp --  anywhere             anywhere

    

    # iptables -L INPUT --line-numbers

    Chain INPUT (policy ACCEPT)

    num  target     prot opt source               destination         

    1    ACCEPT     icmp --  anywhere             anywhere            

    2    ACCEPT     icmp --  anywhere             anywhere            

    3    ACCEPT     icmp --  anywhere             anywhere


f、删除、清空规则

    # iptables  -D  INPUT 2        #(删除)

        # iptables  -F                        #(清空)


g、设置默认规则

    ·所有链的初始默认规则均为ACCEPT

    ·通过 -P 选项可重置默认规则

        - ACCEPT 或 - DROP

    # iptables  -P  OUTPUT DROP                     \\OUTPUT链默认规则该为DROP



linux防火墙--iptables(一)        http://nmore.blog.51cto.com/9008175/1437118

linux防火墙--iptables(二)        http://nmore.blog.51cto.com/9008175/1437304

linux防火墙--iptables(三)        http://nmore.blog.51cto.com/9008175/1437540