防火墙已经成为企业网络建设中的一个关键组成部分。但有很多用户,认为网络中已经有了路由器,可以实现一些简单的包过滤功能,所以,为什么还要用防火墙呢?以下我们针对NetEye防火墙与业界应用最多、最具代表性的Cisco路由器在安全方面的对比,来阐述为什么用户网络中有了路由器还需要防火墙。
一、 两种设备产生和存在的背景不同
1、两种设备产生的根源不同
路由器的产生是基于对网络数据包路由而产生的。路由器需要完成的是将不同网络的数据包进行有效的路由,至于为什么路由、是否应该路由、路由过后是否有问题等根本不关心,所关心的是:能否将不同的网段的数据包进行路由从而进行通讯。
防火墙是产生于人们对于安全性的需求。数据包是否可以正确的到达、到达的时间、方向等不是防火墙关心的重点,重点是这个(一系列)数据包是否应该通过、通过后是否会对网络造成危害。
2、根本目的不同
路由器的根本目的是:保持网络和数据的“通”。
防火墙根本的的目的是:保证任何非允许的数据包“不通”。
二、核心技术的不同
Cisco路由器核心的ACL列表是基于简单的包过滤,从防火墙技术实现的角度来说,NetEye防火墙是基于状态包过滤的应用级信息流过滤。
简单应用介绍:企业内网的一台主机,通过路由器对内网提供服务(假设提供服务的端口为tcp 1455)。为了保证安全性,在路由器上需要配置成:外->内 只允许client访问 server的tcp 1455端口,其他拒绝。
针对现在的配置,存在的安全脆弱性如下:
1、IP地址欺骗(使连接非正常复位)
2、TCP欺骗(会话重放和劫持)
存在上述隐患的原因是,路由器不能监测TCP的状态。如果在内网的client和路由器之间放上NetEye防火墙,由于NetEye防火墙能够检测TCP的状态,并且可以重新随机生成TCP的序列号,则可以彻底消除这样的脆弱性。同时,NetEye 防火墙的一次性口令认证客户端功能,能够实现在对应用完全透明的情况下,实现对用户的访问控制,其认证支持标准的Radius协议和本地认证数据库,可以完全与第三方的认证服务器进行互操作,并能够实现角色的划分。
虽然,路由器的“Lock-and-Key”功能能够通过动态访问控制列表的方式,实现对用户的认证,但该特性需要路由器提供Telnet服务,用户在使用使也需要先Telnet到路由器上,使用起来不很方便,同时也不够安全(开放的端口为黑客创造了机会)。
三、安全策略制定的复杂程度不同
路由器的默认配置对安全性的考虑不够,需要一些高级配置才能达到一些防范攻击的作用,安全策略的制定绝大多数都是基于命令行的,其针对安全性的规则的制定相对比较复杂,配置出错的概率较高。
NetEye 防火墙的默认配置既可以防止各种攻击,达到既用既安全,安全策略的制定是基于全中文的GUI的管理工具,其安全策略的制定人性化,配置简单、出错率低。
四、对性能的影响不同
路由器是被设计用来转发数据包的,而不是专门设计作为全特性防火墙的,所以用于进行包过滤时,需要进行的运算非常大,对路由器的CPU和内存的需要都非常大,而路由器由于其硬件成本比较高,其高性能配置时硬件的成本都比较大。
NetEye防火墙的硬件配置非常高(采用通用的INTEL芯片,性能高且成本低),其软件也为数据包的过滤进行了专门的优化,其主要模块运行在操作系统的内核模式下,设计之时特别考虑了安全问题,其进行数据包过滤的性能非常高。
由于路由器是简单的包过滤,包过滤的规则条数的增加,NAT规则的条数的增加,对路由器性能的影响都相应的增加,而NetEye防火墙采用的是状态包过滤,规则条数,NAT的规则数对性能的影响接近于零。
五、审计功能的强弱差异巨大
路由器本身没有日志、事件的存储介质,只能通过采用外部的日志服务器(如syslog,trap)等来完成对日志、事件的存储;路由器本身没有审计分析工具,对日志、事件的描述采用的是不太容易理解的语言;路由器对攻击等安全事件的相应不完整,对于很多的攻击、扫描等操作不能够产生准确及时的事件。审计功能的弱化,使管理员不能够对安全事件进行及时、准确的响应。
NetEye防火墙的日志存储介质有两种,包括本身的硬盘存储,和单独的日志服务器;针对这两种存储,NetEye 防火墙都提供了强大的审计分析工具,使管理员可以非常容易分析出各种安全隐患;NetEye 防火墙对安全事件的响应的及时性,还体现在他的多种报警方式上,包括蜂鸣、trap、邮件、日志;NetEye 防火墙还具有实时监控功能,可以在线监控通过防火墙的连接,同时还可以捕捉数据包进行分析,非分析网络运行情况,排除网络故障提供了方便。
六、防范攻击的能力不同
对于像Cisco这样的路由器,其普通版本不具有应用层的防范功能,不具有入侵实时检测等功能,如果需要具有这样的功能,就需要生级升级IOS为防火墙特性集,此时不单要承担软件的升级费用,同时由于这些功能都需要进行大量的运算,还需要进行硬件配置的升级,进一步增加了成本,而且很多厂家的路由器不具有这样的高级安全功能。可以得出:
·具有防火墙特性的路由器成本——防火墙 + 路由器
·具有防火墙特性的路由器功能
·具有防火墙特性的路由器可扩展性
综上所述,可以得出结论:用户的网络拓扑结构的简单与复杂、用户应用程序的难易程度不是决定是否应该使用防火墙的标准,决定用户是否使用防火墙的一个根本条件是用户对网络安全的需求!
即使用户的网络拓扑结构和应用都非常简单,使用防火墙仍然是必需的和必要的;如果用户的环境、应用比较复杂,那么防火墙将能够带来更多的好处,防火墙将是网络建设中不可或缺的一部分,对于通常的网络来说,路由器将是保护内部网的第一道关口,而防火墙将是第二道关口,也是最为严格的一道关口。
如何的控制路由协议才能节省网络带宽
管理网络带宽正变得越来越重要。在没有其他路由器的网络上,对网络接口上流出的广播通信进行路由毫无意义。这对你的网络带宽和路由器资源使用来说,其效率都是非常低下的。让我们来看看如何通过使用passive-interface命令,来更好的进行带宽控制。
要想正确的配置路由协议,passive-interface命令绝对不可不知。不过,如果你不是在使用动态路由协议(比如OSPF,EIGRP,或者RIP)的话,那你倒也用不到这个命令。
passive-interface命令仅仅工作于路由器配置模式(Router Configuration Mode)。当你看到如下所示的命令行提示符时,那你就知道自己已经进入该模式了:
Router(config-router)#
你可以使用passive-interface命令告知动态路由协议不要通过该接口发送网络广播。这个命令可以对所有的IP路由协议生效,仅BGP除外。
不过,该命令在OSPF上工作,和在IS-IS上有点不同。用OSPF,被动指定的网络接口作为stub(末节区域)出现,并不发送和接收任何路由更新。使用RIP,IGRP,以及EIGRP时,它不发送任何路由,但是它能接收它们。同样,它也将对网络上所有非被动的接口发送广播。
使用passive-interface命令有两种方式。
指定某个接口成为被动模式,这意味着它将不会发出路由更新。
首先将所有接口设为被动模式。然后在那些你打算发送路由更新的接口上,使用no passive-interface命令。
让我们来对两种方式各看一个示例。注:两个事例都假定你已经预先添加了对路由协议是被动接口的网络(使用网络命令)。
让一个接口变成被动模式,只需要对接口进行指定。这里是一个示例:
Router(config)# router rip Router(config-router)# passive-interface Ethernet 0/0
要将所有接口设为被动,然后单独打开某个接口,仅需使用passive-interface default和no passive-interface命令(在IOS 12.0中介绍)。下面是个示例:
Router(config)# router rip Router(config-router)# passive-interface default Router(config-router)# no passive-interface Serial 0/0
让我们来看一个简单的网络,专用于示范该命令的深层应用。假设你有2台路由器,通过一个T1回路相连,且路由器均运行RIP.每个路由器连一个局域网,电脑通过以太网卡连上局域网。
你需要每台路由器都了解对方路由器的网络,对吧?这也是为什么要使用动态路由协议的目的所在。但是在局域网上,并无其他路由器可以让这两台路由器交换路由更新。
在这种情况下,你为什么会想每30秒在局域网接口广播一次路由更新,一直持续呢?答案是你不想。这是一种对局域网带宽和电脑CPU时间的浪费。如果它只是一个小更新,它的确不会引起什么问题,但如果你能避免,何必发送这种毫无必要的通信呢?
那怎么才能消除这种毫无必要的通信呢?在每台路由器上,进入RIP配置模式(RIP Configuration mode),并使用passive-interface命令,停止在局域网端口上发送路由更新。下面是示例:
Router(config)# router RIP Router(config-router)# passive-interface Ethernet 0/0
这个,当然,假设你已经预先使用网路命令配置好了打算广播的网络。下面是个事例:
Router(config-router)# network 1.0.0……0 (the Serial network)
Router(config-router)# network 2.0.0.0 (the Ethernet network)
要记住,这意味着系统通过连到另一台路由器的串行接口,将对你设置的两个网络进行广播。另外,这也没有阻止你的路由器从局域网络接口(使用RIP)接收路由更新。如果另一台路由器正巧也在局域网上,并向你的路由器发送了更新,它依旧可以收到这些更新。
全方位了解Mac地址
什么是Mac地址?
Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)。
前24位由是生产厂家向IEEE申请的厂商地址(这可是要花钱的哦!据说1000美元才能买一个地址块)。后24位就由生产厂家自行定以了(早期的2字节的却不用申请) 。
IP地址和Mac地址有什么联系和区别
大家都知道,现在有很多计算机都是通过先组建局域网,然后通过交换机和Internet连接的(大学里的校园网就是这样)。然后给每个用户分配固定的IP地址,由管理中心统一管理,这样为了管理方便就需要使用Mac地址来标志用户,防止发生混乱,明确责任(比如网络犯罪)。另外IP地址和Mac地址是有区别的,虽然他们在局域网中是一一对应的关系。IP地址是跟据现在的IPv4标准指定的,不受硬件限制比较容易记忆的地址,而Mac地址却是用网卡的物理地址,多少与硬件有关系,比较难于记忆。
如何知道自己的Mac地址
方法比较多,也比较得简单,在这里介绍两种常用的方法,在Win9x 可用:WinIPcfg获得,在2000、XP可用IPconfig -all获得。如果你已经给自己的网卡分配了IP还可以用 nbtstat -A 自己的IP ,后者只能在2000/XP下使用。
如何获得别人的Mac
其实上面已经涉及到了,如果是2000/XP用户可以用 nbtstat -A IP地址(还可以获得别的东东啊,可别学坏啊)。另外同一局域网内的,你可以用ping IP 或者ping 主机名,然后用arp -a 来获得。
如何修改自己的Mac地址
Mac地址是保存在网卡的EPROM里面,通过网卡生产厂家提供的修改程序可以更改存储器里的地址,即使网卡没有这样的设置我们也可以通过间接的方法修改,一般网卡发出的包的源Mac地址并不是网卡本身写上去的,而是应用程序提供的,只是在通常的实现中,应用程序先从网卡上得到Mac地址,每次发送的时候都用这个Mac做为源Mac而已,Windows中,网卡的Mac保存在注册表中,实际使用也是从注册表中提取的,所以只要修改注册表就可以简单的改变Mac
Win9x中修改:
打开注册表编辑器,在HKEY_LOCAL_MacHINE\SYSTEM\CurrentControlSet\Service\Class\Net\下的0000,0001,0002 Win2000/XP中的修改:同样打开注册表编辑器,HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Control\Class\4D36E970-E325-11CE-BFC1-08002BE10318 中的0000,0001,0002中的DriverDesc,如果在0000找到,就在0000下面添加字符串变量,命名为“NetworkAddress”,值为要设置的Mac地址,例如:000102030405 完成上述操作后重启就好了。
Linux下的修改:
1.必须关闭网卡设备,否则会报告系统忙,无法更改。
命令是:“ifconfig eth0 down”。
2.修改Mac地址,这一步较Windows中的修改要简单。
命令是:“ifconfig eth0 hw ether 00AABBCCDDEE”
3.重新启用网卡
“ifconfig eth0 up”网卡的Mac地址更改就完成了。
现在还有很多软件提供了修改Mac地址的功能,如:Mac2001
那么既然IP和Mac地址都可以改,那么怎么防御呢?通过简单的交换机端口绑定(端口的Mac表使用静态表项),可以在每个交换机端口只连接一台主机的情况下防止修改Mac地址的盗用,如果是三层设备还可以提供:交换机端口-IP-Mac 三者的绑定,防止修改Mac的IP盗用,这种方法更有效!还有些方法如配置交换机的VLAN,使用用户认证等,都略显复杂,再次不多浪费笔墨。
(DVOL本文转自:中国DV传媒 http://www.dvol.cn)