ACL访问控制列表
原理部分
访问控制列表的工作原理:
出:已经过路由器处理正离开路由器接口的数据包。
入:已达到路由器接口的数据包,将被路由器处理。
ACL对数据流的处理流程:
路由器将对数据包进行匹配,路由器将决定该数据包的通过或拒绝,拒绝后将下一跳匹配共匹配三次直到最后拒绝丢弃。
ACL类型
标准访问:根据数据包的源iP地址来允许或拒绝。列表号1~99。
扩展访问:根据数据包的源IP地址、目的IP地址、指定协议、端口和标志来允许或拒绝。列表号100~199。
命名访问:允许使用标准访问或扩展访问,用名称代替列表号。
命令语法
标准性访问控制列表
创建ACL语句
access-list access-list-number { permit | deny } source { source-wildcard }
access-list-number:列表号
permit:允许
deny:拒绝
Source:源IP
Source-wildcard:源IP的反掩码
应用到接口
Router(config-if)#ip access-group access-list-number { in | out }
注:在ACL访问控制列表中可以用关键字host与any。(host表示主机,any表示所有)
例:
access-list 1 permit 192.168.1.1 0.0.0.255 等同于 access-list 1 permit host 192.168.1.1
//允许主机192.168.1.1 通过
access-list 1 deny 0.0.0.0 255.255.255.255 等同于 access-list 1 deny any //拒绝所有
扩展性访问控制列表
创建ACL语句
access-list access-list-number { permit | deny } protocol source source-wildcard destination destination-wildcard operator operan
protocol:协议
destination:目的IP
destination-wildcard:目的IP的反掩码
operator operan :可使用lt(小于)、gt(大于)、eq(等于)或neq(不等于)一个端口号。
命令性访问控制列表
创建ACL语句
ip access-list { standard | extended } acces-list-name
standard:标准
extended:扩展
创建标准性ACL的命名语句
Router(config-std-nacl)# [ sequence-number ] { permit | deny } source [ source-wildcard ]
创建扩展性ACL的命名语句
Router(config-ext-nacl)# [ sequence-number ] { permit | deny } protocol source source-wildcard destination destination-wildcard operator operan
Sequence-numeber:可以将新添加的ACL语句插入到ACL列表中。(默认情况下第一条语句为10第二条为20,依次类推。如果拒绝语句为30,那么这里就可以写10-30之内的任意数字,就可以插入进去。)
Router(config-std-nacl)# //标准ACL
Router(config-ext-nacl)# //扩展ACL
实例部分
先看清楚拓扑图的配置详情
实验步骤如下(用GNS3做的)
第一步:为真机、vpcs1、web网页配置IP地址并互通。
真机配置
web服务配置
vpcs1配置
路由器R1与交换机之间要配置双工。
真机ping web服务
第二步:配置标准性ACL访问控制列表
R1路由器
真机测试
web测试
扩展性访问控制列表
第一条语句的意思是允许主机192.168.2.1访问主机192.168.3.2的内网
第二条语句的意思是拒接主机192.168.2.1去ping通主机192.168.3.2
第三条语句的意思是允许主机192.168.2.1去ping通其它网段地址。
//在Windows server 2008上搭建web服务
//服务搭建好后进入Internet信息服务管理器中看看web服务有没有启动。
//如果没有启动该服务,右击如下图标就可以开启。
在真机上用IE浏览器测试。(ping不同web服务器却可以访问它的内网)
命令性访问控制列表(并没有用上面的那张拓扑图)
例:
router(config)#ip access-list standard wang
router(config-std-nacl)#permit host 192.168.1.1
router(config-std-nacl)#deny any
可以使用show access-lists查看
standard IP access list wang //标准访问控制列表
10 permit 192.168.1.1 //配置第一条ACL语句的序列号为10
20 deny any //配置第二条ACL语句的序列号为20
如果这时想让192.168.2.1的也能允许流量通过。
router(config-std-nacl)# 15 permit host 192.168.2.1 //配置ACL语句的序列号
在通过show access-lists命令来查看
standard IP access list wang //标准访问控制列表
10 permit 192.168.1.1 //配置第一条ACL语句的序列号为10
15 permit 192.168.2.1
20 deny any //配置第二条ACL语句的序列号为20