創建ACL
命令語法如下:
Router(config)# access-list access-list-number { permit | deny } protocol { source source-wildcard destination destination-wildcard } [ operator operan ]
下面是命令參數的詳細說明:
access-list-number:訪問控制列表表號,對於擴展ACL來說,是100-199的一個數字。
permit|deny:如果滿足測試條件,則允許|拒絕該通信流量。
protocol:用來指定協議類型,如IP、TCP、UDP、ICMP等。
source、destination:源和目的,分別用來標識源地址和目的地址
source-wildcard、destination-wildcard:反碼,source-wildcard是源反碼,與源地址向對應;destination-wildcard是目的反碼,與目的地址對應。
operator operan:lt(小於)、gt(大於)、eq(等於)或neq(不等於)一個端口號。
例1 允許網絡192.168.1.0/24訪問網絡192.168.2.0/24的IP流量通過,而拒絕其他任何流量,ACL命令如下所示:
Router(config)#access-list 101 permit ip 192.168.2.0/24 0.0.0.255 192.168.2.0 0.0.0.255
Router(config)#access-list 101 deny ip any any
例2 拒絕網絡192.168.1.0/24訪問FTP服務器192.168.2.2/24的IP流量通過,而允許其他任何流量,ACL命令如下所述:
Router(config)#access-list 101 deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21
Router(config)#access-list 101 permit ip any any
例3禁止網絡192.168.1.0/24中的主機ping通服務器192.168.2.2/24,而允許其他任何流量,ACL命令如下所述:
Router(config)#access-list 101 deny icmp192.168.1.0 0.0.0.255 host 192.168.2.2 echo
Router(config)#access-list 101 permit ip any any
刪除已建立的擴展ACL命令語法與標準ACL一樣,如下所示:
Router(config)#no access-list access-list-number
擴展ACL與標準ACL一樣,也不能刪除單條ACL語句,只能刪除整個ACL。
將ACL應用於接口
與標準ACL一樣,只有將ACL應用於接口,ACL纔會生效。
命令語法與標準ACL一樣,如下所示:
Router(config-if)#ip access-group access-list-number {in | out}
要在接口上取消ACL的應用,可以使用如下命令:
Router(config-if)#no ip access-group access-list-number {in | out}
擴展ACL的配置實例
實驗要求:
拓撲圖如上所示,現允許主機PC1訪問Web服務器的WWW服務,而禁止主機PC1訪問Web服務器的其他任何服務。
允許主機PC1訪問網絡192.168.2.0/24。
配置步驟:
配置全網互通。
分析在哪個接口應用擴展ACL
應用在入站接口還是出站接口
與標準ACL一樣,應該儘量把訪問控制列表應用到入站接口
應用在哪臺路由器上
由於擴展ACL可以根據源IP地址、目的IP地址、指定協議、端口等過濾數據包,因此最好應用到路由器R1的入站接口。如果應用在路由器R2或R3的入站接口上,會導致所經過的路由器佔用不必要的資源。也就是說,應該把擴展ACL應用在離源地址最近的路由器上。
配置擴展ACL並應用到接口上。
命令如下:
查看並驗證配置
使用show access-list命令查看ACL配置。
驗證配置
在PC1上可以訪問Web服務器的WWW服務,但不能ping通Web服務器
在PC1上可以ping通網絡192.168.2.0/24中的任一臺主機
命令訪問控制列表的配置
創建ACL
命令語法如下:
Router(config)#ip access-list {standard | extended} access-list-name
參數access-list-name可以使用一個由字母、數字組合的字符串
如果是標準命令ACL,命令語法如下所述:
Router(config-std-nacl)#[Sequence-Number] {permit | deny} source [source-wildcard]
如果是擴展命名ACL,命令語法如下所述:
Router(config-std-nacl)#[Sequence-Number] { permit | deny } protocol {source source-wildcard destination destination-wildcard} [ operator operan ]
無論是配置標準命名ACL語句還是配置擴展命名ACL語句,都有一個可選參數Sequence-Number。Sequence-Number參數表明了配置的ACL語句在命令ACL中所處的位置,默認情況下,第一條爲10,第二條爲20,依次類推。
Sequence-Number可以很方便的將新添加的ACL語句插入到原有的ACL列表的指定位置,如果不選擇Sequence-Number,參數就會添加到ACL列表末尾並且序列號加10。
例4 允許來自主機192.168.1.1/24的流量通過,而拒絕其他流量,標準命名ACL命令如下所述:
Router(config)# ip access-list standardcisco
Router(config-std-nacl)#permit host 192.168.1.1
Router(config-std-nacl)#deny any
使用show access-list命令查看ACL配置,結果如下所述:
Router# show access-list
Standard IP access-list cisco //標準訪問控制列表cisco
10permit 192.168.1.1 //配置的第1條ACL語句序列號爲10
20 deny any //配置的第2條ACL語句序列號爲20
此時更改需求,除允許來自主機192.168.1.1/24的流量通過外,也允許來自主機192.168.2.1/24的流量通過,可以進行如下配置:
Router(config)# ip access-list standardcisco
Router(config-std-nacl)#15 permit host 192.168.2.1 //配置ACL語 句序列號爲15
再次查看配置的ACL,結果如下:
Router# show access-list
Standard IP access-list cisco
10permit 192.168.1.1
15permit 192.168.2.1 //新配置的ACL語句,放到了ACL列表的指 定位置
20 deny any
注意:如果不指定序列號,則新添加的ACL被添加到列表的末尾。
例5 拒絕網絡192.168.1.0/24訪問FTP服務器192.168.2.2/24的流量通過,而允許其他任何流量,擴展命名ACL命令如下所述:
Router(config)# ip access-list extendedcisco
Router(config-ext-nacl)# deny tcp192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21
Router(config-ext-nacl)#permit ip any any
刪除已建立的命令ACL
命令語法如下:
Router(config)#no ip access-list {standard | extended} access-list-name
對命名ACL來說,可以刪除單條ACL語句,而不必刪除整個ACL。並且,ACL語句可以有選擇的插入到列表中的某個位置,使得ACL配置更加方便靈活。
如果要刪除某一ACL語句,可以使用“no Sequence-Number”或“no ACL語句”兩種方式。例如,在例1中刪除“permit host 192.168.1.1”的語句命令如下:
Router(config)# ip access-list standardcisco
Router(config-std-nacl)# no 10
或
Router(config)# ip access-list standardcisco
Router(config-std-nacl)# no permit host 192.168.1.1
將ACL應用於接口
創建命令ACL後,也必須將ACL應用於接口才會生效。
命令語法如下:
Router(config-if)#ip access-group access-list-name {in | out}
要在接口上取消命令ACL的應用,可以使用如下命令:
Router(config-if)#no ip access-group access-list-name {in | out}
命名ACL配置實例
實驗要求:
一.公司新建了一臺服務器(IP地址:192.168.2.2),出於安全方面考慮要求如下:
192.168.1.0/24網段中除192.168.1.1和192.168.1.3外的其餘地址都不能訪問服務器。
其他公司網段都可以訪問服務器。
具體步驟:
拓撲圖如上所示,配置全網互通。
設備配置ACL如下:
使用show access-list命令查看配置的ACL信息,結果如下:
驗證配置。主機192.168.1.1和192.168.1.3能ping通服務器,主機192.168.1.2不能。
二.網絡運行一段時間後,由於公司人員調整,需要變更訪問服務器的ACL,要求如下:
不允許主機192.168.1.1和192.168.1.3 訪問服務器
允許主機192.168.1.2訪問服務器
具體步驟:
ACL變更配置如下:
再次查看配置的ACL信息,結果如下:
驗證配置。主機192.168.1.1和192.168.1.3不能ping通服務器了,主機192.168.1.2可以ping通服務器。
注意:如果不指定序列號,則新添加的ACL被添加到列表的末尾。
訪問控制列表的應用
公司內部網絡已經建成,拓撲圖如上所示。
公司內部網絡規劃如下:
根據公司現有各部門主機數量和以後增加主機的情況,爲每個部門分配一個C類地址並且每個部門使用一個VLAN,便於管理。
分配一個C類地址作爲設備的管理地址
按照上述規劃配置設備,已經實現了網絡連通
基於信息安全方面考慮,公司要求如下:
限定不同的部門能夠訪問的服務器,例如:財務部只能訪問財務部服務器,生產部只能訪問生產部服務器。
網絡管理員可以訪問所有服務器。
網絡設備只允許網管區IP地址通過TELNET登錄,並配置設備用戶名爲benet,密碼爲123456。
只有網絡管理員才能通過遠程桌面、TELNET、SSH等登錄方式管理服務器。
要求所有部門之間不能互通,但都可以和網絡管理員互通。
公司中有幾名信息安全員,公司要求信息安全員可以訪問服務器,但不能訪問Internet。
外網只能訪問特定服務器的特定服務。
網絡規劃如下:
公司全部使用192.168.0.0/16網段地址。
配置設備的網管地址。其中SW3L爲192.168.0.1/24,SW1爲192.168.0.2/24,SW2爲192.168.0.3/24,R1爲1.1.1.1/32。
PC1爲網絡管理區主機,其IP地址爲192.168.2.2/24,網關爲192.168.2.1/24,屬於VLAN 2;PC2爲財務部主機,IP地址爲192.168.3.2/24,網關爲192.168.3.1/24,屬於VLAN 3;PC3爲信息安全員主機,IP地址爲192.168.4.2/24,網關爲192.168.4.1/24,屬於VLAN 4。
在SW3L交換機VLAN 2接口的IP地址爲192.168.2.1/24,VLAN 3接口的IP地址爲192.168.3.1/24,VLAN4接口的IP地址爲192.168.4.1/24,VLAN 100接口的IP地址爲192.168.100.1/24。
服務器IP地址爲192.168.100.2/24,網關地址爲192.168.100.1/24,屬於VLAN 100。
SW3L和R1的互聯地址爲10.0.0.0/30。
配置R1路由器的Loopback接口地址的爲123.0.1.1/24,模擬外網地址。
按照公司網絡規劃和要求配置設備。
具體配置:
配置設備,實現全網互通
R1配置如下:
R1(config)#int f0/0
R1(config-if)#ip address 10.0.0.1 255.255.255.252
R1(config-if)#no sh
R1(config)#int loopback 0
R1(config-if)#ip address 123.0.1.1 255.255.255.0
R1(config)#ip route 192.168.0.0 255.255.0.0 10.0.0.2
R1(config)#int loopback 1
R1(config-if)#ip address 1.1.1.1 255.255.255.255
SW3L配置信息如下:
SW3L(config)#vlan 2
SW3L(config)#vlan 3
SW3L(config)#vlan 4
SW3L(config)#vlan 100
SW3L(config)#int f0/1
SW3L(config-if)#no switchport
SW3L(config-if)#ip address 10.0.0.2 255.255.255.252
SW3L(config)#iproute 0.0.0.0 0.0.0.0 10.0.0.1
SW3L(config)#int range int f0/13 -14
SW3L(config-if-range)#switchport trunk encapsulation dot1q
SW3L(config-if-range)#seitchport mode trunk
SW3L(config)#int vlan 2
SW3L(config-if)#ip address 192.168.2.1 255.255.255.0
SW3L(config-if)#no sh
SW3L(config)#int vlan 3
SW3L(config-if)#ip address 192.168.3.1 255.255.255.0
SW3L(config-if)#no sh
SW3L(config)#int vlan 4
SW3L(config-if)#ip address 192.168.4.1 255.255.255.0
SW3L(config-if)#no sh
SW3L(config)#int vlan 100
SW3L(config-if)#ip address 192.168.100.1 255.255.255.0
SW3L(config-if)#no sh
SW3L(config)#ip routing
SW3L(config)#int vlan 1
SW3L(config-if)#ip address 192.168.0.1 255.255.255.0
SW3L(config-if)#no sh
SW1配置信息如下:
SW1(config)#vlan 2
SW1(config)#vlan 3
SW1(config)#vlan 4
SW1(config)#int f0/14
SW1(config-if)#switchport mode trunk
SW1(config)#intf0/1
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 2
SW1(config)#intf0/2
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 3
SW1(config)#intf0/3
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 4
SW1(config)#int vlan 1
SW1(config-if)#ip address 192.168.0.2 255.255.255.0
SW1(config-if)#no sh
SW1(config)#ip default-gateway 192.168.0.1
SW2配置信息如下:
SW3(config)#vlan 100
SW3(config-vlan)#exit
SW3(config)#intf0/14
SW3(config-if)#switchportmode trunk
SW3(config)#int f0/1
SW3(config-if)#switchport mode access
SW3(config-if)#switchport access vlan 100
SW3(config)#intvlan 1
SW3(config-if)#ip address 192.168.0.3 255.255.255.0
SW3(config-if)#no sh
SW3(config)#ip default-gateway 192.168.0.1
配置ACL實現公司要求
配置實現網絡設備只允許網管去IP地址可以通過TELNET登錄,並配置設備用戶名爲benet,密碼爲123456,R1的配置如下:
R1(config)# access-list 1 permit192.168.2.0 0.0.0.255
R1(config)# username benet password 123456
R1(config)# line vty 0 4
R1(config-line)# login local
R1(config-line)# access-class 1 in
R1(config-line)# exit
SW3L、SW1、SW2的配置與R1相同
公司其他要求的配置命令如下:
//ACL 100表示內網主機都可以訪問服務器,但是隻有網絡管理員才能通過TELNET、SSH和遠程桌面登錄服務器,外網只能訪問服務器的80端口
SW3L(config)#access-list 100 permit ip192.168.2.0 0.0.0.255 host 192.168.100.2
//上述一條ACL表示:允許網絡管理員網段192.168.2.0/24訪問服務器
SW3L(config)#access-list 100 deny tcp192.168.0.0 0.0.255.255 host192.168.100.2 eq telnet
SW3L(config)#access-list 100 deny tcp192.168.0.0 0.0.255.255 host192.168.100.2 eq 22
SW3L(config)#access-list 100 deny tcp192.168.0.0 0.0.255.255 host192.168.100.2 eq 3389
//上述四條ACL表示:除192.168.2.0/24網段外其他所有內網地址均不能通過TELNET、SSH和遠程桌面登錄服務器
SW3L(config)#access-list 100 permit ip192.168.0.0 0.0.255.255 host192.168.100.2
SW3L(config)#access-list 100 permit tcp anyhost 192.168.100.2 eq 80
//上述兩條ACL表示:允許內網主機訪問服務器,允許外網主機訪問服務器的80端口
SW3L(config)#access-list 100 deny ip anyany
SW3L(config)# int vlan 100
SW3L(config-if)# ipaccess-group 100 out
SW3L(config-if)# exit
//ACL101表示192.168.3.0/24網段主機可以訪問服務器,可以訪問網絡管理員網段,但不能訪問其他部門網段,也不能訪問外網
SW3L(config)#access-list 101 permit ip192.168.3.0 0.0.0.255 host 192.168.100.2
SW3L(config)#access-list 101 permit ip192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255
SW3L(config)#access-list 101 deny ip anyany
SW3L(config)# int vlan 3
SW3L(config-if)# ip access-group 101 in
SW3L(config-if)# exit
//ACL102表示192.168.4.0/24網段主機可以訪問服務器,可以訪問網絡管理員網段,但不能訪問其他部門網段,可以訪問外網(這裏用於測試目的)
SW3L(config)#access-list 102 permit ip192.168.4.0 0.0.0.255 host 192.168.100.2
SW3L(config)#access-list 102 permit ip192.168.4.0 0.0.0.255 192.168.2.0 0.0.0.255
SW3L(config)#access-list 102 deny ip192.168.4.0 0.0.0.255 192.168.0.0 0.0.255.255
SW3L(config)#access-list 102 permit ip anyany
SW3L(config)# int vlan 4
SW3L(config-if)# ip access-group 102 in
SW3L(config-if)# exit