|
什么是访问列表: 访问列表是用来对数据包进行分类的工具,可以用它来帮助控制网络流量。 1、可以允许或拒绝数据包通过路由器 2、可以允许或拒绝telnet访问路由器 访问列表可根据多种条件来对网络流量进行分类。例如:源IP地址、目的IP地址、源端口号、目的端口号,协议 路由器对自己产生的包不作过滤 访问列表的分类: 1、标准访问列表 只能基于源IP地址来进行分类 可以使用列表号:1-99、1300-1999 2、扩展访问列表 可以根据源IP地址、目的IP地址、源端口号、目的端口号,协议来进行分类 可以使用列表号:100-199、2000-2699 3、命名的访问列表 只是将标准访问列表或扩展访问列表取个名字 优点:可以对访问列表进行增加、删除操作。 访问列表的比较规则: 1、如果一个访问列表有多行语句,通常按顺序从第一条开始比较,然后再往下一条条比较。 2、一个数据包如果与访问列表的一行匹配,则按规定进行操作,不再进行后续的比较。 3、在每个访问列表的最后一行是隐含的deny any语句--意味着如果数据包与所有行都不配的话,将被丢弃。 访问列表的配置规则: 1、你在访问列表中可以写多条比较语句,它们是按你输入的顺序来进行放置的。 2、在标准访问列表扩展访问列表中,你不能单独删除其中的一行,只能删除整个列表(命名列表可解决此问题)。 3、每个列表应当至少有一个permit语句,否则将拒绝所有流量。 4、访问列表可以用在接口的出方向,也可以用在入方向,但是要注意,在一个接口在一个方向上只能有一个访问列表。 5、访问列表只以过滤通过路由器的流量,对自已产生的流量不起作用。 6、将标准访问列表要尽可能放置在靠近目的地址的地方 (标准ACL 只检查源) 7、将扩展访问列表要尽量放置在靠近源地址的地方 (基于源IP地址、目的IP地址、源端口号、目的端口号,协议来进行分类) 6,7 针对数据包过滤 标准访问列表的定义: 定义: | 1 2 3 4 5 6 7 | router(config)#access-list 10 permit 172.16.0.0 0.0.255.255 router(config)#access-list 20 deny 192.168.1.0 0.0.0.255 router(config)#access-list 20 permit any router(config)#access-list 30 deny host 192.168.1.1 |
注意:在访问列表的最后默认定义了一条deny anyany 语句 扩展访问列表的定义: | 1 2 3 | router(config)#access-list 100 permit ip 172.16.0.0 0.0.255.255 192.168.1.0 0.0.0.255 router(config)#access-list 110 deny tcp 172.16.0.0 0.0.255.255 host 192.168.1.1 eq telnet |
命名访问列表的定义: | 1 2 3 | router(config)#ip access-list standard WOLF router(config-std-nacl)#permit 172.16.0.0 0.0.255.255 |
访问列表的调用: 在接口下使用: | 1 2 3 | router(config-if)#access-group 10 in router(config-if)#access-group 10 out |
标准访问列表要放在靠近目的的地方,扩展访问列表要放在靠近源的地方. 在进程下使用: | 1 2 3 4 5 6 7 | R1(config)#access-list 10 deny 192.168.1.0 0.0.0.0 R1(config)#access-list 10 permit any R1(config)#router eigrp 90 R1(config-router)#distribute-list 10 out s1 |
在VTY下使用: | 1 2 3 4 5 | R1(config)#access-list 10 permit 192.168.1.1 R1(config)#line vty 0 4 R1(config-line)#access-class 10 in |
查看命令: | 1 2 3 | show ip access-list show ip interface |
ACL可在VTY下调用,但只能用标准列表 Access-list 100 permit tcp host1.1.1.1 host 3.3.3.3 eq telnet 只允许1.1.1.1能够telnet到3.3.3.3上去 Access-list 100 permit ospf any any Access-list 100 permit tcp host1.1.1.1 eq telnet host 3.3.3.3 只允许1.1.1.1的23端口访问3.3.3.3的任意端口 Line vty 0 4 Access-class 10 in 在VTY接口下调用,作用同上, 但要注意只能用标准列表,不能用扩展列表,用扩展列表不起作用。 Access-list 10 permit 1.1.1.1 telnet 3.3.3.3 /source interface lo0 动态ACL dynamic ACL 思路:让主机先在网关服务器认证,才能出去 在服务器上先允许主机登录网关服务器,通过认证后,动态生成一条允许主机通过的ACL 1、username cisco password cisco 设主机名和密码 2、ip access-list extended wolf 定义命名访问列表并在入口调用 permit tcp host 12.1.1.2 host12.1.1.1 eq telnet 3、line vty 0 4 起用用户名和密码 login local 4、ip access-list extenede wolf dynamic gz permit ip host any any dynamic gx timeout 5 permit ip anyany 作用同上,注意这里的5分钟是绝对时间,表示你只能上5分钟 5、line vty 0 4 在line下调用 autocommand access-enable hosttimeout 1 这里的1分钟是相对时间,只要在1分钟内有联系就不会断开,不加这一时间表示不超时 R1#access-enable host timeout 1 在特权模式下调用 时间访问列表: 使用基于时间的访问列表,可以根据一天中的不同时间,或者一周中的某天,或者两者结合,来控制对网络资源的访问。 第一步:定义时间段名字 R1(config)#time-range NP 定义一个名字 第二步:定义时间段 | 1 2 3 4 5 6 7 | R1(config-time-range)#absolute start 8:00 end 15:00 设定绝对时间 R1(config-time-range)#absolute start 8:00 1 jan 2008 end 15:00 2 feb 2008 R1(config-time-range)#periodic sunday 12:00 to 23:00 只在星期日上午允许 R1(config-time-range)#periodic daily 8:00 to 12:00 一周中每天上午允许 |
几个主要参数: Daily--从星期一到星期日 Weekday--从星期一到星期五 Weekend--从星期六到星期日 注意:一个time-range下只能有一个absolute语句,但可以有多条periodic语句,如果在一个time-range下即有absolute语句,又有periodic语句,则先匹配absolute语句。 第三步:调用 access-list 100 permit ip any any time-range NP 例子:在2008年1月1日到2008年12月31日的周末开启允许 time-range NP absolute start 8:00 1 jan 2008 end 24:00 31 dec 2008 periodic weekends 8:00 to 24:00 自反访问列表: 自反访问列表在路由器的一边创建IP流量的动态放行开启条目,这些开启表项的创建是基于源于设备的可信方的会话进行的,在自反访问列表中的每个语句,当语句中的条件得到满足时,就会在已存在的访问表中创建一个镜像表项。 临时表项的特点: 1、表项总是一个permit表项 2、表项所指定的协议与原来向外报文的协议相同 3、新的表项互换了源目IP地址 4、新的表项互换了源目端口号 5、表项会一直存在,直到会话结束(TCP)或者time-out值到时(UDP)才会被删除 6、当会话的最后一个报文流过接口时,表项就到期。(对TCP而言) 注意:自反访问列表直能和命名的扩展访问列表结合使用 例: | 1 2 3 4 5 6 7 8 9 10 11 | ip access-list extended IN evaluate ZF ip access-list extended OUT permit tcp host 172.16.1.1 any eq telnet reflect ZF permit tcp host 172.16.1.1 any eq www reflect ZF timeout 180 ip reflexive-list timeout 300 |
Establish ACL 允许ACK/SYN=1的TCP报文通过,通常用于只允许内部的主机向外部发起TCP连接,不允许外部的主机向本网发起TCP连接 Ip access-list extended 100 5 permit tcp host 3.3.3.3 eq telnet host 12.1.1.2establish 注意这条语句的方向性,允许源的23端口访问我的任意端口,但ASK必须置位 10 deny ip any any 注意在外网的入口上调用这一列表
|