一、访问控制列表概述
1、访问控制列表(ACL):读取第三层、第四层包头信息,根据预先丁含义好的规则对包进行过滤。
2、访问控制列表的处理过程:如果匹配第一条规则,则不再往下检查,路由器将决定该数据包允许通过或拒绝通过,如果不匹配第一条规则,则依次往下检查。直到有任何一条规则匹配,如果最后没有任何一条规则匹配,则路由器根据默认的规则将丢弃该数据包。
3、访问控制列表的类型:标准访问控制列表:基于源IP地址过滤数据包列表号是1~99;
扩展访问控制列表:基于源IP地址、目的IP地址、指定协议、端口等来过滤数据包列表号是100~199.
命名访问控制列表:命名访问控制列表允许在标准和扩展访问控制列表中使用名称代替表号。
二、标准访问控制列表
1、标准访问控制列表的创建
全局:access-list 1 deny 192.168.1.1 0.0.0.0
全局:access-list 1 permit 192.168.1.0 0.0.0.255
通配符掩码:也叫反码,用二进制数0和1表示,如果某位为1,表明这意味不需要进行匹配操作,如果为0,表明需要严格匹配。
例如:192.168.1.0/24子网掩码是255.255.255.0.其反码可以通过255.255.255.255减去25.255.255.0得到0.0.0.255.
隐含拒绝语句:access-list 1 deny 0.0.0.0 255.255.255.255
2、将ACL应用于接口
接口模式:ip access-group 列表号 in或out(根据接口流向判断用in还是out)
3、删除已建立的访问控制列表:全局:no access-list 列表号
4、接口上取消ACL:接口模式:no ip access-group 列表号 in或out
5、查看访问控制列表:特权:show access-lists
注意:access-list 1 deny 192.168.1.1 0.0.0.0或写为access-list 1 deny host 192.168.1.1
access-list 1 deny 0.0.0.0 255.255.255.255.0或写为access-list 1 deny any
二、扩展访问控制列表
1、eq等于、lt小于、gt大于、neq不等于
2、扩展访问控制列表案例:
例1:全局:access-list 101 permirt ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255允许192.168.1.0 访问网络192.168.2.0网络的所有服务
全局:access-list 101 deny ip any any (拒绝所有)
例2:全局:access-list 101 deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21(拒绝192.168。1.0网段访问192.168.2.2的TCP的21端口
全局:access-list 101 permit ip any any (允许访问所有)
例3:全局:access-list 101 deny icmp 192.168.1.0 0.0.0.255 host 192.168.2.2 echo(拒绝192.168.1.0 ping 192.168.2.2)
3、删除扩展ACL:全局:no access-list 列表号。注意:扩展与标准ACL不能删除单条语句,只能删除整个ACL。
4、扩展ACL应该应用在离源地址最近的路由器上。
三、命名访问控制列表
1、命名访问控制列表可以配置标准命名也可配置扩展命名。
2、命名访问控制列表的ACL语句默认第一条为10,第二条为20,以此类推。
3、命名ACL可以删除单条ACL语句,而不必删除整个ACL,并且命名ACL语句可以有选择的插入到列表中的某个位置,是的ACL配置更加方便灵活。
4、标准命名ACL的配置;全局:ip access-list standard 名字;permit host 192.168.1.1;deny any;
命名ACL应用与接口:接口模式:ip access-group 名字 in 或out
5、扩展命名ACL的配置:全局:ip access-list extended 名字;
deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 80 拒绝1.0网段访问2.2的web服务;permit ip any any允许所有访问所有
实验一
实验名称:命名访问控制列表
步骤1:搭建基本环境
如图,实现能够ping通
在现实生活中,很多时候我们需要限某些主机在路由器上的访问IP,下面进入步骤2
步骤2:通过扩展名命名ACL配置实现标准访问控制列表,
根据步骤1,我们要实现pc0可以通过路由器访问外网,而pc2不行
首先进入router0输入:
Router(config)#ip access-list standard cd
Router(config-std-nacl)#permit host 192.168.1.1
Router(config-std-nacl)#deny 192.168.1.0 0.0.0.255
Router(config-std-nacl)#
进入接口
Router(config)#int f0/1
Router(config-if)#ip access-group cd in
Router(config-if)#
进入主机,ping一下外网的192.168.3.1主机,发现pc1是不可以ping通的。而pc0依然可以
下面,假如我们觉得PC1最近表现良好,给予其访问外网的权利,那么我们可以直接在列表里面添加。
Router#show access-list
Standard IP access list cd
10 permit host 192.168.1.1 (4 match(es))
20 deny 192.168.1.0 0.0.0.255 (4 match(es))
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#ip access-list standard cd
Router(config-std-nacl)#15 permit host 192.168.1.2
Router(config-std-nacl)#
首先,查看一下访问控制表,然后将允许PC1访问插入两条语句中间,ping发现PC1是可以通的
如果想要删除,我们可以全局模式:
Router(config)#no ip access-list standard cd
Router(config)#
即可。
步骤3:通过扩展名命名ACL配置实现扩展访问控制列表
首先搭建一个如下图的环境
实现能够ping 通,且访问服务器的WEB服务
如此就可以通信了,下开始控制访问
进入router0输入:
Router(config)#ip access-list extended cd
Router(config-ext-nacl)#permit tcp host 192.168.1.1 host 192.168.4.1 eq www
Router(config-ext-nacl)#deny ip host 192.168.1.1 host 192.168.4.1
Router(config-ext-nacl)#permit ip any any
Router(config-ext-nacl)#
Router(config)#int f0/1
outer(config-if)#ip access-group cd in
Router(config-if)#
这样就实现了PC0访问服务器的www服务,但是不可以访问任何其他服务,我们验证一下,
发现是不可以ping 的
但是可以访问其服务
至此试验完成
实验结果:本次实验注重实践,以后在工作中常常用到,需要勤加练习,达到更好的熟练度。