在这篇文章里我们谈一谈网络攻击的机制,同时也着重讲述一下局域网系统避免遭受攻击的方法。
这里我们使用网络协议分层模式来分析局域网的安全。从图1可以看到,网络的七层在不同程度上会遭受到不同方式的攻击,如果攻击者取得成功,那将是非常危险的。而我们通常听到或见到的攻击往往发生在应用层,这些攻击主要是针对Web服务器、浏览器和他们访问到的信息,比较常见的还有攻击开放的文件系统部分。
下面两个方法从实践上来说被认为是非常有用的防范手段。
1.包过滤
图1 七层模型易遭受的安全攻击
在网络层检查通信数据,观察它的源地址和目的地址。过滤器可以禁止特定的地址或地址范围传出或进入,也可以禁止令人怀疑的地址模式。
2.防火墙
图2 包过滤器的配置
在应用层检查通信数据,检查消息地址中的端口,或检查特定应用的消息内容。测试失败的任何通信数据将被拒绝。
一、路由包过滤
TCP/IP地址由机器地址和标识程序处理消息的端口数字组成。这个地址/端口组合信息对每个TCP/IP消息都是有效的。包过滤与防火墙相比处理的简单一些,它仅是观察TCP/IP地址,而不是端口数字或消息内容。不过包过滤提供给你的是很好的网络安全工具。
包过滤器通常使用的是自顶向下的操作原则,下面是它使用的一个典型规则:
●允许所有传出通信数据通过;
●拒绝建立新的传入连接;
●其它的数据可以全部被接受。
通过这样的使用规则,系统的安全性提高了许多。因为它拒绝了Internet上主动与你的计算机建立新连接的请求。它阻止使用TCP的通信数据进入,从而杜绝了对共享驱动器和文件的未授权访问。
过滤器通常的应用是配置在连接你的计算机和Internet的路由器上,如图2所示。在你的局域网和Internet之间放置过滤器后,就可以保证局域网与Internet所有的通信数据都要经过过滤器。
如果包过滤软件有能力检查源地址子网,从子网物理端口传递消息到路由器,你就可以制定规则来避免虚假的TCP/IP地址,就象图2所示的那样。攻击者欺骗的方法就是把来自Internet的消息伪装成来自你局域网的消息。包过滤通过拒收带有不可能源地址的消息来防御攻击者的攻击。例如,假定你在一个装有Linux的机器上安装软件,让它作为一个Windows网络文件服务器,你可以配置Linux让它拒收所有来自你的子网以外的通信数据,阻止Internet上的机器看到这个文件服务器。如果攻击者假装是你内部的机器,用过滤器就可以阻止攻击者的攻击。
包过滤虽然对网络的安全防范能起到很好的作用,但包过滤也并不是万能的。它们一般不能防御使用UDP协议的攻击,因为过滤器不能拒收开放的消息。包过滤还不能防御低层攻击,象PING方式的攻击。
二、防火墙
使用防火墙软件可以在一定程度上控制局域网和Internet之间传递的数据。图3所示是一个TCP/IP数据包报头示意图,从它上面可以清楚地看到包过滤和防火墙工作原理的不同之处。防火墙不但检查了包过滤检查内容的所有部分(TCP/IP的源地址和目的地址),还检查了源/目的端口数字和包的内容。
图3 包过滤器和防火墙的信息源
端口和消息内容这些信息使防火墙比包过滤有更强的防范能力,因为这些信息使防火墙控制特定进/出的主机地址。防火墙的功能有以下几个方面:
●允许或禁止特定的应用服务,例如:FTP或Web页面服务;
●允许或禁止访问基于被传递的信息内容的服务。
防火墙最直接的实施就是使用图2所示的结构,仅把局域网和ISP之间的包过滤器换成防火墙就可以了。这是一个防火墙的最安全的应用,因为它保护了防火墙后面的所有计算机。
图4 防火墙中使用DMZ
如果我们把图2改为图4所示的结构,就可以很好地解决这个问题。图4的结构中有3个端口。第三个端口连接的是另一个局域网,通常叫做DMZ(非军事区)。DMZ中的计算机与安全局域网中的计算机相比安全性要差一些,但是这些计算机可以接受来自Internet的访问。你可以把Web和FTP服务器放在DMZ,从而可以保护其它的计算机。防火墙上的规则设定为阻止进入安全局域网的通信数据,仅允许传出连接的建立。
如果你想增强DMZ局域网的安全性,可以使用过滤器,限制局域网中服务器使用的端口,禁止那些来自攻击站点的访问。
为了安全还可以给你的局域网分段,每段设置一个防火墙,每个防火墙使用不同的安全规则。需要记住的一点是,防火墙本身并没有保障安全的能力,你需要定期的检查防火墙对可疑事件做出的日志记录,还需要去发现和使用软件的安全补丁。
如果你使用Windows 98第二版的Internet共享连接功能,让你的一台计算机通过Modem把局域网连接上Internet。在这种情况下,你的网络是很不安全的,仍需要改善网络的安全性。最大的威胁就是你的电脑直接连接在了Internet上,你应该直接在这台电脑上安装包过滤器或防火墙产品,或让你的ISP安装包过滤器或防火墙来保护你的访问。
●允许所有传出通信数据通过;
●拒绝建立新的传入连接;
●其它的数据可以全部被接受。
通过这样的使用规则,系统的安全性提高了许多。因为它拒绝了Internet上主动与你的计算机建立新连接的请求。它阻止使用TCP的通信数据进入,从而杜绝了对共享驱动器和文件的未授权访问。
过滤器通常的应用是配置在连接你的计算机和Internet的路由器上,如图2所示。在你的局域网和Internet之间放置过滤器后,就可以保证局域网与Internet所有的通信数据都要经过过滤器。
如果包过滤软件有能力检查源地址子网,从子网物理端口传递消息到路由器,你就可以制定规则来避免虚假的TCP/IP地址,就象图2所示的那样。攻击者欺骗的方法就是把来自Internet的消息伪装成来自你局域网的消息。包过滤通过拒收带有不可能源地址的消息来防御攻击者的攻击。例如,假定你在一个装有Linux的机器上安装软件,让它作为一个Windows网络文件服务器,你可以配置Linux让它拒收所有来自你的子网以外的通信数据,阻止Internet上的机器看到这个文件服务器。如果攻击者假装是你内部的机器,用过滤器就可以阻止攻击者的攻击。
包过滤虽然对网络的安全防范能起到很好的作用,但包过滤也并不是万能的。它们一般不能防御使用UDP协议的攻击,因为过滤器不能拒收开放的消息。包过滤还不能防御低层攻击,象PING方式的攻击。