本公开涉及互联网领域,尤其涉及一种ipv4防火墙ipv6绕过的检测方法。
背景技术:
随着ipv6技术的不断完善和ipv6网络的扩大,互联网世界已经不可避免地进入一个新旧更替的时代。然而,ipv4网络体系庞大,ipv6网络的建设运行必定是逐步替换的过程,因此,在今后相当长的时期内,互联网系统都一定会处于ipv4与ipv6双协议栈共存的状态,而使用网络的用户也会因为自身所处环境或者设备条件的不同而使用不同的网络安全策略。
目前ipv4网络环境经历了多年的发展,相关的技术解决方案安全策略均达到了较为成熟的水平,而ipv6技术作为下一代互联网技术相关的技术水平还有待继续发展,本发明就是在这样的背景环境中,为了提升双协议栈主机的网络安全性,提出了一种双协议栈主机是否在ipv4环境下设置了防火墙,而在ipv6环境下没有设置防火墙的检测方法。
技术实现要素:
本公开鉴于上述问题,提供一种ipv4防火墙ipv6绕过的检测方法及电子设备,用于在ipv4与ipv6双协议栈用户同时存在时,通过端口检测工具判断该设备上ipv4环境与ipv6环境防火墙的开关状态。
本公开的一个方面提供了一种防火墙的检测方法,包括:获取目标主机的域名,对获取的域名进行域名解析,判断所述域名是否为支持ipv4与ipv6双协议栈的主机域名,若所述域名为支持ipv4与ipv6双协议栈的主机域名,则记录ipv4与ipv6的域名地址,否则,停止检测;对操作s1中记录的ipv4与ipv6的域名地址分别进行端口扫描;根据端口扫描获得的结果判断所述目标主机ipv4环境与ipv6环境中防火墙的使用状态。
可选地,判断所述域名是否为支持ipv4与ipv6双协议栈的主机域名,包括:若既可以解析到ipv4域名地址的第一记录类型,又可以解析到ipv6域名地址的第二记录类型,则所述域名为支持ipv4与ipv6双协议栈的主机域名,否则,所述域名为不支持ipv4与ipv6双协议栈的主机域名。
可选地,对记录的ipv4与ipv6的域名地址分别进行端口扫描,包括:分别发送握手信号包(syn)和确认字符包(tcp)至所述目标主机中ipv4域名地址绑定端口与ipv6域名地址绑定端口,获得所述目标主机的响应状态。
可选地,发送握手信号包(syn)和确认字符包(tcp)至所述目标主机,获得所述目标主机的响应状态,若该响应状态为所述目标主机响应所述握手信号包或确认字符包中的至多一个,则判定所述防火墙处于开启状态,否则,判定所述防火墙处于关闭状态。
可选地,对获取的域名进行域名解析,包括:将所述域名解析到ip地址,并在该ip地址的主机上将一个子目录与所述域名绑定。
可选地,所述域名解析包括正向解析和逆向解析,本公开采用正向解析对所述域名进行解析。
可选地,采用域名服务器对所述域名进行域名解析。
本公开另一方面提供一种防火墙检测电子设备,包括:处理器;存储器,其存储有计算机可执行程序,该程序在被所述处理器执行时,使得所述处理器执行本公开中防火墙的检测方法。
本公开另一方面还提供一种防火墙检测系统,其特征在于,所述防火墙检测系统包括:域名获取模块,用于获取目标服务器的域名;域名解析模块,用于对获取的域名进行域名解析,判断所述域名是否为支持ipv4与ipv6双协议栈的主机域名,若所述域名为支持ipv4与ipv6双协议栈的主机域名,则记录ipv4与ipv6的域名地址;端口扫描模块,用于对操作所述ipv4与ipv6的域名地址分别进行端口扫描;结果响应模块,根据端口扫描获得的结果判断所述目标主机ipv4环境与ipv6环境中防火墙的使用状态。
本公开另一方面还提供一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本公开中防火墙的检测方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了本公开实施例提供的一种防火墙检测方法的流程图。
图2示意性示出了根据本公开的一种防火墙检测电子设备的框图。
图3示意性示出了根据本公开实施例的一种防火墙检测系统的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“a或b”应当被理解为包括“a”或“b”、或“a和b”的可能性。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。
本公开提供一种防火墙的检测方法,通过端口扫面的响应结果判断双协议栈主机中是否在ipv4环境下设置了防火墙,而在ipv6环境下没有设置防火墙。
图1示意性示出了本公开实施例提供的一种防火墙的检测方法的流程图。
如图1所示,方法包括如下操作:
s1,获取目标服务器的域名,对获取的域名进行域名解析,判断所述域名是否为支持ipv4与ipv6双协议栈的主机域名,若所述域名为支持ipv4与ipv6双协议栈的主机域名,则记录ipv4与ipv6的域名地址。
在上述操作s1中,为了检测某主机是否在ipv4环境下设置了防火墙,而在ipv6环境下没有设置防火墙,首先需要获取该目标主机的域名,然后,利用域名服务器对获取的域名进行域名解析,根据解析的记录类型判断所述域名为支持ipv4与ipv6双协议栈的主机域名。
其中,双协议栈是指局域网中路由器和域名服务器同时装载了ipv4协议栈和ipv6协议栈,使之可以同时为ipv4用户和ipv6用户提供域名解析服务和路由服务。
其中,域名解析是指域名到ip地址的转换过程,又叫域名指向、服务器设置、域名配置以及反向ip登记等,由域名服务器(dns服务器)完成,ipv6网络中的dns与ipv4的dns在体系结构上是一致的,都采用树形结构的域名空间,即ipv4和ipv6共同拥有统一的域名空间,并支持ipv6多层次级别地址结构,且ipv6协议支持dns服务器的自动发现。域名解析又包括正向解析和反向解析两种,正向解析是将域名映射为相应的ip地址,通过构建一个特殊域和一种称为“指针询问”的特殊报文实现;反向解析是将ip地址逆向解析为域名,因此,本公开利用域名服务器并采用正向解析的方法对获取的域名进行解析,将所述域名解析到ip地址,并在该ip地址的主机上将一个子目录与所述域名绑定。
ipv4下域名系统正向解析采用“a”记录类型,反向请求采用“ptr”记录类型;ipv6地址的正向解析目前有两种资源记录“aaaa”和“a6”,反向请求也采用“ptr”记录,ipv6中:“aaaa”较早提出是对“a”记录的简单拓展,不支持地址的层次性,使网络重编号问题变得非常困难;“a6”使得一个ipv6地址与多个“a6”记录建立联系,每个“a6”记录都只包含了ipv6地址的一部分,结合后拼装成一个完整的ipv6地址,它支持一些“aaaa”所不具备的新特性,如地址聚合,地址重编号等。因此,若在对所述目标主机的域名进行解析时,若既可以解析到ipv4域名地址的“a”记录类型,又可以解析到ipv6域名地址的“aaaa”记录类型,则所述目标主机为支持ipv4与ipv6双协议栈的主机设备,其域名为支持ipv4与ipv6双协议栈的主机域名,则分别记录ipv4与ipv6的域名地址,并进行下一步的端口扫面,否则,所述域名为不支持ipv4与ipv6双协议栈的主机域名,则终止检测。
s2,对操作s1中记录的ipv4与ipv6的域名地址分别进行端口扫描。
防火墙从安全的视角来讲,对拒绝远程目标起到了非常重要的作用,这种硬件或软件对阻塞入侵非常有效果,nmap使用不同的技术来对抗这些软件,并且这些技术依赖于远程软件,能够对远程目标计算机防火墙进行扫描,而目标主机中所安装的防火墙可能有两种,基于主机的防火墙(一个运行在单独目标计算机上的防火墙,比如,(计算机中现在运行的防火墙)与基于网络的防火墙(一个用于保护整个网络,并且被部署在网络节点上的防火墙),因此,本公开采用nmap端口扫描工具对操作s1中记录的ipv4与ipv6的域名地址分别进行端口扫描。
在上述操作s2中,使用nmap端口扫描工具向目标主机中ipv4域名地址绑定端口与ipv6域名地址绑定端口发送syn包和ack包,分别对操作s1中记录的ipv4与ipv6的域名地址进行端口扫描,根据端口扫面的结果来判断目标主机上ipv4环境与ipv6环境防火墙的开关状况,其中,端口扫面工具调用tcpsynscan发送syn包,调用tcpackscan发送ack包,若远程计算机有防火墙工作,ack包不会被防火墙记录,tcpack扫描开始时需要root权限(nmap启动时使用root权限启动),并且它对于对付无状态的防火墙和入侵检测系统(ids)有很好的效果。
s3,根据端口扫描获得的结果判断该双协议栈主机设备ipv4环境与ipv6环境中防火墙的使用状态。
在上述操作s3中,根据操作s2端口扫面的结果判断所述双协议栈主机设备ipv4环境与ipv6环境中防火墙的使用状态,判断方法为:
若所述目标主机对所述syn包或ack包的其中一个包响应,则说明所述syn包或所述ack包已被防火墙过滤,表明防火墙处于开启状态,若所述目标主机无响应,则说明端口处于关闭状态,表明防火墙处于开启状态;
若所述目标主机对所述syn包或所述ack都响应,则表明端口处于开启状态且没有被防火墙保护,即防火墙处于关闭状态。
其中,防火墙对于syn包和ack的响应类型一样,包括:
1.openport(防火墙允许少数端口打开)
2.closedport(由于防火墙的缘故,大部分的端口被关闭)
3.filtered(nmap不确定端口是否打开或者关闭)
4.unfiltered(nmap能够访问这个端口,但是不清楚这个端口打开的状态)。
本公开提供一种防火墙检测电子设备,如图2所示。电子设备200包括处理器210、存储器220。该电子设备200可以执行上面参考图1描述的方法,以进行消息处理。
具体地,处理器210例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器210还可以包括用于缓存用途的板载存储器。处理器210可以是用于执行参考图1描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
存储器220,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。
存储器220可以包括计算机程序221,该计算机程序221可以包括代码/计算机可执行指令,其在由处理器210执行时使得处理器210执行例如上面结合图1所描述的方法流程及其任何变形。
计算机程序221可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序221中的代码可以包括一个或多个程序模块,例如包括221a、模块221b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器210执行时,使得处理器210可以执行例如上面结合图1所描述的方法流程及其任何变形。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
图3示意性示出了根据本公开实施例的防火墙检测系统的框图。
如图3所示,防火墙检测系统300包括域名获取模块310、域名解析模块320、端口扫面模块330及结果响应模块340。
具体的,域名获取模块310,用于获取目标主机的域名。
域名解析模块320,用于对获取的域名进行域名解析,采用域名解析服务器对获取的域名进行解析,域名解析方式为正向解析,若在对所述目标主机的域名进行解析时,若既可以解析到ipv4域名地址的“a”记录类型,又可以解析到ipv6域名地址的“aaaa”记录类型,则所述目标主机为支持ipv4与ipv6双协议栈的主机设备,其域名为支持ipv4与ipv6双协议栈的主机域名,则分别记录ipv4与ipv6的域名地址,并进行下一步的端口扫面,否则,所述域名不支持ipv4与ipv6双协议栈的主机域名,则终止检测。
端口扫面模块330,用于对域名解析模块320记录的ipv4与ipv6的域名地址分别进行端口扫描,使用nmap端口扫描工具向目标主机中ipv4域名地址绑定端口与ipv6域名地址绑定端口发送syn包或ack包,分别对记录的ipv4与ipv6的域名地址进行端口扫描,根据端口扫面的结果来判断目标主机上ipv4环境与ipv6环境防火墙的开关状况,其中,端口扫面工具调用tcpsynscan发送syn包,调用tcpackscan发送ack包
结果响应模块340,根据端口扫描获得的结果判断所述目标主机ipv4环境与ipv6环境中防火墙的使用状态,判断方法为:
若所述目标主机对所述syn包或ack的其中一个包响应,则说明所述syn包或所述ack包已被防火墙过滤,表明防火墙处于开启状态,若所述目标主机无响应,则说明端口处于关闭状态,表明防火墙处于开启状态;
若所述目标主机对所述syn包或所述ack都响应,则表明端口处于开启状态且没有被防火墙保护。
应当理解,域名获取模块310、域名解析模块320、端口扫面模块330及结果响应模块340可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,域名获取模块310、域名解析模块320、端口扫面模块330及结果响应模块340中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,域名获取模块310、域名解析模块320、端口扫面模块330及结果响应模块340中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。