访问控制列表
一 访问控制列表概述
・访问控制列表简介:访问控制列表(ACL)是应用在路由器接口的指令列表,即规则。这些规则用来告诉路由器,哪些数据包可以接收,哪些数据包需要拒绝
・访问控制列表原理:
・ACL使用包过滤技术,在路由器上读取OSI七层模型的第三层及第四层包头中的信息,包括源地址、目的地址、源端口、目的端口等,根据预先定好的规则,对包进行过滤
・ACL是一组规则的集合,它应用在路由器的某个接口上,对路由接口而言,访问控制列表有两个方向:
出:已经过路由器的处理,正离开路由器接口的数据包
进:已到达路由器接口的数据包,将被路由器处理
・如果对接口应用了访问控制列表,那么路由器将对数据包应用改组规则进行顺序检查
1 如果匹配第一条规则,则不再往下检查,路由器将决定该数据包允许或拒绝通过
2 如果不匹配第一条规则,则依次往下检查,直到有一条规则匹配,路由器将决定该数据包允许通过或拒绝通过
3 如果没有一条规则匹配,则路由器根据默认的规则将丢弃该数据包
・访问控制列表类型
1 标准访问控制列表:根据数据包的源IP地址来允许或拒绝数据包;它的访问控制列表号是1~99
2 扩展访问控制列表:根据数据包的源IP地址、目的IP地址、指定协议、端口和标志来允许或拒绝数据包;它的访问控制列表号是100~199
3 命名访问控制列表:允许在标准和扩展访问控制列表中使用名称代替表号
二 标准访问控制列表
・创建ACL:Router(config)#access-list 列表号 permit/deny IP/网段
1 拒绝指定网段的主机通过
Router(config)#access-list 99 deny 192.168.1.0 0.0.0.255
Router(config)#access-list 99 permit any
其中0.0.0.255为反码
2 只允许指定IP地址的主机通过(默认拒绝所有)
Router(config)#access-list 1 permit 192.168.1.1 0.0.0.0
或
Router(config)#access-list 1 permit host 192.168.1.1
・应用ACL:
1 应用于进接口
Router(config)#int f0/0
Router(config-if)#ip access-group 1 in
2 应用于出接口
Router(config)#int f0/1
Router(config-if)#ip access-group 1 out
・删除ACL
Router(config)#no access-list 1
・取消应用
Router(config)#int f0/0
Router(config-if)#no ip access-group 1 in
・查看ACL配置
Router#show access-lists
二 扩展访问控制列表
・创建ACL: Router(config)# access-list access-list-number { permit | deny } protocol { source source-wildcard destination destination-wildcard } [ operator operan ]
access-list-number:访问控制列表号,范围100~199
permit/deny:拒绝或允许
protocol:各种协议,包括IP、TCP、UDP、ICMP
source source-wildcard:源IP和反码
destination destination-wildcard:目的IP和反码
operator operan:运算符+端口号,包括lt(小于)、gt(大于)、eq(等于)、neq(不等于) 80
1 允许网段192.168.1.0/24访问网段192.168.2.0/24,拒绝其他任何
Router(config)#access-list 101 permit ip 192.168.1.0 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的FTP服务,允许其他任何
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.2/24能ping通服务器192.168.1.1/24,允许其他任何
Router(config)#access-list 101 deny icmp host 192.168.1.2 host 192.168.1.1 echo
Router(config)#access-list 101 permit ip any any
4 允许主机192.168.1.2访问web服务器192.168.1.1/24的web服务,禁止访问web服务器的其他任何服务
Router(config)#access-list 101 permit tcp host 192.168.1.20 host 192.168.2.2 eq 80
Router(config)#access-list 101 deny ip host 192.168.1.20 host 192.168.2.2
・应用ACL
1 应用于进接口
Router(config)#int f0/0
Router(config-if)#ip access-group 101 in
2 应用于出接口
Router(config)#int f0/1
Router(config-if)#ip access-group 101 out
・删除ACL
Router(config)#no access-list 101
・取消应用
Router(config)#int f0/0
Router(config-if)#no ip access-group 101 in
・查看ACL配置
Router#show access-lists
三 命名访问控制列表
・创建ACL: Router(config)# ip access-list { standard | extended } access-list-name
standard | extended:标准访问控制列表或扩展访问列表
access-list-name:自定义名称
1 允许主机192.168.1.1/24通过路由器,拒绝其他所有
Router(config)#ip access-list standard xiaoshoou 创建xiaoshou并进入配置
Router(config-std-nacl)#permit host 192.168.1.1
Router(config-std-nacl)#deny any
使用show access-lists查看ACL配置
Router#show access-lists
Standard IP access list xiaoshoou //标准访问控制列表xiaoshou
10 permit host 192.168.1.1 //配置的第一条语句序号默认为10
20 deny any //第二条默认为20
2 更改以上配置,允许主机192.168.1.2也能通过路由器
R1(config)#ip access-list standard xiaoshou //进入xiaoshou的配置
R1(config-std-nacl)#15 permit host 192.168.1.2 //配置语句序号为15
查看ACL配置
R1#show access-lists
Standard IP access list xiaoshou 已按序号顺序排好
10 permit 192.168.1.1
15 permit 192.168.1.2
20 deny any
・应用ACL
1 应用于进接口
Router(config)#int f0/0
Router(config-if)#ip access-group 101 in
2 应用于出接口
Router(config)#int f0/1
Router(config-if)#ip access-group 101 out
・删除ACL中的某一条规则
R1(config)#ip access-list standard xiaoshou 进入xiaoshou
R1(config-std-nacl)#no 15 直接删除序号
或
R1(config-std-nacl)#no permit host 192.168.1.1 直接删除语句
・删除ACL
Router(config)#no access-list standard xiaoshou
・取消应用
Router(config)#int f0/0
Router(config-if)#no ip access-group 101 in