首先,网络中为什么需要防火墙(firework)?
首先一个企业的内部网络,通过连线连到了互联网上,但在互联网上可能会有黑客,我们希望有些不该来的人不来,所以我们会在内部网络布置一个防护措施,同时,一个公司的内部也会有一些不该访问的人去访问一些东西,我们需要在一些重要资源面前建立一些访问控制的措施,保证没有授权的人不要访问。
其次,防火墙能解决什么问题?
- 防火墙可以阻止“自己不喜欢”外部人的来访;
- 可以阻止内部人员访问“去不该去”的地方;
- 但是防火墙不关心访问的具体内容。
那么防火墙怎么去实现允许做这个和不允许做这个事呢?一般的做法是把防火墙部署在网络的进出口上,对来往的数据包进行判断,如果符合我们的安全策略就放过去,如果不符合就把它丢弃。所以防火墙又称作“安全网关”。
那么防火墙如何去控制数据流?
通常的时候看不见目的MAC和原MAC.防火墙就是通过控制五元组来控制对每个包的安全策略的部署。
Acess Control List:访问控制列表
标准IP访问控制列表:
access-list [list number] [permit | deny] [source-address] [wildcard-mask] [log]
例子:
access-list 1 deny 172.16.4.13 0 0 0 0 (阻止127.16.4.13主机的流量通过)
access-list 2 permit 172.16.0.0 0 0 255 255 (允许网络172.16.0.0的所有流量通过)
access-list 3 permit 0.0.0.0 255 255 255 255 (允许任何流量通过)
ACL规则的匹配原则
- 防火墙安全规则遵循从上到下匹配的原则,一旦有一条不匹配,剩余的都不进行匹配;
- 如果所有的规则都没有匹配,数据包将被丢弃;
- 安全过滤规则主要包含源、目的地址和端口,TCP标志位,应用时间以及一些高级过滤选项。
防火墙的工作方式:
-
包过滤
包过滤防火墙:防火墙部署在网络的必经链路上,对于进入的每一个数据包(三层包),逐条去匹配安全策略ACL,直到适合某条规则,最后执行规则设定的动作:放行或丢弃。
优点:简单易行,处理速度快
缺点:单包处理,只检查报头,前后数据包没有逻辑关系,不能发现通信中插入或漏缺的数据包,也不能发现假冒者的数据包,因此容易被DDOS攻击; -
状态检测
状态检测防火墙:也是基于包检测。针对每个用户的访问链接,建立协议运行的状态跟踪(如TCP协议状态),发现状态不匹配时,则不转发该数据包。
优点:建立连接状态(状态机模型),前后数据包有关联,可以阻止半连接的DDOS攻击
缺点:对用户链接数量有限制,防火墙的内部缓冲区大小限制跟踪的链接数量。 -
应用代理
应用网关防火墙:防火墙上开启若干应用代理,每个代理需要一个不同的应用进程,或一个后台运行的服务程序,对每个新的应用必须添加针对此应用的服务程序,否则不能使用该服务(不代理的业务无法通过)
优点:成为用户访问业务的“中间代理人”,中断了用户与服务器的直接连接,可以避免对服务器的直接入侵;俗称“协议落地”。
缺点:只是应用层代理,需要与包过滤、状态过滤技术一起使用。两边分别建立连接,设置内容缓冲区,但是缓冲时间长,速度慢,延迟大。
衡量防火墙设备的重要指标:性能
1.吞吐量:在不丢包的情况下单位时间内通过的数据包数量
2.时延:数据包第一个比特进入防火墙到最后一比特从防火墙输出的时间间隔
3.丢包率:通过防火墙传送时所丢失数据包数量占所发送数据包的比率
4.并发连接数:防火墙能够同时处理的点对点连接的最大数目(状态防火墙)
5.新建连接数:在不丢包的情况下每秒可以建立的最大连接数(状态防火墙)