防火墙技术将本地网络连接到Internet之后,Internet上的计算机就能自由访问本地网络中的计算机了 。显然,由于本地网络属于同一个组织,本地网络中的计算机相互之间都可以信任,而外部Internet上的计算机可能来自任意地方,因此不可信任 。如何给可信任的本地网络中的计算机提供资源,而不给其他Internet上的计算机提供访问或入侵的机会,同时又不妨碍本地网络中的计算机正常访问Internet,就成为了建立内部网络的一个要求 。
当然,针对每个计算机进行设置,也可以达到屏蔽外部网络访问的目的 。然而这样做一方面不太方便,对每个计算机都要进行设置,另一方面不太安全,内部网络中不是每台计算机使用的操作系统都具备良好的保护措施,而外部网络中的计算机可以通过这些不安全的操作系统进入内部网络,提供了攻击的途径 。因此更好的办法是御入侵者于网络之外,在内部网络和外部网络中架设一个防火墙,所有的访问都需要经过它进行验证,对内部网络提供了保护作用 。
包过滤技术
为了对内部网络提供保护,就有必要对通过防火墙的数据包进行检查,例如检查其源地址和目的地址、端口地址、数据包的类型等,根据这些数据来判断这个数据包是否为合法数据包,如果不符合预定义的规则,就不将这个数据包发送到其目的计算机中去 。由于包过滤技术要求内外通信的数据包必须通过使用这个技术的计算机,才能进行过滤,因而包过滤技术必须用在路由器上 。因为只有路由器才是连接多个网络的桥梁,所有网络之间交换的数据包都得经过它,所以路由器就有能力对每个数据包进行检查 。
通常的路由器都支持基本的包过滤能力,路由器在转发IP数据包的时候,缺省状态并不涉及数据包中的内容,只是按照IP包的目的地址和本身的路由表进行转发 。为了使得它进行包过滤,就必须定义一系列过滤规则,使得路由器能进行过滤 。通常情况下,过滤能针对IP地址、端口地址、连接类型等进行设定,还能够针对数据包进行转发,将数据包转发到合适的计算机中 。
在包过滤的条件下,内部网络的计算机还是直接和外部计算机相通信的 。由于这是直接在IP层工作,可以适合所有的应用服务,灵活性和效率都较高 。但也存在缺点,比如不能了解应用协议的具体形式,也不能提供清晰的日志记录等 。
代理服务
代理服务是另一种防火墙技术,与包过滤不同,它直接和应用服务程序打交道 。它不会让数据包直接通过,而是自己接收了数据包,并对其进行分析 。当代理程序理解了连接请求之后,它将自己启动另一个连接,向外部网络发送同样的请求,然后将返回的数据发送回那个提出请求的内部网计算机 。
虽然代理服务器不必连接到两个网络上就能提供代理服务,然而要想通过代理服务器限制网络之间的通信,提供代理服务的计算机必须连接到两个网络上,所有的网络之间通信都需要通过它的代理才行,而不能直接连接到Internet上 。因此代理服务器也不能打开包转发能力,如果代理服务器同时也是路由器,那么内部计算机就可以通过它的路由能力而非代理能力在不同的网络之间通信,代理服务器就起不到防火墙的作用 。除非特定情况下,才能设置路由能力,此时也应该配置了更严格的包过滤规则,以保护网络安全 。
在有代理服务的情况下,内部网络的计算机必须配置具体的代理服务使用的代理服务器,它只同代理服务器打交道,而由代理服务器发送请求并返回结果 。代理服务器必须要了解它要代理的服务,并为每一种服务都提供详细的访问日志记录,并能针对不同的使用者进行认证 。
推荐阅读
- FreeBSD 升级和优化全攻略
- FreeBSD Kernel文字详解
- 53 FreeBSD连载:中文X服务器
- A FreeBSD 编辑器VI
- 42 FreeBSD连载:NFS客户支持
- 76 FreeBSD连载:设置基本系统
- FreeBSD 实用小技巧ctrl+d
- FreeBSD 权限操作
- 在FreeBSD中安装双网卡实例
- 最简单FreeBSD网关方案