防火墙技术分为三种:包过滤防火墙,代理防火墙,状态包过滤;
包过滤防火墙:
使用ACL控制进入或离开的网络流量,ACL可以匹配包的类型或其他参数(如源IP地址,目的Ip地址,端口号等)来制定。该类防火墙有以下不足,ACL制定和维护都比较困难;可以使用IP欺骗很容易绕过ACL;
代理防火墙:
也叫做代理服务器。他在OSI的高层检查数据包,然后和制定的规则相比较,如果数据包的内容符合规则并且被允许,那么代理服务器就代替源主机向目的地址发送请求,从外部主机收到请求后,在转发给被保护的源请求主机。代理防火墙的缺点就是性能问题,由于代理防火墙会对每个经过它的包都会做深度检查,即使这个包以前检查过,所以对系统和网络的性能都有很大的影响。
状态包过滤防火墙:
Cisco ASA就是使用的状态包过滤防火墙,该防火墙会维护每个会话的状态信息,这些状态信息写在状态表里,状态表的条目有源地址,目的地址,端口号,TCP序列号信息以及每个Tcp或Udp的其他的标签信息。所有进入或外出的流量都会和状态表中的连接状态进行比较,只有状态表中的条目匹配的时候才允许流量通过。防火墙收到一个流量后,首先查看是否已经存在于连接表中,如果没有存在,则看这个连接是否符合安全策略,如果符合,则处理后将该连接写入状态表;如果不符合安全策略,那么就将包丢弃。状态表也叫Fast Path,防火墙只处理第一个包,后续的属于该连接的包都会直接按照FastPath转发,因此性能就有很高的提升。
防火墙功能和许可证:
防火墙出厂的时候自带有一些基本的功能,如果需要增加一些额外的功能,那么就需要购买许可证(License)激活相应的功能。可以使用Show Version命令查看目前防火墙拥有的功能列表:
防火墙的许可证类型有:
Unrestricted(UR)–无限制的许可证使得该防火墙所能支持的所有特性全部打开。如无限制的活动连接数,打开防火墙所支持的所有端口,可以使用防火墙的Failover(故障切换功能)等等。
Restricted(R)–限制版,限制防火墙开启的特性,比如限制活动连接数,使防火墙不支持Failover,限制防火墙支持的最大接口数等;
Failover(FO)–该版本使得防火墙可以作为Secondary设备参与Failover(故障切换);
Failover-Active/Active(FO-AA)–该版本使得防火墙可以作为Secondary设备参与Active/Active Failover ,同时还要求另一个防火墙使用UR版。
ASA 安全算法:
ASA 处理TCP连接的安全算法
一个内部主机的第一个IP数据包导致一个转换槽的产生,这个信息会被保留在内存中,用来检查以后的数据包,做地址转换,然后防火墙利用TCP内的相关信息来建立一个连接槽
这个连接被标记为“未完成”是一个TCP的半开连接。
防火墙随机产生一个用于连接的初始序列号,,并且将数据包转发到外连接口。
在这一步,防火墙期待从目的主机收到一个同步确认包(Syn/Ack),然后防火墙将收到的包的相关信息依照连接槽内存储的信息进行匹配,计算信息的先后顺序,并将返回的数据包转发到内部主机。
内部主机通过发送一个ACK完成了连接建立和3次握手。
防火墙上的连接槽被标记为Connected或者Active-Established。这时就可以发送数据了。连接的“未完成”计数器也将被重置。
以上是防火墙处理TCP连接的安全算法。
ASA处理UDP连接的安全算法:
防火墙从内部主机收到第一Ip数据包,在检验已经配置好的转换设置后,防火墙将会创建一个转换槽,它将保存这个信息在内存中用来检查以后的数据包流。然后,防火墙利用UDP内的相关信息建立一个UDP连接槽。
在用户配置的UDP Timeout时间内,防火墙将会维护这个UDP连接槽。但是当UDP连接槽的Idle时间超出所配置的UDPtimeout时间,就会从连接表中删除。
在UDP的Timeout周期内,防火墙执行适应性安全算法(ASA)对 从目的主机收到的UDP数据包进行全状态检查。
如果返回的UDP数据包完全匹配并且没有超时,那么这个数据将被传回内部主机。
最后要注意,ASA的所有安全策略都是应用到状态连接中,因此要首先生成一个连接表,然后才会比较安全策略等内容。
UDP的一些特性
UDP是一个不可靠(无连接的),但却很高效的传输协议,其不可靠体现在它不提供传输的确认。
伪造UDP数据包很容易,因为他没有握手和序列的机制。由于没有状态机制,所以传输的发起者或者当前的状态经常不确定。
UDP不提供传输保障
没有连接的建立和中止。
UDP没有拥塞管理和避免机制
使用UDP的服务通常被分为两类:
请求-回应,或称之为乒乓服务。例如域名服务(DNS)
流服务,例如视频,VOIP,网络文件系统(NFS)
配置接口参数:
Securitylevel 对Asa/Pix来讲,每个接口都必须有一个安全级别,安全级别是0到100之间的数字,0代表低安全级别,100代表高安全级别;
默认情况下,所有从高安全级别接口到低安全级别接口的流量都是允许的,所有从低安全级别接口到高安全级别接口的流量都是被拒绝的,都需要使用ACL来允许想要允许的流量;当然,高安全级别接口到低安全级别接口的流量也可以通过ACL来控制。
默认情况下,相同安全级别接口之间不允许通信,可以使用命令:
Hostname(Config)#Same-Security-Trafficpermit Inter-Interface
允许相同安全级别接口之间互相通信:
对于防火墙的任何接口,都必须配置以下内容:
Name
Ip Address
Security Level
静态路由
在防火墙模式下,ASA支持静态和默认路由,ASA只支持RIP和OSPF,因此如果你的网络运行的是其他的路由协议,那么就要使用静态路由,使用静态路由可以节省CPU的负载。ASA在相同的接口,最多支持3条等价静态路由。
Hostname(Config)#Route接口名称 目标网段 掩码 下一跳地址
配置ACL
一个ACL是由多个访问控制条目(Access Control Entries,ACE)组成,一个ACE指明一个Permit或Deny规则,一个ACE可以根据协议,指定的源地址和目的地址、端口号、ICMP类型等来定义,ACE的执行是按照顺序执行的,一旦发现匹配的ACE,那么就不会再继续往下匹配。
对于TCP和UDP连接,不需要使用ACL来允许返回的流量进入,因为防火墙的安全算法会生成一个连接表来允许这些流量的返回;对于无连接流量,比如ICMP,需要使用ACL来明确允许返回的流量进入防火墙,或者可以打开ICMP审查引擎。
关于ACL相关命令参考书上的命令
多区域默认的访问规则:
Inside可以访问Outside。
Inside可以访问Dmz
Dmz可以访问Outside
Dmz不能访问Inside
Outside不能访问Inside
Outside不能访问Dmz.
原文;文章转载于:www.Blog.51cto.Com/Miaoyuanqiang/1651233