1、1,第七讲 防火墙配置与NAT配置,防火墙技术 访问控制列表 AR18防火墙配置 AR28防火墙配置 NAT技术 AR18 NAT配置 AR28 NAT配置,2,防火墙技术 概念,防火墙(Firewall)的本义是一种建筑结构,它用来防止大火从建筑物的一部分蔓延到另一部分。在计算机网络中,防火墙是指用于完成下述功能的软件或硬件: 对单个主机或整个计算机网络进行保护,使之能够抵抗来自外部网络的不正当访问。,3,防火墙技术 分类,包过滤防火墙(Packet Filter Firewall):对IP包进行过滤,先获取包头信息,包括IP 层所承载的上层协议的协议号、数据包的源地址、目的地址、源端口和目
2、的端口等,然后和设定的规则进行比较,根据比较的结果决定数据包是否被允许通过。应用层报文过滤(Application Specific Packet Filter):也称为状态防火墙,它维护每一个连接的状态,并且检查应用层协议的数据,以此决定数据包是否被允许通过。,4,防火墙技术 示意图,Internet,公司总部,内部网络,未授权用户,办事处,防火墙一般被放置在内部网和Internet之间,5,防火墙技术 路由器实现包过滤防火墙,路由器上的IP包转发机制,IP Packet,IP Packet,网络层,数据链路层,输入IP包规则库,输出IP包规则库,由规则决定对IP包的处理: 丢弃或通过,由规
3、则决定对IP包的处理: 丢弃或通过,路由器可以在输入和输出两个方向上对IP包进行过滤,接口1,接口2,6,访问控制列表 概念,访问控制列表(Access Control List, ACL)是实现包过滤规则库的一般方法,它由一系列“permit”或“deny”的规则组成。除安全之外,访问控制列表还有以下两种应用: QoS(Quality of Service) NAT(Network Address Translation),7,访问控制列表 分类(AR18),标准访问控制列表 只使用源IP地址来描述IP包 数字标识:2000 2999扩展访问控制列表 使用源和目的IP地址,协议号,源和目的端
4、口号来描述IP包 数字标识:3000 3999,8,访问控制列表 标准ACL,Quidway acl acl-number match-order config | auto acl-number:2000 2999 config:配置顺序 /缺省值 auto:深度优先Quidway-acl-2000 rule normal | special permit | deny source source-addr source-wildcard | any normal:该规则在所有时间段内起作用; /缺省值 special:该规则在指定时间段内起作用,使用special 时用户需另外设定时间段
5、source-wildcard:反掩码(通配符),9,访问控制列表 反掩码(通配符),例如:Quidway-acl-2000 rule normal permit source 192.168.1.0 0.0.0.255,反掩码和子网掩码功能相似,但写法不同: 0表示需要比较 1表示忽略比较 反掩码和IP地址结合使用,可以描述一个地址范围。,10,访问控制列表 扩展ACL,配置TCP/UDP协议的扩展ACL配置ICMP协议的扩展ACL配置其他协议的扩展ACL,11,访问控制列表 扩展ACL(续),配置TCP/UDP协议的扩展ACL:rule normal | special permit |
6、deny tcp | udp source source-addr source-wildcard | any source-port operator port1 port2 destination dest-addr dest-wildcard | any destination-port operator port1 port2 ,12,访问控制列表 扩展ACL(续),配置TCP/UDP协议的扩展ACL举例:rule normal deny tcp source 192.168.0.1 0.0.0.0 destination 202.118.66.66 0.0.0.0 destinati
7、on-port equal 80 配置ICMP协议的扩展ACL :rule normal | special permit | deny icmp source source-addr source-wildcard | any destination dest-addr dest- wildcard | any icmp-type icmp-type icmp-code 注:缺省为全部ICMP消息类型 配置ICMP协议的扩展ACL举例 :rule normal deny icmp source any destination 210.30.103.0 0.0.0.255 icmp-type
8、echo,13,访问控制列表 扩展ACL(续),ICMP协议消息类型的助记符 :,echo echo-reply host-unreachable net-redirect net-unreachable parameter-problem port-unreachable protocol-unreachable ttl-exceeded,Type=8, Code=0 Type=0, Code=0 Type=3, Code=1 Type=5, Code=0 Type=3, Code=0 Type=12,Code=0 Type=3, Code=3 Type=3, Code=2 Type=11,
9、Code=0,14,访问控制列表 扩展ACL(续),配置其它协议的扩展ACL :rule normal | special permit | deny ip | ospf | igmp | gre source source-addr source-wildcard | any destination dest-addr dest-wildcard | any 配置其它协议的扩展ACL 举例:rule normal permit ip source 192.168.1.0 0.0.0.255 destination any,15,访问控制列表 分类(AR28),基于接口的访问控制列表(Inte
10、rface-based ACL) 使用接口来控制网络包 数字标识:1000 1999 基本的访问控制列表(Basic ACL) 只使用源IP地址来控制IP包 数字标识:2000 2999 高级的访问控制列表(Advanced ACL) 使用源和目的IP地址,协议号,源和目的端口号来控制IP包 数字标识:3000 3999 基于MAC 的访问控制列表(MAC-based ACL) 使用MAC地址来控制网络包 数字标识:4000 4999,16,访问控制列表 创建ACL(AR28),Quidway acl number acl-number match-order config | auto co
11、nfig:匹配规则时按用户的配置顺序。 /缺省值 auto:匹配规则时按“深度优先”的顺序。创建ACL后,将进入ACL视图: Quidway-acl-adv-3000 进入ACL 视图之后,就可以配置ACL的规则了。,17,访问控制列表 Basic ACL,Quidway-acl-basic-2000 rule rule-id permit | deny source sour-addr sour-wildcard | any time-range time-name rule-id:可选参数,规则编号,范围为065534。 少了 normal | special time-range:可选参
12、数,指定访问控制列表的生效时间。 其余与AR18同 举例:Quidway-acl-basic-2000 rule permit source 192.168.1.1 0.0.0.0,18,访问控制列表 Advanced ACL,Quidway-acl-adv-3000 rule rule-id permit | deny protocol source sour-addr sour-wildcard | any destination dest-addr dest-mask | any source-port operator port1 port2 destination-port oper
13、ator port1 port2 icmp-type icmp-message | icmp-type icmp-code time-range time-name 格式与AR18中的三种扩展ACL基本相同: protocol : ip, ospf, igmp, gre, icmp, tcp, udp, etc. 少了 normal | special 多了 rule-id 和 time-range operator 被简化: “eq” -等于端口号, “gt” 大于端口号, “lt” 小于端口号, “neq” 不等于端口号, “range” 介于两端口号之间,19,AR18防火墙配置 启动/
14、禁止,启动防火墙 Quidway firewall enable 禁止防火墙 Quidway firewall disable 缺省情况下,防火墙处于“启动”状态,20,AR18防火墙配置 缺省过滤方式,缺省过滤方式:当访问规则中没有找到一条匹配的规则来判定网络包是否可以通过的时候,将根据缺省过滤方式来决定“允许”还是“禁止”网络包通过。 设置缺省过滤方式为“允许”: Quidway firewall default permit 设置缺省过滤方式为“禁止”: Quidway firewall default deny 缺省情况下,缺省过滤方式为“允许”,21,AR18防火墙配置 在接口上应用
15、ACL,要实现接口对报文的过滤功能,就必须先将相应ACL应用到接口上 用户可在一个接口上对“入”和“出”两个方向的报文分别定义不同的ACL 在接口上应用ACL的命令为: Quidway-Serial0 firewall packet-filter acl-number inbound | outbound inbound:入方向 outbound:出方向 在一个接口的一个方向上,可以配置多个ACL,匹配时从acl-number 大的ACL开始,若匹配则停止,22,AR18防火墙配置 显示配置信息,显示ACL及在接口上的应用任意视图 display acl all | acl-number 显示
16、防火墙状态任意视图 display firewall,23,AR18防火墙配置 举例,只有外部特定PC可以访问内部服务器只有内部特定PC可以访问外部网络,202.39.2.3,防火墙配置要求:,Ethernet0,Serial0,24,AR18防火墙配置 举例(续),# 打开防火墙功能。 Router firewall enable# 设置防火墙缺省过滤方式为允许包通过。 Router firewall default permit# 配置Ethernet0入方向访问规则禁止所有包通过。 Router acl 3001 match-order auto Router-acl-3001 rule
17、 deny ip source any destination any# 允许内部特定PC访问外部网,允许内部服务器与外部特定PC通讯。 Router-acl-3001 rule permit ip source 129.38.1.4 0 destination any Router-acl-3001 rule permit ip source 129.38.1.1 0 destination 202.39.2.3 0 Router-acl-3001 rule permit ip source 129.38.1.2 0 destination 202.39.2.3 0 Router-acl-3
18、001 rule permit ip source 129.38.1.3 0 destination 202.39.2.3 0,25,AR18防火墙配置 举例(续),# 配置Serial0入方向访问规则禁止所有包通过。 Router acl 3002 match-order auto Router-acl-3002 rule deny ip source any destination any# 允许外部网与内部特定PC通讯。 Router-acl-3002 rule permit ip source any destination 129.38.1.4 0 # 允许外部特定PC访问内部服务器
19、。 Router-acl-3002 rule permit ip source 202.39.2.3 0 destination 129.38.1.1 0 Router-acl-3002 rule permit ip source 202.39.2.3 0 destination 129.38.1.2 0 Router-acl-3002 rule permit ip source 202.39.2.3 0 destination 129.38.1.3 0# 将规则3001 作用于从接口Ethernet0 进入的包。 Router-Ethernet0 firewall packet-filter
20、 3001 inbound# 将规则3002 作用于从接口Serial0 进入的包。 Router-Serial0 firewall packet-filter 3002 inbound,26,AR28防火墙配置 启动/禁止,启动防火墙 Quidway firewall enable 禁止防火墙 Quidway undo firewall enable 缺省情况下,防火墙处于“禁止”状态,与AR18不同,27,AR28防火墙配置 缺省过滤方式,缺省过滤方式:当访问规则中没有找到一条匹配的规则来判定网络包是否可以通过的时候,将根据缺省过滤方式来决定“允许”还是“禁止”网络包通过。 设置缺省过滤方
21、式为“允许”: Quidway firewall default permit 设置缺省过滤方式为“禁止”: Quidway firewall default deny 缺省情况下,缺省过滤方式为“允许”,与AR18相同,28,AR28防火墙配置 在接口上应用ACL,在接口上应用ACL的命令为: Quidway-Serial0 firewall packet-filter acl-number inbound | outbound inbound:入方向 outbound:出方向 在一个接口的一个方向上,可以配置多个ACL,匹配时从acl-number 大的ACL开始,与AR18相同,29,A
22、R28防火墙配置 显示配置信息,显示ACL及在接口上的应用任意视图 display acl all | acl-number 显示防火墙状态任意视图 display firewall-statistics all | interface type number ,与AR18不同,30,AR28防火墙配置 举例,202.39.2.3,防火墙配置要求:,只有外部特定PC可以访问内部服务器只有内部特定PC可以访问外部网络,Ethernet0,Serial0,31,AR28防火墙配置 举例(续),# 打开防火墙功能。 Router firewall enable# 设置防火墙缺省过滤方式为允许包通过。
23、 Router firewall default permit# 配置Ethernet0入方向访问规则禁止所有包通过。 Router acl number 3001 match-order auto Router-acl-adv-3001 rule deny ip source any destination any# 允许内部特定PC访问外部网,允许内部服务器与外部特定PC通讯。 Router-acl-adv-3001 rule permit ip source 129.38.1.4 0 destination any Router-acl-adv-3001 rule permit ip s
24、ource 129.38.1.1 0 destination 202.39.2.3 0 Router-acl-adv-3001 rule permit ip source 129.38.1.2 0 destination 202.39.2.3 0 Router-acl-adv-3001 rule permit ip source 129.38.1.3 0 destination 202.39.2.3 0,32,AR28防火墙配置 举例(续),# 配置Serial0入方向访问规则禁止所有包通过。 Router acl number 3002 match-order auto Router-acl
25、-adv-3002 rule deny ip source any destination any# 允许外部网与内部特定PC通讯。 Router-acl-adv-3002 rule permit ip source any destination 129.38.1.4 0 # 允许外部特定PC访问内部服务器。 Router-acl-adv-3002 rule permit ip source 202.39.2.3 0 destination 129.38.1.1 0 Router-acl-adv-3002 rule permit ip source 202.39.2.3 0 destinat
26、ion 129.38.1.2 0 Router-acl-adv-3002 rule permit ip source 202.39.2.3 0 destination 129.38.1.3 0# 将规则3001 作用于从接口Ethernet0 进入的包。 Router-Ethernet0 firewall packet-filter 3001 inbound# 将规则3002 作用于从接口Serial0 进入的包。 Router-Serial0 firewall packet-filter 3002 inbound,33,NAT技术 概述,NAT (Network Address Transl
27、ation)是目前用于解决IP地址紧缺问题的主要技术。NAT的标准文档是RFC 2663,1999年和RFC 3022,2001年(obsolete RFC 1631,1994年).NAT是在路由器上实现的,它的主要操作是在私网IP地址和公网IP地址之间作相互转换。通过这种转换,一个网络能够在其内部使用私网IP地址,而在外部使用一个或少数几个公网IP地址连接到Internet上。,34,NAT技术 私网IP地址,Internet,10.0.0.0/8,172.16.0.0/16,192.168.1.0/24,Private Network 1,私网IP地址范围: 10.0.0.0 - 10.2
28、55.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255,Private Network 2,Private Network 3,35,NAT技术 基本思想,每个NAT路由器都维护一张地址转换表。,地址转换表,36,NAT技术 基本思想(NAPT),NAT的最常见形式 - NAPT (Network Address Port Translation):,地址转换表,37,NAT技术 基本思想(内部服务器),Internet,内部服务器,外部用户,E0,S0,内部地址:10.0.1.1 内部端口:80,外部地址:20
29、2.38.160.1 外部端口:80,IP:202.39.2.3,配置地址转换: IP地址: 10.0.1.1202.38.160.1 端口: 8080,38,NAT 私网访问公网具体步骤,Internet,内部网络,10.0.0.0/8,10.0.0.1,NAT路由器,公用地址池,202.0.0.1 202.0.0.2,dstIP:6.1.128.1, srcIP:10.0.1.1 dstPort:21, srcPort:1001,dstIP:6.1.128.1, srcIP:202.0.0.1 dstPort:21, srcPort:1044,dstIP:10.0.1.1, srcIP:6
30、.1.128.1 dstPort:1001, srcPort:21,查找地址转换表, 更改目的IP和端口,增加地址转换表项,更改源IP和端口,1,2,3,4,5,dstIP:202.0.0.1, srcIP:6.1.128.1 dstPort:1044, srcPort:21,6,外部PC 6.1.128.1,内部PC 10.0.1.1,39,NAT 公网访问内部服务器具体步骤,Internet,内部网络,10.0.0.0/8,10.0.1.1,NAT路由器需预先配置如下静态地址转换表项,公用地址池,202.0.0.1 202.0.0.2,dstIP:202.0.0.1, srcIP:6.1.
31、128.1 dstPort:21, srcPort:1044,dstIP:6.1.128.1, srcIP:10.0.1.1 dstPort:1044, srcPort:21,查找地址转换表, 更改源IP和端口,查找地址转换表, 更改目的IP和端口,1,2,3,4,5,FTP客户,FTP服务器,6,dstIP:10.0.1.1, srcIP:6.1.128.1 dstPort:21, srcPort:1044,6.1.128.1,10.0.0.1,dstIP:6.1.128.1, srcIP:202.0.0.1 dstPort:1044, srcPort:21,40,NAT 技术 其它用途,使
32、易于更换ISPIP伪装 (IP Masquerading)服务器前端 (Front End),在多个服务器之间分配负载,41,NAT技术 服务器前端,地址转换表,42,NAT技术 批评,开销增加 NAT: 重新计算IP Header Checksum NAPT: 重新计算TCP/UDP Header Checksum违反了协议分层的原则。使在应用层的数据中携带有IP地址或端口号的协议不能正常运行。,欲知有关NAT各方面影响的详细讨论,请参见RFC 2993.,43,NAT配置(AR18) 定义地址池,地址池是一串连续IP 地址的集合,当内部IP包通过地址转换到达外部网络时,将会选择地址池中的某
33、个地址作为转换后的源地址 定义地址池命令: Quidway nat address-group start-addr end-addr pool-name 举例: Quidway nat address-group 210.30.101.1 210.30.101.4 pool1,44,NAT配置(AR18) 定义地址池与ACL的关联,ACL在NAT中的作用是 “描述将被做地址转换的IP包” 。 当内部网络有数据包要发往外部网络时,首先根据该ACL判定是否是允许的数据包,然后再根据定义的关联找到与之对应的地址池,最后再把源地址转换成这个地址池中的某一个地址。 定义关联命令: Quidway-Se
34、rial0 nat outbound acl-no address-group pool-name 举例: Quidway acl 2000 match-order auto Quidway-acl-2000 rule permit source 192.168.1.0 0.0.0.255 Quidway-acl-2000 rule deny source any Quidway nat address-group 210.30.101.1 210.30.101.4 pool1 Quidway-Serial0 nat outbound 2000 address-group pool1,45,N
35、AT配置(AR18) 定义接口与ACL的关联,接口与ACL的关联又称EASY IP 特性,它是指在地址转换的过程中直接使用接口的IP 地址作为转换后的源地址 定义关联命令: Quidway-Serial0 nat outbound acl-no interface 举例: Quidway acl 2000 match-order auto Quidway-acl-2000 rule permit source 192.168.1.0 0.0.0.255 Quidway-acl-2000 rule deny source any Quidway-Serial0 nat outbound 2000
36、 interface,46,NAT配置(AR18) 建立内部服务器映射,用户可将内部服务器的IP地址和端口号映射到NAT路由器的外部地址以及端口号上,从而实现由外部网络访问内部服务器的功能。 建立映射命令: Quidway-Serial0 nat server global global-addr global-port | any | domain | ftp | pop3 | smtp | telnet | www inside inside-addr inside-port | any | domain | ftp | pop3 | smtp | telnet | www protoco
37、l-number | ip | icmp | tcp | udp 举例: Quidway-Serial0 nat server global 210.30.103.22 www inside 192.168.1.4 8080 tcp,47,NAT配置(AR18) 配置信息显示,查看地址转换的配置信息: 任意视图 display nat查看地址转换表: 任意视图 display nat translations global ip-address | inside ip-address ,48,NAT配置(AR18) 举例,Internet,FTP 服务器,WWW 服务器1,WWW 服务器2,内
38、部PC,10.110.10.100,S0,内部PC,10.110.12.100,SMTP 服务器,10.110.10.1,10.110.10.2,10.110.10.3,10.110.10.4,地址池: 202.38.160.101 202.38.160.103,网络地址转换配置要求: 内部10.110.10.0/24 网段的PC 机可访问Internet,其它网段的PC 机不能访问Internet。 外部PC 机可以访问内部的服务器。,49,NAT配置(AR18) 举例(续),# 配置地址池和ACL Router nat address-group 202.38.160.101 202.38
39、.160.103 pool1 Router acl 2000 match-order auto Router-acl-2000rule permit source 10.110.10.0 0.0.0.255 Router-acl-2000rule deny source 10.110.0.0 0.0.255.255# 允许10.110.10.0/24 的网段进行地址转换 Router-Serial0 nat outbound 2000 address-group pool1 # 设置内部FTP 服务器 Router-Serial0 nat server global 202.38.160.10
40、1 ftp inside 10.110.10.1 ftp tcp # 设置内部WWW服务器1 Router-Serial0 nat server global 202.38.160.102 www inside 10.110.10.2 www tcp # 设置内部WWW服务器2 Router-Serial0 nat server global 202.38.160.102 8080 inside 10.110.10.3 www tcp # 设置内部SMTP 服务器 Router-Serial0 nat server global 202.38.160.103 smtp inside 10.11
41、0.10.4 smtp tcp,50,NAT配置(AR28) 定义地址池,地址池是一些连续的IP 地址的集合,当内部IP包通过地址转换到达外部网络时,将会选择地址池中的某个地址作为转换后的源地址 定义地址池命令: Quidway nat address-group group-number start-addr end-addr 举例: Quidway nat address-group 1 210.30.101.1 210.30.101.4,与AR18不同,51,NAT配置(AR28) 定义地址池与ACL的关联,当内部网络有数据包要发往外部网络时,首先根据该ACL判定是否是允许的数据包,然后
42、再根据定义的关联找到与之对应的地址池,最后再把源地址转换成这个地址池中的某一个地址 定义关联命令: Quidway-Serial0 nat outbound acl-number address-group group-number 举例: Quidway acl number 2000 match-order auto Quidway-acl-basic-2000 rule permit source 192.168.1.0 0.0.0.255 Quidway-acl-basic-2000 rule deny source any Quidway nat address-group 1 21
43、0.30.101.1 210.30.101.4 Quidway-Serial0 nat outbound 2000 address-group 1,与AR18不同,52,NAT配置(AR28) 定义接口与ACL的关联,接口与ACL的关联又称EASY IP 特性,它是指在地址转换的过程中直接使用接口的IP 地址作为转换后的源地址 定义关联命令: Quidway-Serial0 nat outbound acl-number 举例: Quidway acl 2000 match-order auto Quidway-acl-basic-2000 rule permit source 192.168
44、.1.0 0.0.0.255 Quidway-acl-basic-2000 rule deny source any Quidway-Serial0 nat outbound 2000,与AR18不同, 省略”interface”,53,NAT配置(AR28) 建立内部服务器映射,用户可将内部服务器的IP地址和端口号映射到NAT路由器的外部地址以及端口号上,从而实现由外部网络访问内部服务器的功能。 建立映射命令: Quidway-Serial0 nat server protocol protocol-number | ip | icmp | tcp | udp global global-a
45、ddr global-port | any | domain | ftp | pop3 | smtp | telnet | www inside inside-addr inside-port | any | domain | ftp | pop3 | smtp | telnet | www 举例: Quidway-Serial0 nat server protocol tcp global 210.30.103.22 www inside 192.168.1.4 8080,与AR18不同, 位置改变,54,NAT配置(AR28) 配置信息显示,查看地址转换的配置信息: 任意视图 displa
46、y nat address-group | all | outbound | server | statistics 查看当前生效的配制NAT的命令: 任意视图 display current-configuration,55,NAT配置(AR28) 举例,Internet,FTP 服务器,WWW 服务器1,WWW 服务器2,内部PC,10.110.10.100,S0,内部PC,10.110.12.100,SMTP 服务器,10.110.10.1,10.110.10.2,10.110.10.3,10.110.10.4,地址池: 202.38.160.101 202.38.160.103,网络地
47、址转换配置要求: 内部10.110.10.0/24 网段的PC 机可访问Internet,其它网段的PC 机不能访问Internet。 外部PC 机可以访问内部的服务器。,56,NAT配置(AR28) 举例(续),# 配置地址池和ACL Router nat address-group 1 202.38.160.101 202.38.160.103 Router acl 2000 match-order auto Router-acl-basic-2000rule permit source 10.110.10.0 0.0.0.255 Router-acl-basic-2000rule den
48、y source 10.110.0.0 0.0.255.255# 允许10.110.10.0/24 的网段进行地址转换 Router-Serial0 nat outbound 2000 address-group 1 # 设置内部FTP 服务器 Router-S0 nat server protocol tcp global 202.38.160.101 ftp inside 10.110.10.1 ftp # 设置内部WWW服务器1 Router-S0 nat server protocol tcp global 202.38.160.102 www inside 10.110.10.2 www # 设置内部WWW服务器2 Router-S0 nat server protocol tcp global 202.38.160.102 8080 inside 10.110.10.3 www # 设置内部SMTP 服务器 Router-S0 nat server protocol tcp global 202.38.160.103 smtp inside 10.110.10.4 smtp,