首先,我们先简单学习了解一下有关Linux防火墙的知识点:

           防火墙具有隔离功能,工作在网络或主机边缘,对进出网络或主机的 数据包基于一定的规则检查,并在匹配某规

则时由规则定义的行为进行处理的一 组功能的组件,基本上的实现都是默认情况下关闭所有的通过型访问,只开放允

许访问的策略。

接下来我们将学习有关于使用管理防火墙的命令:

iptables :命令行工具,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包。

     iptables由五个表(table:filter、nat、mangle、raw、security filter)和五个链(chain : INPUT、OUTPUT、FORWARD、

PREROUTING、POSTROUTING)以及一些规则组成 。

filter表:根据预定义的规则过滤符合条件的数据包 。

nat表:network address translation 地址转换规则表 。

mangle表:修改数据标记位规则表 。

raw表:关闭NAT表上启用的连接跟踪机制,加快封包穿越防火墙速度。

security表:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现,优先级由高到低的顺序为:

security -->raw-->mangle-->nat-->filter 

规则rule:根据规则的匹配条件尝试匹配报文,对匹配成功的报文根据规则定义的处理动 作作出处理。

规则格式:iptables [-t 表名]   选项  chain   [-m 扩展需加载模块 [per-match-options]]   -j 动作 [per-target-options] 

选项:1、链管理: -N:new, 自定义一条新的规则链

                                      -X:delete,删除自定义的空的规则链

                                      -P:Policy,设置默认策略;对filter表中的链而言,其默认策略有: ACCEPT:接受 DROP:丢弃

                                     -E:重命名自定义链;引用计数不为0的自定义链不能够被重命名,也不能被删除。

、         2.查看: -L:list, 列出指定鏈上的所有规则,本选项须置后

                              -n:numberic,以数字格式显示地址和端口号

                              -v:verbose,详细信息 -vv 更详细

                             --line-numbers:显示规则的序号 常用组合: -vnL  --line-numbers

                             -S: selected,以iptables-save 命令格式显示链上规则

Linux----防火墙简析_Linux

             3、规则管理: -A:append,追加

                                           -I:insert, 插入,要指明插入至的规则编号,默认为第一条

                                          -D:delete,删除 (1) 指明规则序号 (2) 指明规则本身

                                          -R:replace,替换指定链上的指定规则编号

                                         -F:flush,清空指定的规则链

                                         -Z:zero,置零 iptables的每条规则都有两个计数器 (1) 匹配到的报文的个数 (2) 匹配到的所有

报文的大小之和

匹配规则:1.基本规则:[!] -s, --source  address[/mask][,...]:源IP地址或范围

                 (!  表示取反)[!] -d, --destination address[/mask][,...]:目标IP地址或范围

                                               [!] -p, --protocol protocol:指定协议,可使用数字如0(all) protocol: tcp, udp, icmp, icmpv6, 等等。

                                               [!] -i, --in-interface name:报文流入的接口;只能应用于数据报文流入环节,只 应用于INPUT、

FORWARD、PREROUTING链

                                               [!] -o, --out-interface name:报文流出的接口;只能应用于数据报文流出的环 节,只应用于

FORWARD、OUTPUT、POSTROUTING链

                      2.拓展规则:(1)隐式扩展:在使用-p选项指明了特定的协议时,无需再用-m选项指明扩展模块 的扩

展机制,不需要手动加载扩展模块 

                                             tcp协议的扩展选项

                                                [!] --source-port, --sport port[:port]:匹配报文源端口,可为端口范围

                                                [!] --destination-port,--dport port[:port]:匹配报文目标端口,可为范围

                                               (2)显示拓展:必须使用-m选项指明要调用的扩展模块的扩展机制,要手动加载扩

展模块 [-m matchname [per-match-options]]


处理动作:-j 动作 [per-target-options]

          简单:ACCEPT,DROP

         扩展:REJECT:--reject-with:icmp-port-unreachable默认

                      RETURN:返回调用链

                     REDIRECT:端口重定向

                      DNAT:目标地址转换

                     SNAT:源地址转换

等等,在此只介绍一些常用的选项

处理动作的显示拓展:multiport扩展 :以离散方式定义多端口匹配,最多指定15个端口。

                          [!] --source-ports,--sports port[,port|,port:port]... 指定多个源端口

                          [!] --destination-ports,--dports port[,port|,port:port]... 指定多个目标端口

                          [!] --ports port[,port|,port:port]...多个源或目标端口

Linux----防火墙简析_Linux_02

Linux----防火墙简析_Linux_03


      iprange扩展 :指明连续的(但一般不是整个网络)ip地址范围

                          [!] --src-range from[-to] 源IP地址范围

                          [!] --dst-range from[-to] 目标IP地址范围

举例:

Linux----防火墙简析_系统/运维_04

Linux----防火墙简析_系统/运维_05

4、string扩展 对报文中的应用层数据做字符串模式匹配检测

                    --from offset  开始偏移

                    --to offset     结束偏移

           [!] --string pattern 要检测的字符串模式

          [!] --hex-string pattern要检测字符串模式,16进制格式

Linux----防火墙简析_系统/运维_06


5、time扩展 根据将报文到达的时间与指定的时间范围进行匹配

                   --datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]]  日期

                   --datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]

                  --timestart hh:mm[:ss]        时间

                  --timestop hh:mm[:ss]

 Linux----防火墙简析_系统/运维_07