Introduction to Access Lists
Introduction to Access Lists
訪問列表(access list,ACL)的主要作用是過濾你不想要的數據包.設置ACL的一些規則:
1.按順序的比較,先比較第一行,再比較第二行..直到最後1行
2.從第一行起,直到找到1個符合條件的行;符合以後,其餘的行就不再繼續比較下去
3.默認在每個ACL中最後1行為隱含的拒絕(deny),如果之前沒找到1條許可(permit)語句,意味著包將被丟棄.所以每個ACL必須至少要有1行permit語句,除非你想想所有數據包丟棄
2種主要的訪問列表:
1.標準訪問列表(standard access lists):只使用源IP地址來做過濾決定
2.擴展訪問列表(extended access lists):它比較源IP地址和目標IP地址,層3的協議字段,層4端口號來做過濾決定
利用ACL來過濾,必須把ACL應用到需要過濾的那個router的接口上,否則ACL是不會起到過濾作用的.而且你還要定義過濾的方向,比如是是想過濾從Internet到你企業網的數據包呢還是想過濾從企業網傳出到Internet的數據包呢?方向分為下面2種:
1.inbound ACL:先處理,再路由
2.outbound ACL:先路由,再處理
一些設置ACL的要點:
1.每個接口,每個方向,每種協議,你只能設置1個ACL
2.組織好你的ACL的順序,比如測試性的最好放在ACL的最頂部
3.你不可能從ACL從除去1行,除去1行意味你將除去整個ACL,命名訪問列表(named access lists)例外(稍後介紹命名訪問列表)
4.默認ACL結尾語句是deny any,所以你要記住的是在ACL裏至少要有1條permit語句
5.記得創建了ACL後要把它應用在需要過濾的接口上
6.ACL是用於過濾經過router的數據包,它並不會過濾router本身所産生的數據包
7.盡可能的把IP標準ACL放置在離目標地址近的地方;盡可能的把IP擴展ACL放置在離源地址近的地方
Standard Access Lists
介紹ACL設置之前先介紹下通配符掩碼(wildcard masking).它是由0和255的4個8位位組組成的.0代表必須精確匹配,255代表隨意,比如:172.16.30.0 0.0.0.255,這個告訴router前3位的8位位組必須精確匹配,後1位8位位組的值可以為任意值.如果你想指定172.16.8.0到172.16.15.0,則通配符掩碼為0.0.7.255(15-8=7)
配置IP標準ACL,在特權模式下使用access-lists [範圍數字] [permit/deny] [any/host]命令.範圍數字為1到99和1300到1999;permit/deny分別為允許和拒絕;any為任何主機,host為具體某個主機(需要跟上IP地址)或某1段
我們來看1個設置IP標準ACL的實例:
訪問列表(access list,ACL)的主要作用是過濾你不想要的數據包.設置ACL的一些規則:
1.按順序的比較,先比較第一行,再比較第二行..直到最後1行
2.從第一行起,直到找到1個符合條件的行;符合以後,其餘的行就不再繼續比較下去
3.默認在每個ACL中最後1行為隱含的拒絕(deny),如果之前沒找到1條許可(permit)語句,意味著包將被丟棄.所以每個ACL必須至少要有1行permit語句,除非你想想所有數據包丟棄
2種主要的訪問列表:
1.標準訪問列表(standard access lists):只使用源IP地址來做過濾決定
2.擴展訪問列表(extended access lists):它比較源IP地址和目標IP地址,層3的協議字段,層4端口號來做過濾決定
利用ACL來過濾,必須把ACL應用到需要過濾的那個router的接口上,否則ACL是不會起到過濾作用的.而且你還要定義過濾的方向,比如是是想過濾從Internet到你企業網的數據包呢還是想過濾從企業網傳出到Internet的數據包呢?方向分為下面2種:
1.inbound ACL:先處理,再路由
2.outbound ACL:先路由,再處理
一些設置ACL的要點:
1.每個接口,每個方向,每種協議,你只能設置1個ACL
2.組織好你的ACL的順序,比如測試性的最好放在ACL的最頂部
3.你不可能從ACL從除去1行,除去1行意味你將除去整個ACL,命名訪問列表(named access lists)例外(稍後介紹命名訪問列表)
4.默認ACL結尾語句是deny any,所以你要記住的是在ACL裏至少要有1條permit語句
5.記得創建了ACL後要把它應用在需要過濾的接口上
6.ACL是用於過濾經過router的數據包,它並不會過濾router本身所産生的數據包
7.盡可能的把IP標準ACL放置在離目標地址近的地方;盡可能的把IP擴展ACL放置在離源地址近的地方
Standard Access Lists
介紹ACL設置之前先介紹下通配符掩碼(wildcard masking).它是由0和255的4個8位位組組成的.0代表必須精確匹配,255代表隨意,比如:172.16.30.0 0.0.0.255,這個告訴router前3位的8位位組必須精確匹配,後1位8位位組的值可以為任意值.如果你想指定172.16.8.0到172.16.15.0,則通配符掩碼為0.0.7.255(15-8=7)
配置IP標準ACL,在特權模式下使用access-lists [範圍數字] [permit/deny] [any/host]命令.範圍數字為1到99和1300到1999;permit/deny分別為允許和拒絕;any為任何主機,host為具體某個主機(需要跟上IP地址)或某1段
我們來看1個設置IP標準ACL的實例:
router有3個LAN的連接1個Internet的連接.現在,銷售部的用戶不允許訪問金融部的用戶,但是允許他們訪問市場部和Internet連接.配置如下:
Router(config)#access-list 10 deny 172.16.40.0 0.0.0.255
Router(config)#access-list 10 permit any
注意隱含的deny any,所以末尾這裡我們要加上permit any,any等同於0.0.0.0 255.255.255.255.接下來把ACL應用在接口上,之前説過了盡可能的把IP標準ACL放置在離目標地址近的地方,所以使用ip access-group命令把ACL 10放在E1接口,方向為出,即out.如下:
Router(config)#int e1
Router(config-if)#ip access-group 10 out
Controlling VTY(Telnet) Access
使用IP標準ACL來控制VTY線路的訪問.配置步驟如下:
1.創建個IP標準ACL來允許某些主機可以telnet
2.使用access-class命令來應用ACL到VTY線路上
實例如下:
Router(config)#access-list 50 permit 172.16.10.3
Router(config)#line vty 0 4
Router(config-line)#access-class 50 in
如上,進入VTY線路模式,應用ACL,方向為進來,即in.因為默認隱含的deny any,所以上面的例子,只允許IP地址為172.16.10.3的主機telnet到router上
Extended Access Lists
擴展ACL:命令是access-list [ACL號] [permit/deny] [協議] [源地址] [目標地址] [操作符] [端口] [log].ACL號的範圍是100到199和2000到2699;協議為TCP,UDP等,操作符號有eq(表等於),gt(大於),lt(小于)和neq(非等於)等等;log為可選,表示符合這個ACL,就記錄下這些日誌
來看1個配置擴展ACL的實例:
Router(config)#access-list 10 deny 172.16.40.0 0.0.0.255
Router(config)#access-list 10 permit any
注意隱含的deny any,所以末尾這裡我們要加上permit any,any等同於0.0.0.0 255.255.255.255.接下來把ACL應用在接口上,之前説過了盡可能的把IP標準ACL放置在離目標地址近的地方,所以使用ip access-group命令把ACL 10放在E1接口,方向為出,即out.如下:
Router(config)#int e1
Router(config-if)#ip access-group 10 out
Controlling VTY(Telnet) Access
使用IP標準ACL來控制VTY線路的訪問.配置步驟如下:
1.創建個IP標準ACL來允許某些主機可以telnet
2.使用access-class命令來應用ACL到VTY線路上
實例如下:
Router(config)#access-list 50 permit 172.16.10.3
Router(config)#line vty 0 4
Router(config-line)#access-class 50 in
如上,進入VTY線路模式,應用ACL,方向為進來,即in.因為默認隱含的deny any,所以上面的例子,只允許IP地址為172.16.10.3的主機telnet到router上
Extended Access Lists
擴展ACL:命令是access-list [ACL號] [permit/deny] [協議] [源地址] [目標地址] [操作符] [端口] [log].ACL號的範圍是100到199和2000到2699;協議為TCP,UDP等,操作符號有eq(表等於),gt(大於),lt(小于)和neq(非等於)等等;log為可選,表示符合這個ACL,就記錄下這些日誌
來看1個配置擴展ACL的實例:
假如要拒telnet和FTP到絕位於金融部的主機172.16.30.5,配置如下:
Router(config)#access-list 110 deny tcp any host 172.16.30.5 eq 21
Router(config)#access-list 110 deny tcp any host 172.16.30.5 eq 23
Router(config)#access-list 110 permit ip any any
記住默認隱含的deny all.應用到E1接口,注意方向為out,如下:
Router(config)#int e1
Router(config-if)#ip access-group 110 out
Named Access Lists
命名訪問列表是創建標準和擴展訪問列表的另外1種方法.它允許你使用命名的方法來創建和應用標準或者擴展訪問列表.使用ip access-list命令來創建,如下:
Router(config)#access-list 110 deny tcp any host 172.16.30.5 eq 21
Router(config)#access-list 110 deny tcp any host 172.16.30.5 eq 23
Router(config)#access-list 110 permit ip any any
記住默認隱含的deny all.應用到E1接口,注意方向為out,如下:
Router(config)#int e1
Router(config-if)#ip access-group 110 out
Named Access Lists
命名訪問列表是創建標準和擴展訪問列表的另外1種方法.它允許你使用命名的方法來創建和應用標準或者擴展訪問列表.使用ip access-list命令來創建,如下:
Router(config)#ip access-list ?
extended Extended Acc
logging Control access list logging
standard Standard Access List
Router(config)#ip access-list standard ?
<1-99> Standard IP access-list number
WORD Access-list name
Router(config)#ip access-list standard BlockSales
Router(config-std-nacl)#?
Standard Access List configuration commands:
default Set a command to its defaults
deny Specify packets to reject
exit Exit from access-list configuration mode
no Negate a command or set its default
permit Specify packets to forward
Router(config-std-nacl)#deny 172.16.40.0 0.0.0.255
Router(config-std-nacl)#permit any
Router(config-std-nacl)#exit
Router(config)#^Z
Router#sh run
(略)
!
ip access-list standard BlockSales
deny 172.16.40.0 0.0.0.255
permit any
!
(略)
接下來應用到接口上,如下:
Router(config)#int
1
Router(config-if)#ip access-group BlockSales out
Router(config-if)#^Z
Router#
Monitoring Access Lists
一些驗證ACL的命令,如下:
1.show access-list:顯示router上配置了的所有的ACL信息,但是不顯示哪個接口應用了哪個ACL的信息
2.show access-list [number]:顯示具體第幾號ACL信息,也不顯示哪個接口應用了這個ACL
3.show ip interface:只顯示IP訪問列表信息
4.show ip interface:顯示所有接口的信息和配置的ACL信息
5.show ip interface [接口號]:顯示具體某個接口的信息和配置的ACL信息
6.show running-config:顯示DRAM信息和ACL信息,以及接口對ACL的應用信息。
extended Extended Acc
logging Control access list logging
standard Standard Access List
Router(config)#ip access-list standard ?
<1-99> Standard IP access-list number
WORD Access-list name
Router(config)#ip access-list standard BlockSales
Router(config-std-nacl)#?
Standard Access List configuration commands:
default Set a command to its defaults
deny Specify packets to reject
exit Exit from access-list configuration mode
no Negate a command or set its default
permit Specify packets to forward
Router(config-std-nacl)#deny 172.16.40.0 0.0.0.255
Router(config-std-nacl)#permit any
Router(config-std-nacl)#exit
Router(config)#^Z
Router#sh run
(略)
!
ip access-list standard BlockSales
deny 172.16.40.0 0.0.0.255
permit any
!
(略)
接下來應用到接口上,如下:
Router(config)#int
1
Router(config-if)#ip access-group BlockSales out
Router(config-if)#^Z
Router#
Monitoring Access Lists
一些驗證ACL的命令,如下:
1.show access-list:顯示router上配置了的所有的ACL信息,但是不顯示哪個接口應用了哪個ACL的信息
2.show access-list [number]:顯示具體第幾號ACL信息,也不顯示哪個接口應用了這個ACL
3.show ip interface:只顯示IP訪問列表信息
4.show ip interface:顯示所有接口的信息和配置的ACL信息
5.show ip interface [接口號]:顯示具體某個接口的信息和配置的ACL信息
6.show running-config:顯示DRAM信息和ACL信息,以及接口對ACL的應用信息。