怎样破坏双宿主机防火墙的安全
了解双宿主机防火墙的安全性是如何被破坏的是很有用的,因为这样一来你就可以采取相应的措施来防止发生这种破坏.
对安全最大的危胁是一个攻击者掌握了直接登录到双宿主机的权限. 登录到一个双宿主机上总是应该通过双宿主机上的一个应用层代理进行. 对从外部不可信任网络进行登录应该进行严格的身份验证
如果外部用户获得了在双宿主机上进行登录的权利,那么内部网络就容易遭到攻击. 这种攻击可以通过以下任何一种方式来进行:
1)通过文件系统上宽松的许可权限制
2)通过内部网络上由NFS安装的卷
3)利用已经被破坏了的用户帐号,通过在这类用户的主目录下的主机等价文件,如.rhosts,来访问由Berkeley r*工具授权的服务
4)利用可能恢复的过分访问权的网络备份程序
5)通过使用没有适当安全防范的用于管理的SHELL脚本
6)通过从没有适当安全防范的过时软件的修订版和发行文档来掌握系统的漏洞
7)通过安装允许IP传递的老版本操作系统内核,或者安装存在安全问题的老版本 操作系统 内核.
如果一台双宿主机失效了,则内部网络将被置于外部攻击之下,除非这个问题很快被查出并解决.
在前面,我们已经了解到UNIX内核变量ifrorwarding控制着是否允许进行IP路由选择.如果一个攻击者获得了足够的系统权限,则这个攻击者就可以改变这个内核变量的值,从而允许IP转发. 在允许IP转发后,防火墙机制就会被旁路掉了.
双宿主机防火墙上的服务
除了禁止IP转发,你还应该从双宿主机防火墙中移走所有的影响到安全的程序、工具和服务,以免落入攻击者的手中. 下面是UNIX双宿主机防火墙的一部分有用的检查点:
1)移走程序开发工具:编译器、链接器等.
2)移走你不需要或不了解的具有 SUID和SGID权限的程序. 如果系统不工作,你可以移回一些必要的基本程序.
3)使用磁盘分区,从而使在一个磁盘分区上发动的填满所有磁盘空间的攻击被限制在那个磁盘分区当中.
4)删去不需要的系统和专门帐号.
5)删去不需要的网络服务,使用netstat -a来检验. 编辑/etc/inetd.conf和/etc/services文件,删除不需要的网络服务定义.
2.4代理服务和应用层网关
代理服务 (Proxy Service)
代理服务使用的的方法与分组过滤器不同,代理(Proxy)使用一个客户程序(或许经过修改),与特定的中间结点连接,然后中间结点与期望的服务器进行实际连接. 与分组过滤器所不同的是, 使用这类防火墙时外部网络与内部网络之间不存在直接连接. 因此,即使防火墙发生了问题,外部网络也无法与被保护的网络连接. 中间结点通常为双宿主机.
代理服务可提供详细的日志记录(log)及审计(audit)功能, 这大大提高了网络的安全性,也为改进现有软件的安全性能提供了可能性. 代理服务器可运行在双宿主机上,它是基于特定应用程序的. 为了通过代理支持一个新的协议,必须修改代理以适应新协议.
在一个称为SOCKS的免费程序库中包括了与许多标准系统调用基本兼容的代理版本,如SOCKS()、BIND()、CONNECT()等. 在URL统一资源定位地址 ftp://ftp.inoc.dl.nec.com/pub/security/sock.cstc
代理服务通常由两个部分构成: 代理服务器程序和客户程序. 相当多的代理服务器要求使用固定的客户程序. 例如SOCKS要求适应SICKS的客户程序. 如果网络管理员不能改变所有的代理服务器和客户程序, 系统就不能正常工作. 代理使网络管理员有了更大的能力改善网络的安全特性. 然而,它也给软件开发者、网络系统员和最终用户带来了很大的不便,这就是使用代理的代价. 也有一些标准的客户程序可以利用代理服务器通过防火墙运行,如mail、FTP和telnet等. 即便如此,最终用户也许还需要学习特定的步骤通过防火墙进行通信.
透明性对基于代理服务企的防火墙显然是一个大问题. 即使是那些声称是透明性防火墙的代理也期望应用程序使用特定的TCP或UDP端口. 假如一个节点在非标准端口上运行一个标准应用程序, 代理将不支持这个应用程序. 许多防火墙允许系统管理员运行两个代理拷贝, 一个在标准端口运行,另一个在非标准端口运行,常用服务的最大数目取决于不同的防火墙产品.
基于代理服务的防火墙厂商正在开始解决这个问题. 基于代理的产品开始改进成能够设置常用服务和非标准端口. 然而,只要应用程序需要升级,基于代理的用户会发现他们必须发展新的代理. 一个明显的例子是许多的Web浏览器中加入了大量的安全措施. 防火墙的购买者应留心询问防火墙厂商他们的产品到底能处理哪些应用程序. 另外, 基于代理服务器的防火墙常常会使网络性能明显下降. 相当多的防火墙不能处理高负载的网络通信.
应用层网关
应用层网关可以处理存储转发通信业务,也可以处理交互式通信业务. 通过适当的程序设计,应用层网关可以理解在用户应用层(OSI模型第七层)的通信业务. 这样便可以在用户层或应用层提供访问控制,并且可以用来对各种应用程序的使用情况维持一个智能性的日志文件. 能够记录和控制所有进出通信业务,是采用应用层网关的主要优点. 在需要时,在网关本身中还可以增加额外的安全措施.
对于所中转的每种应用,应用层网关需要使用专用的程序代码. 由于有这种专用的程序代码,应用层网关可以提供高可靠性的安全机制. 每当一个新的需保护的应用加入网络中时,必须为其编制专门的程序代码. 正是如此,许多应用层网关只能提供有限的应用和服务功能.
为了使用应用层网关,用户或者在应用层网关上登录请求,或者在本地机器上使用一个为该服务特别编制的程序代码. 每个针对特定应用的网关模块都有自己的一套管理工具和命令语言.
采用应用层网关的一个缺陷是必须为每一项应用编制专用程序. 但从安全角度上看,这也是一个优点,因为除非明确地提供了应用层网关,就不可能通过防火墙. 这也是在实践“未被明确允许的就将被禁止”的原则.
专用应用程序的作用是作为“代理”接收进入的请求,并按照一个访问规则检查表进行核查,检查表中给出所允许的请求类型. 在这种情况下,这个代理程序被称为一个应用层服务程序代理. 当收到一个请求并证实该请求是允许的之后,代理程序将把该请求转发给所要求的服务程序. 因此,代理程序担当着客户机和服务器的双重角色. 它作为服务器接收外来请求,而在转发请求时它又担当客户机. 一旦会话已经建立起来,应用代理程序便作为中转站在起动该应用的客户机和服务器之间转抄数据. 因为在客户机和服务器之间传递的所有数据均由应用层代理程序转发,因此它完全控制着会话过程,并可按照需要进行详细的记录. 在许多应用层网关中,代理程序是由一个单一的应用层模块实现的.
资料参考: http://www.96pc.com
了解双宿主机防火墙的安全性是如何被破坏的是很有用的,因为这样一来你就可以采取相应的措施来防止发生这种破坏.
对安全最大的危胁是一个攻击者掌握了直接登录到双宿主机的权限. 登录到一个双宿主机上总是应该通过双宿主机上的一个应用层代理进行. 对从外部不可信任网络进行登录应该进行严格的身份验证
如果外部用户获得了在双宿主机上进行登录的权利,那么内部网络就容易遭到攻击. 这种攻击可以通过以下任何一种方式来进行:
1)通过文件系统上宽松的许可权限制
2)通过内部网络上由NFS安装的卷
3)利用已经被破坏了的用户帐号,通过在这类用户的主目录下的主机等价文件,如.rhosts,来访问由Berkeley r*工具授权的服务
4)利用可能恢复的过分访问权的网络备份程序
5)通过使用没有适当安全防范的用于管理的SHELL脚本
6)通过从没有适当安全防范的过时软件的修订版和发行文档来掌握系统的漏洞
7)通过安装允许IP传递的老版本操作系统内核,或者安装存在安全问题的老版本 操作系统 内核.
如果一台双宿主机失效了,则内部网络将被置于外部攻击之下,除非这个问题很快被查出并解决.
在前面,我们已经了解到UNIX内核变量ifrorwarding控制着是否允许进行IP路由选择.如果一个攻击者获得了足够的系统权限,则这个攻击者就可以改变这个内核变量的值,从而允许IP转发. 在允许IP转发后,防火墙机制就会被旁路掉了.
双宿主机防火墙上的服务
除了禁止IP转发,你还应该从双宿主机防火墙中移走所有的影响到安全的程序、工具和服务,以免落入攻击者的手中. 下面是UNIX双宿主机防火墙的一部分有用的检查点:
1)移走程序开发工具:编译器、链接器等.
2)移走你不需要或不了解的具有 SUID和SGID权限的程序. 如果系统不工作,你可以移回一些必要的基本程序.
3)使用磁盘分区,从而使在一个磁盘分区上发动的填满所有磁盘空间的攻击被限制在那个磁盘分区当中.
4)删去不需要的系统和专门帐号.
5)删去不需要的网络服务,使用netstat -a来检验. 编辑/etc/inetd.conf和/etc/services文件,删除不需要的网络服务定义.
2.4代理服务和应用层网关
代理服务 (Proxy Service)
代理服务使用的的方法与分组过滤器不同,代理(Proxy)使用一个客户程序(或许经过修改),与特定的中间结点连接,然后中间结点与期望的服务器进行实际连接. 与分组过滤器所不同的是, 使用这类防火墙时外部网络与内部网络之间不存在直接连接. 因此,即使防火墙发生了问题,外部网络也无法与被保护的网络连接. 中间结点通常为双宿主机.
代理服务可提供详细的日志记录(log)及审计(audit)功能, 这大大提高了网络的安全性,也为改进现有软件的安全性能提供了可能性. 代理服务器可运行在双宿主机上,它是基于特定应用程序的. 为了通过代理支持一个新的协议,必须修改代理以适应新协议.
在一个称为SOCKS的免费程序库中包括了与许多标准系统调用基本兼容的代理版本,如SOCKS()、BIND()、CONNECT()等. 在URL统一资源定位地址 ftp://ftp.inoc.dl.nec.com/pub/security/sock.cstc
代理服务通常由两个部分构成: 代理服务器程序和客户程序. 相当多的代理服务器要求使用固定的客户程序. 例如SOCKS要求适应SICKS的客户程序. 如果网络管理员不能改变所有的代理服务器和客户程序, 系统就不能正常工作. 代理使网络管理员有了更大的能力改善网络的安全特性. 然而,它也给软件开发者、网络系统员和最终用户带来了很大的不便,这就是使用代理的代价. 也有一些标准的客户程序可以利用代理服务器通过防火墙运行,如mail、FTP和telnet等. 即便如此,最终用户也许还需要学习特定的步骤通过防火墙进行通信.
透明性对基于代理服务企的防火墙显然是一个大问题. 即使是那些声称是透明性防火墙的代理也期望应用程序使用特定的TCP或UDP端口. 假如一个节点在非标准端口上运行一个标准应用程序, 代理将不支持这个应用程序. 许多防火墙允许系统管理员运行两个代理拷贝, 一个在标准端口运行,另一个在非标准端口运行,常用服务的最大数目取决于不同的防火墙产品.
基于代理服务的防火墙厂商正在开始解决这个问题. 基于代理的产品开始改进成能够设置常用服务和非标准端口. 然而,只要应用程序需要升级,基于代理的用户会发现他们必须发展新的代理. 一个明显的例子是许多的Web浏览器中加入了大量的安全措施. 防火墙的购买者应留心询问防火墙厂商他们的产品到底能处理哪些应用程序. 另外, 基于代理服务器的防火墙常常会使网络性能明显下降. 相当多的防火墙不能处理高负载的网络通信.
应用层网关
应用层网关可以处理存储转发通信业务,也可以处理交互式通信业务. 通过适当的程序设计,应用层网关可以理解在用户应用层(OSI模型第七层)的通信业务. 这样便可以在用户层或应用层提供访问控制,并且可以用来对各种应用程序的使用情况维持一个智能性的日志文件. 能够记录和控制所有进出通信业务,是采用应用层网关的主要优点. 在需要时,在网关本身中还可以增加额外的安全措施.
对于所中转的每种应用,应用层网关需要使用专用的程序代码. 由于有这种专用的程序代码,应用层网关可以提供高可靠性的安全机制. 每当一个新的需保护的应用加入网络中时,必须为其编制专门的程序代码. 正是如此,许多应用层网关只能提供有限的应用和服务功能.
为了使用应用层网关,用户或者在应用层网关上登录请求,或者在本地机器上使用一个为该服务特别编制的程序代码. 每个针对特定应用的网关模块都有自己的一套管理工具和命令语言.
采用应用层网关的一个缺陷是必须为每一项应用编制专用程序. 但从安全角度上看,这也是一个优点,因为除非明确地提供了应用层网关,就不可能通过防火墙. 这也是在实践“未被明确允许的就将被禁止”的原则.
专用应用程序的作用是作为“代理”接收进入的请求,并按照一个访问规则检查表进行核查,检查表中给出所允许的请求类型. 在这种情况下,这个代理程序被称为一个应用层服务程序代理. 当收到一个请求并证实该请求是允许的之后,代理程序将把该请求转发给所要求的服务程序. 因此,代理程序担当着客户机和服务器的双重角色. 它作为服务器接收外来请求,而在转发请求时它又担当客户机. 一旦会话已经建立起来,应用代理程序便作为中转站在起动该应用的客户机和服务器之间转抄数据. 因为在客户机和服务器之间传递的所有数据均由应用层代理程序转发,因此它完全控制着会话过程,并可按照需要进行详细的记录. 在许多应用层网关中,代理程序是由一个单一的应用层模块实现的.
资料参考: http://www.96pc.com