网络—安全—防火墙
是什么(表面概念)
防火墙:一种高级访问控制设备,置于不同网络安全域之间,它通过相关的安全策略来控制(允许、拒绝、监视、记录)进出网络的访问行为。
是什么(设备结构和运行原理)
设备结构
Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC)地址的过滤和基于状态的过滤、包速率限制等。
iptables指的是用来管理Linux防火墙的命令程序,通常位于/sbin/iptables,属于“用户态”的防火墙管理体系。iptables是控制Netfilter的工具,是Linux 2.2版内核中比较老的命令ipchains的兄弟。
运行原理
OSI七层模型 | 层级描述 | 层级数据 | 安全设备防火墙 | 运行原理 | |
---|---|---|---|---|---|
一层 | 物理层 | ||||
二层 | 数据链路层 | 针对来源与目标的 MAC 进行抵挡 | |||
三层 | 网络层 | 包packet | 包过滤防火墙(Packet filtering) | 包过滤:仅根据数据包头中的IP地址、端口号、协议类型等标志确定是否允许数据包通过。 | |
四层 | 传输层 | 段Segment | 针对 TCP/UDP 的埠口进行抵挡,也可以针对 TCP 的状态 (code) 来处理 | ||
五层 | 会话层 | ||||
六层 | 表示层 | ||||
七层 | 应用层 | 数据Data | 应用代理(Application Proxy)防火墙 | 应用代理:通过编写不同的应用代理程序,实现对应用层数据的检测和分析。 |
防火墙运行原理:包过滤、应用代理、状态检测、完全内容检测。
包过滤Packet filtering
包过滤(Packet filtering):工作在网络层,仅根据数据包头中的IP地址、端口号、协议类型等标志确定是否允许数据包通过。
应用代理Application Proxy
应用代理(Application Proxy):工作在应用层,通过编写不同的应用代理程序,实现对应用层数据的检测和分析。
状态检测Stateful Inspection
状态检测(Stateful Inspection):工作在2~4层,访问控制方式与1同,但处理的对象不是单个数据包,而是整个连接,通过规则表和连接状态表,综合判断是否允许数据包通过。
完全内容检测Compelete Content Inspection
完全内容检测(Compelete Content Inspection):工作在2~7层,不仅分析数据包头信息、状态信息,而且对应用层协议进行还原和内容分析,有效防范混合型安全威胁。
有什么
网络层防火墙
网络层防火墙可视为一种 IP 封包过滤器,运作在底层的TCP/IP协议堆栈上。可以以枚举的方式只允许符合特定规则的封包通过,其余的一概禁止穿越防火墙(病毒除外,防火墙不能防止病毒侵入)。这些规则通常可以经由管理员定义或修改,不过某些防火墙设备可能只能套用内置的规则。
应用层防火墙
应用层防火墙是在 TCP/IP 堆栈的“应用层”上运作,您使用浏览器时所产生的数据流或是使用 FTP 时的数据流都是属于这一层。应用层防火墙可以拦截进出某应用程序的所有封包,并且封锁其他的封包(通常是直接将封包丢弃)。理论上,这一类的防火墙可以完全阻绝外部的数据流进到受保护的机器里。
数据库防火墙
数据库防火墙是一款基于数据库协议分析与控制技术的数据库安全防护系统。基于主动防御机制,实现数据库的访问行为控制、危险操作阻断、可疑行为审计。
数据库防火墙通过SQL协议分析,根据预定义的禁止和许可策略让合法的SQL操作通过,阻断非法违规操作,形成数据库的外围防御圈,实现SQL危险操作的主动预防、实时审计。
数据库防火墙面对来自于外部的入侵行为,提供SQL注入禁止和数据库虚拟补丁包功能。
局限性
防火墙虽然是保护网络安全的基础性设施,但是它还存在着一些不易防范的安全威胁:
首先防火墙不能防范未经过防火墙或绕过防火墙的攻击。例如,如果允许从受保护的网络内部向外拨号,一些用户就可能形成与Internet 的直接连接。
防火墙基于数据包包头信息的检测阻断方式,主要对主机提供或请求的服务进行访问控制,无法阻断通过开放端口流入的有害流量,并不是对蠕虫或者黑客攻击的解决方案。
另外,防火墙很难防范来自于网络内部的攻击或滥用。