實驗五、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)步 )
? 至此,實驗完成!