1、第9章 防火墙及其基本配置,9.1 防火墙概述,9.1.1 防火墙概述防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合。它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。它是提供信息安全服务,实现网络和信息安全的基础设施。 在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的安全。典型的防火墙建立在一个服务器或主机的机器上,也称为“堡垒主机”,它是一个多边协议路由器。这个堡垒主机连接两个网络,一边与内部网相连,另一边与因特网相
2、连。,1.防火墙的发展2.防火墙的功能防火墙通过控制和监测网络之间的信息交换和访问行为来实现对网络安全的有效管理,防止外部网络不安全的信息流入内部网络和限制内部网络的重要信息流到外部网络。(1)保护网络的安全性功能(2)网络监控审计功能(3)屏蔽内网信息外泄功能(4)NAT和VPN3.防火墙的缺陷,9.1.2 防火墙的分类,1.按组成结构分类(1)软件防火墙(2)硬件防火墙(3)芯片级防火墙2.按防火墙的技术原理分类(1)包过滤防火墙(2)代理防火墙 应用层网关防火墙电路层网关(3)状态监视防火墙,9.1.3 防火墙的体系结构,1.屏蔽路由器(Screening router)结构2.双穴主机
3、网关(Dual Homed Gateway)结构3.屏蔽主机网关(Screened Host Gateway)结构4.屏蔽子网(Screened Subnet)结构,9.2 防火墙的相关产品及其选购,9.2.1 防火墙相关产品1.软件防火墙Check Point Firewall Software Blade 2.硬件防火墙Cisco PIX Firewall 5203.芯片级硬件防火墙方正方通防火墙,9.2.2 防火墙的选购策略,1.安全性2.性能3.管理4.适用性5.售后服务,9.2.3 防火墙的发展趋势,(1)多功能(2)防病毒(3)灵活的代理系统 (4)简化的安装与管理(5)多级的过滤
4、技术 (6)Internet网关技术 (7)安全服务器网络(SSN)(8)审计和告警,9.3 IP访问列表的配置,9.3.1 访问列表概述(1)IP访问控制列表(IP access lists)IP访问控制列表用于过滤IP报文,包括TCP和UDP。它可细分为标准IP访问控制列表和扩展IP访问控制列表。标准IP访问控制列表(Standard IP access lists)只检查数据包的源地址,从而允许或拒绝基于网络、子网或主机的IP地址的所有通信流量通过路由器的出口。扩展IP访问控制列表(Extended IP access lists)不仅检查数据包的源地址,还要检查数据包的目的地址、特定协
5、议类型、源端口号、目的端口号等。(2)现代访问控制列表现代访问控制列表是在IP访问控制列表的基础上实现的灵活性更大的ACL列表方式。它包括动态访问控制列表、基于时间的访问控制列表、自反的访问控制列表和基于命名的访问控制列表。,9.3.2 标准IP访问列表的配置,1.标准IP访问列表的配置命令(1)定义标准ACL命令Firewall(config)#access-list list number permit|deny host/any source address wildcard-mask log下面对标准IP访问表基本格式中的各项参数进行解释:list number:即表号范围,标准IP访
6、问表的表号标识范围是199。permit/deny:允许或拒绝,关键字permit和deny用来表示满足访问表项的报文是允许通过接口,还是要过滤。permit表示允许报文通过接口,而deny表示匹配标准IP访问表源地址的报文要被丢弃。source address:源地址,对于标准的IP访问列表,源地址是主机或一组主机的点分十进制表示,如:210.43.32.10。host/any:主机匹配,host和any分别用于指定单个主机和所有主机,其中host表示一种精确的匹配,其屏蔽码为0.0.0.0。any是源地证/目标地址0.0.0.0/255.255.255.255的简写。wildcardmas
7、k:通配符屏蔽码,Cisco访问表功能所支持的通配符屏蔽码与子网掩码的方式是刚好相反的,也就是说,二进制的0表示一个“匹配”条件,二进制的1表示一个“不匹配”条件。,(2)应用访问列表到接口命令应用访问列表到接口命令:Firewall(config-if)#ip access-group access-list-number in|out参数注意:access-list-number: 标准ACL的表号范围为199。In:通过接口进入路由器的报文。Out:通过接口离开路由器的报文。(3)显示所有协议的访问列表配置细节显示所有协议的访问列表配置细节的配置命令:Firewall(config)#s
8、how access-list access-list-number。(4)显示IP访问列表显示IP访问列表的配置命令:Firewall(config)#show ip access-list access-list-number。,2.标准ACL配置举例(1)只允许网络192.168.0.0的数据通过,而阻塞其他所有的数据,配置命令如下:Firewall(config) # access-list 1 permit 192.168.0.0 0.0.0.255Firewall(config) # interface fa0/0Firewall(config-if) # ip access-gr
9、oup 1 outFirewall(config) # interface fa0/1Firewall(config-if) # ip access-group 1 out(2)阻塞来自一个特定主机192.168.0.1的通信流量,而把所有的其他的通信流量从fa0/0接口转发出去,配置命令如下:Firewall(config) # access-list 1 deny host 192.168.0.1Firewall(config) # access-list 1 permit anyFirewall(config) #int f0/0Firewall(config-if) # ip acce
10、ss-group 1 out (3)阻塞来自一个特定子网10.0.0.0的通信流量,而允许所有其他的通信流量,并把它们转发出去,配置命令如下:Firewall(config) # access-list 1 deny 10.0.0.0 0.255.255.255Firewall(config) # access-list 1 permit anyFirewall(config) # interface fa0/0Firewall(config-if) # ip access-group 1 out,9.3.3 扩展IP访问列表的配置,1.配置扩展访问列表相关命令(1)命令及格式Firewall
11、(config)#access-list access-list-number permit|deny protocol source-address source-wildcard source-port destinaiton address destination-wildcard destination-port options参数注意:access-list-number:编号范围为100199。Permit:通过;deny:禁止通过。protocol:需要被过滤的协议,如IP、TCP、UDP、ICMP、EIGRP、GRE等。source-address :源IP地址。source-
12、wildcard:源通配符掩码。source-port:源端口号,可以是单一的某个端口,也可以是一个端口范围。端口号可以使用一个数字或一个可识别的助记符显式地指定。例如,可以使用80或http来指定Web的超文本传输协议。端口的相关运算符如表9-3所示。,(2)将访问列表应用到接口的命令访问列表应用到接口的命令:Firewall(config-if)#ip access-group access-list-number in|out。参数注意:access-list-number: 扩展ACL的表号范围为100199。In:通过接口进入路由器的报文。Out:通过接口离开路由器的报文。(3)显示
13、所有协议的访问列表配置细节显示所有协议的访问列表配置细节的配置命令:Firewall(config)#show access-list access-list-number。(4)显示IP访问列表显示IP访问列表的配置命令:Firewall(config)#show ip access-list access-list-number。,2.扩展ACL配置举例(1)只允许210.43.32.0网络的WWW数据到达网络192.168.0.0,其他数据全部拒绝,配置命令如下:Firewall(config)# access-list 101 permit tcp 210.43.32.0 0.0.0.
14、255 192.168.0.0 0.0.0.255 eq 80Firewall(config)# interface fa0/0Firewall(config-if)# ip access-group 101 out(2)拒绝210.43.32.0网络的FTP 数据通过fa0/0 到达网络192.168.0.0,其他信息流均可通过,配置命令如下:Firewall(config)# access-list 101 deny tcp 210.43.32.0 0.0.0.255 192.168.0.0 0.0.0.255 eq 21Firewall(config)# access-list 101
15、permit ip 210.43.32.0 0.0.0.255 anyFirewall(config)# interface fa0/0Firewall(config-if)# ip access-group 101 out(3)仅拒绝从210.43.32.0通过fa0/0 发往别处的Telnet数据,而允许所有其他来源的数据,配置命令如下:Firewall(config)# access-list 101 deny tcp 210.43.32.0 0.0.0.255 any eq 23Firewall(config)# access-lisst 101 permit ip any anyFi
16、rewall(config)# interface fa0/0Firewall(config-if)# ip access-group 101 out,9.4 现代访问控制列表的配置,9.4.1 命名访问列表配置 1.标准命名ACL命名ACL允许使用一个字母、数字组合的字符串来表示ACL表号。(1)配置标准命名ACL的命令:Firewall(config)#ip access-list standard nameFirewall(config)#Deny|permit source address wildcardFirewall(config-if)#ip access-group name
17、 in|out(2)设计一个标准命名ACL,以用于阻塞来自一个特定子网192.168.0.0的通信流量,而允许所有其他通信流量,并把它们转发出去,配置命令如下:Firewall(config)#ip access-list standard task1Firewall(config-std-nacl)#deny 192.168.0.0 0.0.0.255Firewall(config-std-nacl)#permit anyFirewall(config)#interface fa0/0Firewall(config-if)#ip access-group task1 in,2.扩展命名ACL
18、(1)配置扩展命名ACL的命令:Firewall(config)#ip access-list extended nameFirewall(config)#Deny|permit source address wildcardFirewall(config-if)#ip access-group name in|out(2)设计一个命名ALC,只拒绝来自特定子网192.168.0.0的FTP和Telnet通信流量通过fa0/0,配置命令如下:Firewall(config)#ip access-list extended task2Firewall(config-ext-nacl)# deny
19、 tcp 192.168.0.0 0.0.0.255 any eq 21Firewall(config-ext-nacl)#deny tcp 192.168.0.0 0.0.0.255 any eq 23Firewall(config-ext-nacl)#permit ip any anyFirewall(config-ext-nacl)#exitFirewall(config)#interface fa0/0Firewall(config-if)#ip access-group task2 in,3.命名访问列表删除语句 下面的例子显示的是对命名访问列表的删除过程。Firewall#show
20、 ip access-lists example /显示example的内容Firewall#configure terminalFirewall(config)#ip access-list extended exampleFirewall(config-ext-nacl)#no permit tcp host 192.168.1.1 any /删除语句Firewall(config-ext-nacl)#ZFirewall#show ip access-lists example /显示删除语句后example的内容4.命名访问列表加入语句下面的例子显示的是对命名访问列表的加入过程。Fire
21、wall#show ip access-lists exampleFirewall#configure terminalFirewall(config)#ip access-list extended exampleFirewall(config-ext-nacl)#permit udp host 192.168.1.3 /增加语句permit udp host 192.168.1.3Firewall(config-ext-nacl)#ZFirewall#show ip access-lists example /显示增加语句后example的内容,9.4.2 基于时间访问列表的配置,1.命令
22、格式Firewall(config)#time-range time-range-name absolute start start-time start-date end end-time end-date periodic days-of-the week hh:mm to days-of-the week hh:mm参数注意:(1)time-range:用来定义时间范围。(2)time-range-name:时间范围名称,用来标识时间范围,以用于在后面的访问列表中引用。(3)absolute start start-time start-date end end-time end-dat
23、e:定义绝对时间范围,start-time和end-time分别用于指定开始和结束时间,使用24小时制表示,其格式为“小时:分钟”;start-date和end-date分别用于指定开始的日期和结束的日期,使用日/月/年的格式。(4)absolute:此命令用来指定绝对时间范围,其后为关键字start和 end,在这两个关键字后面的时间要以24小时制的hh:mm(小时:分钟)表示,日期要按照日/月/年的格式来表示。,2.配置实例通过在路由器设置基于时间的访问控制列表ACL,设置从2009年1月1日0点到2009年3月31日晚23点这个时间段中,只有在星期六早7点到星期日晚10点才可以通过网络访
24、问Internet。Firewall# config tFirewall(config)# interface ethernet 0Firewall(config-if)#ip access-group 101 inFirewall(config-if)#time-range httpFirewall(config-if)#absolute start 0:00 1 january 2009 end 23:00 31 march 2009 Firewall(config-if)#periodic Saturday 7:00 to Sunday 22:00Firewall(config-if)#
25、ip access-list 101 permit tcp any any eq 80 http 注意:为了控制Web访问的协议,必须要用扩展列表。定义了这个时间范围的名称是http,以便引用。20,9.5 TCP拦截,9.5.1 TCP拦截概述TCP拦截即TCP Intercept,在TCP连接请求到达目标主机之前,TCP拦截通过拦截和验证来阻止SYN泛洪攻击。SYN攻击利用TCP的三次握手机制,攻击端利用伪造的IP地址向被攻击端发出请求,使被攻击端发出的响应报文将永远发送不到目的地,导致被攻击端在等待关闭这个连接的过程中消耗了资源,如果有成千上万的这种连接,主机资源将被耗尽,从而达到攻击的
26、目的。可以利用路由器的TCP拦截功能,使网络上的主机受到保护。TCP拦截在拦截和监视两种模式下工作。在拦截模式下,路由器拦截到达的TCP SYN请求时,先代表服务器建立与客户机的连接,如果连接成功,则代表客户机建立与服务器的连接,并将两个连接进行透明合并。在整个连接期间,路由器会一直拦截和发送数据包。对于非法的连接请求,路由器提供更为严格的半连接(half-open)超时限制,以防止自身的资源被SYN攻击耗尽。在监视模式下,路由器被动地观察流经路由器的连接请求,如果连接超过了所配置的建立时间,路由器就会关闭此连接。,9.5.2 TCP拦截的配置,(1)开启TCP拦截开启TCP拦截的配置命令:F
27、irewall(config)# ip tcp intercept list access-list-number注意:access-list-number是已经设置好的IP访问列表的编号或名称。(2)设置TCP拦截模式设置TCP拦截模式的配置命令:Firewall(config)# ip tcp intercept mode intercept|watch注意:intercept是指拦截模式,watch是指监视模式。(3)配置路由器等待时间配置路由器等待时间的配置命令:Firewall(config)# ip tcp intercept watch-timeout seconds,(4)配置
28、删除TCP半连接的阀值路由器开始删除连接之前能够存在的最大半连接数:Firewall(config)#ip tcp intercept max-incomplete high number路由器停止删除连接之前能够存在的最大半连接数:Firewall(config)#ip tcp inercept max-incomplete low number 路由器开始删除连接之前每分钟内能存在的最大半连接数目:Firewall(config)# ip tcp intercept one-minute high number 路由器停止删除连接之前每分钟内能存在的最大半连接数目:Firewall(con
29、fig)# ip tcp intercept one-minute low number设置路由器删除半连接的方式:Firewall(config)# ip tcp intercept drop-mode oldest|random注意:Oldest是指删除建立时间最早的连接, random是指随机删除已经建立的连接。(5)查看TCP拦截信息查看TCP拦截信息的配置命令如下:Firewall# show tcp intercept connections Firewall# show tcp intercept statistics,9.6 网络地址转换,9.6.1 NAT概述 1.保留的IP
30、地址对于A、B、C 3类网络地址都有一个网络号作为保留IP范围,它一般用在私有网络内部,并且不需申请。表9-4显示的是此保留IP地址。,2.NAT中的地址配置NAT把整个网络分成内部网络和外部网络两部分,对应出现相关的四个地址: (1)内部本地地址:局域网内部主机拥有的一个真实地址,一般来说是一个私有地址。(2)内部全局地址:对于外部网络来说,局域网内部主机所表现的IP地址。(3)外部本地地址:外部网络主机的真实地址。(4)外部全局地址:对于内部网络来说,外部网络主机所表现的IP地址。,3.NAT的类型(1)静态NAT(2)动态NAT(3)端口地址转换(4)TCP负载均衡,4.NAT配置命令(
31、1)配置接口的类型:Firewall(config)#ip nat inside|outside(2)配置内部全局地址池:Firewall(config)#ip nat pool pool-name start-ip end-ip netmask netmask|prefix-length prefix-length注意:pool-name表示地址池的名称;start-ip和end-ip表示地址池的起始地址和结束地址;netmask为掩码;prefix-length为网络占用的二进制位数。(3)配置内部源地址转换:Firewall(config)#ip nat inside source li
32、st access-list-number pool name overload | static local-ip global-ip注意:access-list-number为访问列表编号;overload表示允许将多个内部本地地址转换为一个内部全局地址;static表示静态地址转换;local-ip表示内部本地地址;global-ip表示内部全局地址。,(4)配置使用单一内部全局地址的内部源地址转换:Firewall(config)#ip nat inside source list access-list-number interface interfacer-type overloa
33、d(5)配置NAT超时时间:Firewall(config)#ip nat translation timeout seconds(6)查看生效的NAT设置:Firewall#show ip nat translations(7)查看NAT统计信息:Firewall#show ip nat statistics(8)清除所有动态NAT配置:Firewall#clear ip nat translation(9)清除单个动态NAT配置:Firewall#clear ip nat translation ,9.6.2 静态NAT配置,静态NAT配置(略),9.6.3 动态NAT配置,动态NAT配置(略),9.6.4 端口NAT配置,端口NAT配置(略),9.6.5 TCP负载均衡的配置,TCP负载均衡的配置(略),