防火墙和路由器一样,工作在OSI的网络层,防火墙也被称为防护墙,它是一种位于内部网络与外部网络之间的网络安全系统,可以将内部网络和外部网络隔离。通常,防火墙可以保护内部/私有局域网免受外部攻击,并防止重要数据泄露。
在没有防火墙的情况下,路由器会在内部网络和外部网络之间盲目传递流量且没有过滤机制,而防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。
防火墙较于路由器,主要多了安全策略,应用层网关以及基于session来转发数据包
防火墙基本部署
除了将内网与外部Internet隔离之外,防火墙还可以将局域网中的普通数据和重要数据进行分离,所以也可以避免内部入侵。
内网隔离
防火墙有硬件防火墙和软件防火墙两种类型,硬件防火墙允许通过端口的传输控制协议(TCP)或用户数据报协议(UDP)来定义阻塞规则,例如:可以禁止不必要的端口和IP地址的访问。软件防火墙就像互联内部网络和外部网络的代理服务器,它可以让内部网络不直接与外部网络进行通信,但是很多企业和数据中心会将这两种类型的防火墙进行结合,主要是因为这样做可以更加有效地提升网络的安全性。
包过滤防火墙
包过滤防火墙控制OSI的三、四层,一般是通过ACL来匹配数据包内容,以决定哪些包被允许和哪些包被拒绝。
优点:
缺点:
状态检测防火墙
控制OSI的三、四、五层
状态检测防火墙工作在数据链路层和网络层之间,对于新建的应用连接,它从这里截取数据包提取出的信息,并根据对应的安全策略及过滤规则处理数据包,生成状态表,这样防火墙确保了截取和检查所有通过网络的原始数据包。然后将相关信息组合起来,进行一些逻辑或数学运算,获得相应的结论,进行相应的操作,如允许数据包通过、拒绝数据包、认证连接,加密数据等。状态检测防火墙虽然工作在协议栈较低层,但它检测所有应用层的数据包,从中提取有用信息,如IP地址、端口号等,这样安全性得到很大提高。另外在这种防火墙中一旦一个连接建立起来,就不用再对这个连接做更多工作,系统可以去处理别的连接,执行效率明显提高。
状态检测防火墙实现了基于UDP应用的安全,通过在UDP通信之上保持一个虚拟连接来实现。防火墙保存通过网关的每一个连接的状态信息,允许穿过防火墙的UDP请求包被记录,当UDP包在相反方向上通过时,依据连接状态表确定该UDP包是否被授权的,若已被授权,则通过,否则拒绝。如果在指定的一段时间内响应数据包没有到达,连接超时,则该连接被阻塞,这样所有的攻击都被阻塞。状态检测防火墙可以控制无效连接的连接时间,避免大量的无效连接占用过多的网络资源,可以很好的降低DOS和DDoS攻击的风险。
状态检测防火墙规则
缺点:
状态检测防火墙虽然继承了包过滤防火墙和应用网关防火墙的优点,克服了它们的缺点,但它仍只是检测数据包的第三层信息,无法彻底的识别数据包中大量的垃圾邮件、广告以及木马程序等。
应用网关防火墙
控制OSI的三、四、五、七层
能截获用户的初始化连接请求,并发送给用户一个认证信息的请求
所以进出网络的应用程序报文都必须通过应用网关。当某应用客户进程向服务器发送一份请求报文时,先发送给应用网关,应用网关在应用层打开该报文,查看该请求是否合法(可根据应用层用户标识ID或其他应用层信息来确定)。如果请求合法,应用网关以客户进程的身份将请求报文转发给原始服务器。如果不合法,报文则被丢弃。例如,一个邮件网关在检查每一个邮件时,根据邮件地址,或邮件的其他首部,甚至是报文的内容(如有没有"哈哈","呵呵"等自定义敏感词)来确定该邮件能否通过防火墙。
虽然这种类型的防火墙是很安全的,但因为这种类型的防火墙必须为每个传输层服务设置一个代理,任何要使用新服务必须安装一个相应的代理,并通过该代理来操作发起连接。每个应用都需要一个不同的应用网关(可以运行在同一台主机上)。其次在应用层转发和处理报文,处理负担比较重。另外,对应用程序不透明,需要在应用程序客户端配置应用网关地址。