实验五、ACL配置
一. 实验目的
1. 掌握ACL的基本配置方法
二. 实验内容
1. 基于如下图所示的拓扑图,对路由器进行正确的RIP协议配置;
首先引入3台2811 IOS15型号的路由器、3台2950-T24型号的交换机、4台PC-PT型号的PC机、两台Server-PT型号的服务器,如 图1:引入3台2811 IOS15型号的路由器、3台2950-T24型号的交换机、4台PC-PT型号的PC机、两台Server-PT型号的服务器 所示。接着考虑到2811 IOS15型号的路由器的网卡接口数量只有2个,而图中每个路由器都有3条连线,即图中每个路由器都需要3个网卡接口,所以需要依次关闭3台路由器的电源,为其添加网卡接口,接着依次开启3台路由器的电源,如 图2:为3台2811 IOS15型号的路由器添加网卡接口 所示。
( 图1:引入3台2811 IOS15型号的路由器、3台2950-T24型号的交换机、4台PC-PT型号的PC机、两台Server-PT型号的服务器 )
( 图2:为3台2811 IOS15型号的路由器添加网卡接口 )
接着,开启使用直通线连接不同种设备,使用交叉线连接同种设备。在这里,使用直通线Copper Straight-Through将PC0的FastEthernet0网卡接口和Switch1的FastEthernet0/2网卡接口连接在一起,接着用直通线将PC1的FastEthernet0网卡接口和Switch1的FastEthernet0/3网卡接口连接在一起,接着将PC2的FastEthernet0网卡接口和Switch0的FastEthernet0/2网卡接口连接在一起,将PC3的FastEthernet0网卡接口和Switch0的FastEthernet0/3网卡接口连接在一起,将Server0的FastEthernet0网卡接口和Switch2的FastEthernet0/2网卡接口连接在一起,将Server1的FastEthernet0网卡接口和Switch2的FastEthernet0/3网卡接口连接在一起。上述过程使用的连线都为直通线Copper Straight-Through,因为我们连接的都是不同种设备。此时连接好的情况如 图3:将PC、Server与交换机相连 所示。
( 图3:将PC、Server与交换机相连 )
接着,使用直通线将Switch0的FastEthernet0/1网卡接口与Router0的FastEthernet0/0网卡接口相连,将Switch1的FastEthernet0/1网卡接口与Router1的FastEthernet0/0网卡接口相连,将Switch2的FastEthernet0/1网卡接口与Router2的FastEthernet0/0网卡接口相连,如 图4:将交换机与路由器相连 所示。如果忘记了一根直通线所连的是哪两个网卡接口,可以删除掉这根线,再次想要连线时,多显示出来的网卡接口即为原来那根直通线所连的网卡接口。
( 图4:将交换机与路由器相连 )
然后,开始使用交叉线连接同种设备。注意此时更要记住交叉线所连的两个设备的两个网卡接口的名称,以免后续配置网卡接口的IP时出现混淆 ,用交叉线将Router0的FastEthernet1/0网卡接口与Router1的FastEthernet1/0网卡接口相连,将Router0的FastEthernet1/1网卡接口和Router2的FastEthernet1/1网卡接口相连,将Router1的FastEthernet0/1网卡接口与Router2的FastEthernet0/1网卡接口相连,如 图5:使用交叉线将路由器与路由器相连 所示。
( 图5:使用交叉线将路由器与路由器相连 )
接着开始配置各个设备的网卡接口的IP。先从服务器开始配置,配置DNS服务器Server0的网卡接口FastEthernet0的IPv4为192.168.1.57,默认网关为192.168.1.1(这也就是接下来Router2的FastEthernet0/0网卡接口的IP),DNS服务器设置为其本身,也就是192.168.1.57。如 图9:配置Server0的网卡接口FastEthernet0 所示。下一步我们要开启DNS服务并且先试探性的加入一条将域名"www.dnsserver.com"解析到IPv4为192.168.1.57的服务器的记录,并借此来检验DNS服务是否成功开启。但在此之前,我们先让Server0试探性ping一下"www.dnsserver.com",依次作为接下来的实验的对照。如 图10:配置Server0的网卡接口FastEthernet0之后立刻ping www.dnsserver.com 所示。发现此时ping不通使用域名"www.dnsserver.com"的服务器,那么如果接下来我们开启DNS服务并且添加一条相应的记录呢?如 图11:开启Server0的DNS服务并且加入一条相应的域名解析记录 所示。此时Server0再去ping域名"www.dnsserver.com",便得到了 图12:开启DNS服务并且加入一条相应的域名解析记录之后再去ping"www.dnsserver.com" 所示的结果,此时便能ping通域名为"www.dnsserver.com"的服务器,也就是Server0自己。
( 图9:配置Server0的网卡接口FastEthernet0 )
( 图10:配置Server0的网卡接口FastEthernet0之后立刻ping www.dnsserver.com )
( 图11:开启Server0的DNS服务并且加入一条相应的域名解析记录 )
( 图12:开启DNS服务并且加入一条相应的域名解析记录之后再去ping"www.dnsserver.com" )
接着配置使用HTTP协议的Web服务器Server1的网卡接口FastEthernet0的IPv4为192.168.1.58,默认网关为192.168.1.1,DNS服务器为192.168.1.57,如 图13:配置Server1的网卡接口FastEthernet0 所示。接着Server1先后去ping自己、ping Server0、ping 域名www.dnsserver.com,分别保证Server1的ping功能正常、交换机Switch2的功能正常、Server1的DNS server是谁设置正常以及Server0的DNS功能正常,如 图14:Server1去ping自己、ping Server0、ping www.dnsserver.com 所示。
( 图13:配置Server1的网卡接口FastEthernet0 )
( 图14:Server1去ping自己、ping Server0、ping www.dnsserver.com )
现在配置Server1的HTTP功能,因为Server1的HTTP功能是默认开启的,所以我们不需要再额外开启Server1的HTTP功能。在"Services"下的"HTTP"中,我们看到了5个html文件,如 图15:5个html文件 所示。这5个html文件分别表示什么意思呢?先看index.html文件的内容,在"Desktop"中点开"Web Browser",接着输入"http://192.168.1.58"进入页面,所得到页面即由index.html所控制生成,如 图16:点开Web Browser并输入http://192.168.1.58 所示,正如index.html文件的内容所示,如 图17:查看index.html文件的内容 所示。在这里不需要焦虑看不明白html语言,慢慢来就可以。接着在Web Browser中分别输入"http://192.168.1.58/helloworld.html"、“http://192.168.1.58/copyrights.html”、“http://192.168.1.58/image.html”、“http://192.168.1.58/cscoptlogo177x111.jpg”,便可分别得到由helloworld.html等4个html文件所控制生成的页面,如 图18:查看剩余4个html文件控制生成的web页面 所示。
( 图15:5个html文件 )
( 图16:点开Web Browser并输入http://192.168.1.58 )
( 图17:查看index.html文件的内容 )
( 图18:查看剩余4个html文件控制生成的web页面 )
此时再去查看Server0能不能访问Server1的HTTP服务,如 图19:检查Server0能不能访问Server1的HTTP服务 所示发现是可以的。但是考虑到如果每次想访问Server1,都要输入Server1的IPv4地址,很不方便,那么该怎么办呢?这时Server0的DNS服务就发挥作用了。在Server0的"Services"中的"DNS"中添加一条域名解析记录,将域名www.httpserver.com解析到192.168.1.58,如 图20:在Server0的"Services"中的"DNS"中添加一条域名解析记录,将域名www.httpserver.com解析到192.168.1.58 所示。
( 图19:检查Server0能不能访问Server1的HTTP服务 )
( 图20:在Server0的"Services"中的"DNS"中添加一条域名解析记录,将域名www.httpserver.com解析到192.168.1.58 )
接着分别在Server0和Server1的Web Browser中输入"www.httpserver.com",检查Server0的DNS服务中添加的一条域名解析记录是否生效,如 图21:分别在Server0和Server1的Web Browser中输入"www.httpserver.com" 所示,发现Server0的DNS服务中添加的一条域名解析记录已经生效。
( 图21:分别在Server0和Server1的Web Browser中输入"www.httpserver.com" )
接着,给剩下的所有设备的被直通线或者交叉线连接的网卡接口配置IPv4、默认网关、DNS server,如 图22:给剩下的所有设备的被直通线或者交叉线连接的网卡接口配置IPv4、默认网关、DNS server 所示。
( 图22:给剩下的所有设备的被直通线或者交叉线连接的网卡接口配置IPv4、默认网关、DNS server )
配置完各个需要被配置的网卡接口之后,开始配置RIP协议。配置RIP协议时,只需将各路由器的所有网卡接口的IPv4所属于的网段都加入到RIP表中即可。比如对于Router0而言,其三个网卡接口的IPv4所属于的网段分别是172.16.0.0/16、172.17.0.0/16、192.168.2.0/24,所以只需加入这三个网段即可。如 图23:将各路由器的所有网卡接口的IPv4所属于的网段都加入到RIP表中 所示。此时该网络拓扑图中的所有设备都可以实现相互之间的通信了,即使是对于PC0而言,其也可以通过向Web Browser中输入"http://www.httpserver.com"来访问Web服务器了,如 图24:PC0访问"http://www.httpserver.com" 所示。
( 图23:将各路由器的所有网卡接口的IPv4所属于的网段都加入到RIP表中 )
( 图24:PC0访问"http://www.httpserver.com" )
2. 在此基础上,正确地配置ACL,满足如下要求:
(1)限制所有主机远程登录到服务器;
第一步,限制所有主机远程登录到服务器,这一步该怎么实现呢?因为思科模拟器中的所有Server服务器都是默认没有并且无法安装SSH服务的,所以即使我们成功配置了该条ACL,也无法检验配置的正确性,所以我们选择跳过此步。而现实环境中配置该步的ACL命令为"access-list 107 deny tcp any 192.168.1.0 0.0.0.255 eq 22"。
(2)禁止192.168.3.0/24网段中的主机去ping192.168.1.0/24网段;
第二步,禁止192.168.3.0/24网段中的主机去ping192.168.1.0/24网段,因为ACL的配置要尽量靠近目的端,而目的端是192.168.1.0/24网段,所以被配置该步的路由器为Router2。我们先在特权模式下使用"show ip access-lists"命令显示已有的ACL,如 图25:在特权模式下使用"show ip access-lists"命令显示已有的ACL 所示。接着,我们先让192.168.3.0/24网段中的主机PC0去ping192.168.1.0/24网段的Server0,并将其作为对照,如 图26:让192.168.3.0/24网段中的主机PC0去ping192.168.1.0/24网段的Server0,并将其作为对照 所示。
( 图25:在特权模式下使用"show ip access-lists"命令显示已有的ACL )
( 图26:让192.168.3.0/24网段中的主机PC0去ping192.168.1.0/24网段的Server0,并将其作为对照 )
接着开始配置Router2中的ACL。在这里先敲入"enable"命令进入特权模式,接着使用"show ip access-lists"命令查看之前遗留的的ACL,发现之前没有之前遗留的ACL(如果存在之前遗留的ACL的话,使用"configure terminal"命令进入全局模式之后,再使用"no access-list 那条遗留的ACL的编号"去删除那条ACL),如 图27:没有之前遗留的ACL 所示。接着使用"configure terminal"命令进入全局模式,然后再使用"access-list 107 deny icmp 192.168.3.0 0.0.0.255 192.168.1.0 0.0.0.255"命令添加一条ACL。其中"access-list"表示创建一条ACL记录;"107"表示创建的ACL记录的ACL编号是107;"deny"表示该条ACL会拒绝一些包;"icmp"表示该条ACL会拒绝的包的协议类型为ICMP,而ping命令使用的协议就是ICMP,所以"icmp"表示该条ACL会拒绝来自某些地址ping另外某些地址的ping请求;“192.168.3.0 0.0.0.255"表示该条ACL会拒绝来自192.168.3.0/24网段的地址的ping请求;“192.168.1.0 0.0.0.255"表示该条ACL会拒绝发往192.168.1.0/24网段的地址的ping请求。所以这条命令的意思即为,107号ACL会拒绝来自192.168.3.0/24网段的地址的ping请求报文,其中ping请求报文的目的地址是192.168.1.0/24网段中的地址。接着因为在默认情况下,每个ACL的末尾都隐含着拒绝来自所有地方、发往所有地方、的所有类型报文,所以在第107号ACL中需要有"access-list 107 permit ip any any”,表示允许来自所有地方、发往所有地方、的所有IP报文。这时第107号ACL已经编写完成,如 图28:编写完成第107号ACL 所示。退出全局模式,再使用"show ip access-lists"查看已编写好的第107号ACL,如 图29:查看已编写好的第107号ACL 所示。接着再该条ACL生效前的最后一步,即为将该条ACL规则应用到Router2的网卡接口FastEthernet0/0的out规则上。为什么要将该条ACL规则应用到Router2的网卡接口FastEthernet0/0的出规则out上,而不是Router2的网卡接口FastEthernet1/0和FastEthernet1/1的入规则in上呢?因为这是为了简便考虑的,能配置尽量少的ACL,就配置尽量少的ACL。接着为什么要将该条ACL规则应用到Router2的网卡接口FastEthernet0/0的出规则out上,而不是入规则in上呢?因为如果是入规则in的话,发向网卡接口FastEthernet0/0的包的源地址都是192.168.1.0/24网段,怎么可能会有192.168.3.0/24网段的源地址呐?这时入规则相当于没有用了,所以将该条ACL规则应用到Router2的网卡接口FastEthernet0/0的出规则out上。进入全局模式,接着使用命令"int fa0/0"进入端口fa0/0,然后使用命令"ip access-group 107 out”,将第107号ACL规则作为端口fa0/0的出规则out。如 图30:将第107号ACL规则作为端口fa0/0的出规则out 所示。
( 图27:没有之前遗留的ACL )
( 图28:编写完成第107号ACL )
( 图29:查看已编写好的第107号ACL )
( 图30:将第107号ACL规则作为端口fa0/0的出规则out )
此时,如果PC0无法ping通Server1,但是仍能够访问Server1提供的HTTP服务,与Server0提供的DNS服务,就说明为Router2配置的ACL规则成功,我们来检验一下,如 图31:检验为Router2配置的ACL规则是否成功 所示。
( 图31:检验为Router2配置的ACL规则是否成功 )
如 图31:检验为Router2配置的ACL规则是否成功 所示,虽然PC0既ping不通Server0,又ping不通Server1,但是PC0能够通过访问"http://www.httpserver.com"来访问Server1提供的HTTP服务,同时将域名"http://www.httpserver.com"解析为IPv4地址"192.168.1.58"这个任务是由Server0提供的DNS解析服务完成的,所以PC0也能能使用Server0提供的DNS解析服务,所以综上所述,为Router2配置的ACL规则是成功的!
(3)禁止192.168.2.11主机使用HTTP协议访问Web服务器;
(4)禁止192.168.2.12主机访问DNS服务器
为什么将这两步合并为一步呢?因为这两步都是对Router2的网卡接口FastEthernet0/0所应用的ACL做修改,而因为无法比较方便的修改一条已有的ACL,所以我们选择删除步骤(2)中已有的第107号ACL,重新创建一个ACL,并且让该ACL能够同时满足(2)、(3)、(4)的要求,如 图32:重新为Router2的网卡接口FastEthernet0/0编写ACL规则,使其同时满足(2)、(3)、(4) 所示。
( 图32:重新为Router2的网卡接口FastEthernet0/0编写ACL规则,使其同时满足(2)、(3)、(4) )
接着验证第(2)步,192.168.3.0/24网段无法ping通192.168.1.0/24网段,如 图33:最终检验第(2)步 所示。接着检验第(3)步,禁止192.168.2.11主机使用HTTP协议访问Web服务器,但是192.168.2.11能够ping通Web服务器,也能够使用Server0提供的DNS服务,如 图34:最终检验第(3)步 所示。最后检验第(4)步,禁止192.168.2.12主机访问DNS服务器,但是192.168.2.12仍能够ping通Server0和Server1,并且虽不能通过域名访问Server1的Web服务,但能够通过IP地址访问Server1的Web服务,如 图35:最终检验第(4)步 所示。
( 图33:最终检验第(2)步 )
( 图34:最终检验第(3)步 )
( 图35:最终检验第(4)步 )
至此,实验完成!