用开源NAC阻止非法网络访问
本文将要介绍的NAC代表网络准入控制(Network Access Control),在传统方法中,为了防止外来设备接入企业网可以采用在交换机上设置 IP-MAC绑定,结合ACL等方法使外来设备无法接入网络。目前市面上已经出现了一些上网行为管理和审计类产品,再此对比较知名的产品做一个概述性介绍,这些产品的功能也为接下来的研究工作提供了方向,具有指导性意义。
深信服AC系列上网行为管理
网康互联网控制网关
思科NAC
除此之外,还包括华为、北信源等多款商业产品,下文将介绍几款开源的NAC工具,它们具有更加人性化的管理。
1. PacketFence简介
PacketFence是一个开源的网络访问控制软件,它使用NESSUS来对网络节点计算机进行漏洞扫描,从而发现设备中存在安全风险,一旦确定节点计算机中存在的安全风险,此终端就会被禁止访问目标网络。PacketFence还使用SNORT传感器来检测来自网络的攻击活动,并给出相应的警告。PacketFence支持对许多厂商的可网管交换机进行VLAN设置,通过划分不同VLAN来阻止不安全的终端接入网络,这些被支持的交换机包括H3C、Cisco、DELL等厂商生产的可网管交换机。PacketFence通过FreeRADIUS模块提供对802.1X无线的支持,能为我们提供一种和有线网络同样的安全控制方式。在管理上我们可以通过WEB和命令行界面来管理它。这些管理功能完全可以满足目前大部分中小企业的网络访问控制的需求。PacketFence可以在RHEL和CentOS Linux、Debian系统中运行,我们可以下载它的二进制文件包来安装,也可以下载它的一体化VMWare虚拟机文件来直接使用,我们可到http://www.packetfence.org/download/zen.html网站下载他的Live CD(最新版本5.6.0)文件,放到U盘便可作为启动系统而直接使用。
硬件配置:普通服务器,需要2块高性能千兆网卡(一块网卡用于链控制台,另一块网卡用于收集信息接在交换机的SPAN口),对于交换机的要求为可网管交换机。访问WEB界面:https://ip:1443/
2. PacketFence部署
PacketFence的部署和IDS系统一样,都可以采用旁路方式接入网络,即通过SPAN端口的旁路访问方式,还有种接法就是串接在防火墙之后,这样容易造成单点故障,故笔者建议采用旁路方式连接入网。
此图清晰的显示了非法接入点的详细信息
举例:操作系统分布信息
举例:Packetence的日志
3. FreeNAC
FreeNAC也是一款开源免费的NAC软件,它同样提供了对交换机划分VLAN的功能,并以MAC地址来为计算机终端指定 动态VLAN,以此提供对局域网中各种资源的访问控制。FreeNAC能够对局域网中的服务器、工作站、打印机和IP电 话的进行访问控制。FreeNAC能够自动发现网络中存活的各种终端,并提供了对802.1x及思 科的VMPS端口安全模块 的支持,同时还提供系统补丁包分发等功能。不过,FreeNAC虽然提供了对非网管交换机 的支持,但使用非网管交换机会让其NAC功能大打折扣,因此,如果想发挥它所有的NAC功能,最好使用可网络交换机,而且,为了能使用思科的VMPS功能,最好使用思科的支持 VMPS的可网管交换机。
4. Xplico
下面要说的这款开源工具,从功能上并不如上面两款NAC的功能强大,Xplico即是一个网络协议分析工具,还是一个开源的网络取证分析工具(NFAT),可发现异常,可以作为辅助NAC工具。Xplico的目标是从捕获的互联网应用数据中提取信息并显示出来,这指的是通过捕获Internet网络流量来提取各种网络应用中所包含的数据,并从中分析出各种不同的网络应用.例如Xplico可以实时解析通过网关的流量,也可以pcap文件中解析出IP流量数据,并解析每个邮箱(包括POP,IMAP,和SMTP协议),解析所有HTTP内容,以及VOIP应用等。
XPlico系统是由四个部分组成的:
解码控制器(Dema)
IP/网络解码器(Xplico)
程序集来处理解码数据(ManiPulators)
可视化系统,用来查看结果
解码器Xplico是整个系统的核心组件,它的特点是高度模块化,可扩展性和可配置性。它的主要工作过程是通过数据抓取模块(cap_dissector)抓取网络中的数据包,然后将数据包输入到各个解析组件(Dissectors)中,得出的解析结果通过分发组件(Dispatcher)存储到数据库中,最后再显示出来。其过程如下图所示。
从上图可以看出,Xplico对协议的分析过程采取自顶向下的流程,首先Xplico捕获到网络数据包,然后根据包中的不同字段区分出不同的协议,分成TCP、UDP等协议进行分析,其中对TCP协议和UDP协议再根据不同的端口号和应用层协议的特征进一步细分,使用不同的解析器对报文进行分析和处理,最后得出结论并保存结果。
Xplico的数据获取方法
Xplico底层使用Libpcap来抓取数据包,它是一个著名的、专门用来捕获网络数据的编程接口。它在很多网络安全领域得到了广泛的应用,很多著名的网络安全系统都是基于LibPcap而开发的,如著名的网络数据包捕获和分析工具Tcpdump,网络入侵检测系统snort也是使用Libpcap来实现的。Libpcap几乎成了网络数据包捕获的标准接口。Libpcap中使用了BPF过滤机制,这部分是基于内核的过滤模块,它使Libpcap具有捕获特定数据包的功能,可以过滤掉网络上不需要的数据包,而只捕获用户感兴趣的数据包"使用Libpcap可以把从网络上捕获到的数据包存储到一个文件中,还可以把数据包信息从文件中读出,读出的结果与从网络上捕获数据包的结果是一样的。Libpcap的作用主要有以下四个方面:
1 捕获各种网络数据包
2 分析网络数据包
3 存储网络数据包
4过滤网络数据包
在Deft集成了Xplico下载,其详细部署方参见《Unix/Linux网络日志分析与流量监控》一书。
该书评价 http://item.jd.com/11582561.html
本文出自 “李晨光原创技术博客” 博客,请务必保留此出处http://chenguang.blog.51cto.com/350944/1737794