访问控制列表及地址转换待审核.docx
《访问控制列表及地址转换待审核.docx》由会员分享,可在线阅读,更多相关《访问控制列表及地址转换待审核.docx(19页珍藏版)》请在冰豆网上搜索。
![访问控制列表及地址转换待审核.docx](https://file1.bdocx.com/fileroot1/2023-2/23/3b7a0b88-74ea-4a02-ac47-1df9c8352376/3b7a0b88-74ea-4a02-ac47-1df9c83523761.gif)
访问控制列表及地址转换待审核
实验五访问控制列表及地址转换
5.1实验目的:
1.熟悉路由器的包过滤的核心技术:
访问控制列表;
2.掌握访问控制列表的相关知识;
3.掌握访问控制列表的应用,灵活设计防火墙;
4.熟悉地址转换特性。
5.2实验环境:
在实际的企业网或者校园网络中为了保证信息安全以及权限控制,都需要分别对待网内的用户群。
有的能够访问外部,有的则不能。
这些设置往往都是在整个网络的出口或是入口(一台路由器上)进行的。
所以在实验室我们用一台路由器(RTA)模拟整个企业网,用另一台路由器(RTB)模拟外部网。
具体实验环境如下:
在实际完成实验时不一定需要两台交换机和多台主机,交换机可以共用一台,但最好划分在不同的VLAN下,主机至少两台,可以灵活改变IP地址来满足实验需求。
5.3实验步骤:
5.3.1实验准备
按照上面的组网图建立实验环境,然后按照如下规则分配IP地址。
路由器接口IP地址:
RTA
RTB
S0
192.0.0.1/24
192.0.0.2/24
E0
202.0.0.1/24
202.0.1.1/24
主机的地址和缺省网关:
PCA
PCB
PCC
PCD
PCE
IP/MASK
202.0.0.2/24
202.0.0.3/24
202.0.0.4/24
202.0.1.2/24
202.0.1.3/24
GATEWAY
202.0.0.1
202.0.0.1
202.0.0.1
202.0.1.1
202.0.1.1
5.3.2标准访问控制列表
标准访问控制列表只使用数据包的源地址来判断数据包,所以它只能以源地址来区分数据包,源相同而目的不同的数据包也只能采取同一种策略。
所以利用标准访问控制列表,我们只能粗略的区别对待网内的用户群,那些主机能访问外部网,那些不能。
我们来完成如下实验,看看标准访问控制列表是如何完成该功能的。
在实验环境中,我们如果只允许IP地址为202.0.0.2的主机访问外部网络,则只需在路由器上进行如下配置即可:
RTA#showrunning-config
Nowcreateconfiguration...
Currentconfiguration
!
version1.5.6
firewallenable//启动防火墙功能
access-listnormal1permit202.0.0.20.0.0.0//允许特定主机访问外部网络
access-listnormal1deny202.0.0.00.0.0.255//禁止其他主机访问外部网络
hostnameRTA
!
interfaceAux0
asyncmodeinteractive
encapsulationppp
!
interfaceEthernet0
speedauto
duplexauto
noloopback
ipaddress202.0.0.1255.255.255.0
!
interfaceSerial0
clock-selectDTECLK1
encapsulationppp
ipaddress192.0.0.1255.255.255.0
ipaccess-group1out//使访问列表生效
!
interfaceSerial1
encapsulationppp
!
exit
routerrip//启动路由协议
networkall
!
end
RTB#showrunning-config
Nowcreateconfiguration...
Currentconfiguration
!
version1.5.6
hostnameRTB
!
interfaceAux0
asyncmodeinteractive
encapsulationppp
!
interfaceEthernet0
speedauto
duplexauto
noloopback
ipaddress202.0.1.1255.255.255.0
!
interfaceSerial0
encapsulationppp
ipaddress192.0.0.2255.255.255.0
!
interfaceSerial1
clock-selectDTECLK1
encapsulationppp
!
exit
routerrip
networkall
!
end
注意:
在配置路由器时还需要配置防火墙的缺省工作过滤模式(firewalldefault{permit|deny}),因该命令配置与否在配置信息中没有显示,所以要特别注意。
Quidway系列路由器防火墙默认过滤模式是允许。
在此我们也设为允许。
(您可以设为禁止,看看实验现象。
此时有可能路由器不能发现动态路由,因为路由协议也是用IP包去发现路由的,禁止了所有IP包的传送当然不可能生成动态路由。
)完成上述配置之后,用网络测试命令测试PCA是不是真的能够访问外部网络,PCB等主机是不是不能访问外部网络呢?
在设置防火墙时,一般选择在路由器的出口,可以使用ipaccess-group101out来使防火墙生效,但是如果改为ipaccess-group101in呢?
试试会是什么现象,是不是任何主机都可以访问外部网络呢?
答案是肯定的。
那么我们如果是在E0口使用ipaccess-group101in命令呢?
现象就如同开始一样了。
现在明白in和out的意义了吗?
我们甚至可以在RTB上来完成该项功能,完成如下配置即可达到同样的效果:
RTA#showrunning-config
Nowcreateconfiguration...
Currentconfiguration
!
version1.5.6
hostnameRTA
!
interfaceAux0
asyncmodeinteractive
encapsulationppp
!
interfaceEthernet0
speedauto
duplexauto
noloopback
ipaddress202.0.0.1255.255.255.0
!
interfaceSerial0
clock-selectDTECLK1
encapsulationppp
ipaddress192.0.0.1255.255.255.0
!
interfaceSerial1
encapsulationppp
!
exit
routerrip
networkall
!
end
RTB#showrunning-config
Nowcreateconfiguration...
Currentconfiguration
!
version1.5.6
firewallenable
access-listnormal1permit202.0.0.20.0.0.0
access-listnormal1deny202.0.0.00.0.0.255
hostnameRTB
!
interfaceAux0
asyncmodeinteractive
encapsulationppp
!
interfaceEthernet0
speedauto
duplexauto
noloopback
ipaddress202.0.1.1255.255.255.0
!
interfaceSerial0
encapsulationppp
ipaddress192.0.0.2255.255.255.0
ipaccess-group1in
!
interfaceSerial1
clock-selectDTECLK1
encapsulationppp
!
exit
routerrip
networkall
!
end
从上面的实验可以看出in和out两个方向不同作用以及使用不同接口的配置差异了,所以在设置防火墙时,我们需要仔细分析,灵活运用,选择最佳接口,最简单的配置完成最完善的功能。
5.3.3扩展访问控制列表
扩展访问控制列表不仅使用数据包的源地址作为判断条件,还使用目的地址、协议号为判断条件。
所以它可以更加详细的区分数据包,更好的控制用户访问。
下面我们先应用扩张访问控制列表来完成前面标准访问控制列表完成的功能,以便比较。
在路由器上的具体配置如下:
RTA(config)#showrunning-config
Nowcreateconfiguration...
Currentconfiguration
!
version1.5.6
firewallenable
access-listnormal101permitip202.0.0.20.0.0.0202.0.1.00.0.0.255
access-listnormal101denyip202.0.0.00.0.0.255202.0.1.00.0.0.255
hostnameRTA
!
interfaceAux0
asyncmodeinteractive
encapsulationppp
!
interfaceEthernet0
speedauto
duplexauto
noloopback
ipaddress202.0.0.1255.255.255.0
!
interfaceSerial0
clock-selectDTECLK1
encapsulationppp
ipaddress192.0.0.1255.255.255.0
ipaccess-group101out
!
interfaceSerial1
encapsulationppp
!
exit
routerrip
networkall
!
end
RTB#showrunning-config
Nowcreateconfiguration...
Currentconfiguration
!
version1.5.6
hostnameRTB
!
interfaceAux0
asyncmodeinteractive
encapsulationppp
!
interfaceEthernet0
speedauto
duplexauto
noloopback
ipaddress202.0.1.1255.255.255.0
!
interfaceSerial0
encapsulationppp
ipaddress192.0.0.2255.255.255.0
!
interfaceSerial1
clock-selectDTECLK1
encapsulationppp
!
exit
routerrip
networkall
!
end
此时用网络测试命令ping测试主机的通信状况,应该和前面一样。
刚才提到的扩展访问控制列表可以更加详细的控制访问,那么究竟怎样才能实现这项要求呢?
在此我们只需要把access-listnormal101permitip202.0.0.20.0.0.0202.0.1.00.0.0.255换成access-listnormalpermitip202.0.0.20.0.0.0202.0.1.20.0.0.0既可以控制主机PCA只能访问主机PCD,而使用标准访问控制列表是不能实现的。
在访问控制列表命令中还有normal字段,这是区别于special的,即我们可以分时间段进行不同的访问控制策略。
此时需要允许时间段控制(timerangeenable)和设定特定时间段(settrbegin-timeend-time)。
在此不再详细阐述,学员可以自行完成。
上面的实验都是只有一条列表,在同一列表中有多条规则,多条规则之间采用深度优先的原则,即描述的地址范围越小,优先级越高,越先考虑。
但是有时候需要在一个接口上使用多条列表,以完成更丰富的功能。
但是列表之间有时什么样的规则呢?
还是深度优先吗?
让我们看看下面的实验,RTB不作任何改动,RTA配置如下:
RTA(config-if-Serial0)#showrunning-config
Nowcreateconfiguration...
Currentconfiguration
!
version1.5.6
firewallenable
access-listnormal101permitip202.0.0.20.0.0.0202.0.1.00.0.0.255
access-listnormal101denyip202.0.0.00.0.0.255202.0.1.00.0.0.255
access-listnormal102permitip202.0.0.30.0.0.0202.0.1.00.0.0.255
access-listnormal102denyip202.0.0.00.0.0.255202.0.1.00.0.0.255
access-listnormal103denyip202.0.0.20.0.0.0202.0.1.00.0.0.255
hostnameRTA
!
interfaceAux0
asyncmodeinteractive
encapsulationppp
!
interfaceEthernet0
speedauto
duplexauto
noloopback
ipaddress202.0.0.1255.255.255.0
!
interfaceSerial0
clock-selectDTECLK1
encapsulationppp
ipaddress192.0.0.1255.255.255.0
ipaccess-group103out
ipaccess-group102out
ipaccess-group101out
!
interfaceSerial1
encapsulationppp
!
exit
routerrip
networkall
!
end
此时主机PCA也不能与外部网络通信了,因为首先匹配列表103,发现不允许通过,则拒绝通过。
此时列表102、101不启作用。
但是主机PCB可以与外部网通信。
列表101不启作用。
如果取消列表102的作用(noipaccess-group102out),则PCB又不能与外部网络通信了。
所以我们可以得出如下结论:
多条列表时,先匹配列表序号大的规则,如果匹配则按该规则处理数据包,如果不匹配则匹配较小序号的列表,直至最后。
所以在编写列表时要多加注意它们之间的先后顺序。
5.3.4地址转换(NAT)
由于IP地址紧缺,企业网常常使用的都是私有地址,这给访问外部网络带来了麻烦。
因为很可能存在两个IP地址一样的主机访问同一个网络而产生冲突,无法正常完成数据传输。
所以我们企业网内部主机访问外部网络时,需要进行地址转换,在公网上使用公有地址进行数据传输。
地址转换有两种方式,一种是通过与接口关联,使用物理接口的IP地址作为转换后的公有地址。
另一种是通过地址池来完成地址转换,转换时可以任意从地址池中选取一个地址进行转换。
让我们先来看看第一种方式。
使用RTA的S0口的IP地址作为公有地址,路由器的具体配置如下:
RTA(config-if-Serial0)#showrunning-config
Nowcreateconfiguration...
Currentconfiguration
!
version1.5.6
loggingconsole
firewallenable
access-listnormal101permitip202.0.0.20.0.0.0any
//允许特定主机访问外部网络
access-listnormal101permitip202.0.0.30.0.0.0any
//允许内部服务器访问外部网络
access-listnormal101denyipanyany
//禁止所有包通过
access-listnormal102permittcp202.0.1.20.0.0.0192.0.0.10.0.0.0
//允许特定外部主机访问内部服务器
access-listnormal102denytcpany192.0.0.10.0.0.0
//禁止其他外部用户访问内部服务器
hostnameRTA
!
interfaceAux0
asyncmodeinteractive
encapsulationppp
!
interfaceEthernet0
speedauto
duplexauto
noloopback
ipaddress202.0.0.1255.255.255.0
ipaccess-group101in
!
interfaceSerial0
clock-selectDTECLK1
encapsulationppp
ipaddress192.0.0.1255.255.255.0
natinside102interface//使列表与接口关联
natserverglobal192.0.0.1ftpinside202.0.0.3ftptcp//内部ftp服务器
ipaccess-group102in
!
interfaceSerial1
encapsulationppp
!
exit
routerrip
networkall
!
end
RTB#showrunning-config
Nowcreateconfiguration...
Currentconfiguration
!
version1.5.6
hostnameRTB
!
interfaceAux0
asyncmodeinteractive
encapsulationppp
!
interfaceEthernet0
speedauto
duplexauto
noloopback
ipaddress202.0.1.1255.255.255.0
!
interfaceSerial0
encapsulationppp
ipaddress192.0.0.2255.255.255.0
!
interfaceSerial1
clock-selectDTECLK1
encapsulationppp
!
exit
routerrip
networkall
!
end
在上面的配置中完成了内部向外部网络提供ftp服务器,允许内部特定主机PCA能够访问外部网络,允许外部特定用户PCD可以访问ftp服务器。
在PCB上提供ftp服务,然后测试是否满足设计需求。
我们还可以使用监控与维护命令显示地址转换状态,如:
RTA#shownat
NatPoolInformation:
ddd:
from192.0.0.3to192.0.0.4
ServerinPrivatenetworkInformation:
InterfaceGlobalAddrGlobalPortInsideAddrInsidePortPro
Serial0192.0.0.121(ftp)202.0.0.321(ftp)6(tcp)
NatAccesstableInformation:
Serial0:
Access-list(102)---Interface
NattimeoutvalueInformation:
tcp----timeoutvalueis240(seconds)
udp----timeoutvalueis40(seconds)
icmp----timeoutvalueis20(seconds)
从显示信息可以看到地址转换对应表,地址池信息以及地址转换有效时间。
我们还可以根据需要更改地址转换有效时间(nattimeout)。
还可以查看nat的调试信息如:
RTA#debugnatpacket
DebuggingNATpacketison
RTA#
NATIn:
findaTCPpackettoserver(192.0.0.1:
21---->202.0.0.3:
21)
NAT_Forward:
TCPpackettoinsideserver(202.0.0.3:
21----->192.0.0.1:
21)
NATIn:
findaTCPpackettoserver(192.0.0.1:
21---->202.0.0.3:
21)
NAT_Forward:
TCPpackettoinsideserver(202.0.0.3:
20----->192.0.0.1:
20)
NAT_Forward:
TCPpackettoinsideserver(202.0.0.3:
21----->192.0.0.1:
21)
NATIn:
findaTCPpackettoserver(192.0.0.1:
20---->202.0.0.3:
20)
可以通过此命令检查是否有数据包被转换,地址是如何转换的。
这对我们的调试有很大帮助。
第二种方式是地址池关联。
该方式可以应用多个公有地址来完成地址转换,增大数据转换量。
该方式的配置如下:
(RTB不作改变)
RTA#showrunning-config
Nowcreateconfiguration...
Currentconfiguration
!
version1.5.6
nattimeouttcp300//设定地址转换有效时间
natpool192.0.0.3192.0.0.4ddd//配置地